I've TA'd all of Stanford's intro programming classes, including the first course in programming CS 106A, so a few things:<p>- unlike a lot of other schools, CS 106A is mostly taken by non-majors (90-something percent of undergrads take at least one CS course before graduation, and for non-majors that means 106A)<p>- the follow up course, 106B, is in C++ and focuses on OOP, pointers, memory, data structures, etc.<p>- 106J was crafted as a replacement for 106A by in JS. It had limited enrollment, and word on the street is 106J's first offering this past spring was an experiment and it didn't go all that well, so who's to say if it'll still be around next year.<p>Maybe they should switch from Java to something hipster and trendy, but there's about 10+ years worth of assignments that will need to be rewritten, including autograding infrastructure for the 600-800 people who take it every quarter.<p>I personally feel like JS is an awful language with few opinions or guard rails, and thus a bad language to teach people who are looking for programming principles. It works for the web but I think for a course almost entirely consisting of non-majors it's not a good first language.