Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I always thought it was interesting that a lot of the top CS schools seem to use Java as their teaching language rather than C++ (or C). I've heard that MIT is using python (switched from scheme) and I know the University of Chicago uses Scheme. My school (RPI) uses C++, but I don't know anyone else who does. I recognize that the teaching language is largely irrelevant to the material, but I wonder why the departments choose the different languages.


That's only true for introductory and some algorithms courses. After that, it diverges mostly into C and a bunch of custom languages, such as MATLAB for theoretical courses. I go to CMU and I haven't really touched Java since freshmen year. But upperclassmen CS is still done in C majorly.

Yes, MIT shifted to Python for intro level CS classes. CMU is doing that following this fall.


Thanks, I suspected this might be the case. How you like CMU?


Yale (not considered a top CS school, I know) still uses scheme for its introductory classes. With both Berkeley and MIT switching away, I wonder if Yale's one of the last holdouts.

I'm not sure I agree with you that language is irrelevant to material. I definitely notice the influence of scheme on my thought-processes when programming.


Stanford's intro CS sequence is CS106A, CS106B, CS107, and CS108.

106A is taught it Java. (It was taught in C until 2004. It's nice to be able to teach for-loops without also having to explain pointers.)

106B is taught in C++.

107 is now the first introduction CS students get to C and Unix. While 106B focuses on basic algorithms and learning to use abstractions, 107 goes into the guts of low-level C.

108 is on OOP and is taught in Java.

Higher level classes are either in C++ (all the systems classes) or Java (e.g., Natural Langauge Processing).


108 is not actually part of the core. The third required systems class is CS110, Principles of Computer Systems, which is also taught in C.


It's worth noting that at least CS140 / operating systems (and I think some other systems classes - networking?) are taught in C, not C++.


There are a few factors - whether the academics are in love with some particular language (i.e. Haskell, Eiffel, Smalltalk, or Lisp); whether there is pressure to use a language that will help students "hit the ground running" (i.e. industry buzz words that may be obsolete by the time the students graduate, or Java/C#); and whether it's easy to teach.


When I was a freshmen at Cornell (2002) there were two possible intro classes:

CS 101M was half java and half matlab

CS 101J was mostly java with a week or two of matlab (recommended for CS majors)

After this class (or the AP test) our next two classes to qualify for the major were in Java and SMLNJ.

Interestingly, our algorithms class (considered upper level but required) was purely theoretical (no programming at all).


My school (http://gcc.edu/) used C++ in intro classes (circa 2004).


With a name like gcc you kind of have to!


:) hhaha


The local (to me) junior college (http://www.santarosa.edu) and college (http://www.sonoma.edu) both start out by teaching C++.


Imperial College Joint Maths Computing first year was Haskell, Turing, Fortran, Mathematica. And was undocumented - no books, had to turn up to the lecture and scribble.

That was 1997, I have no idea what's done there now.


CS106B, which is the second course at Stanford CS, is on C++.


University of Chicago also uses Haskell, C, Python, and AWK.


At my university (Oxford University) in the first year they teach Haskell in the first term, Oberon in the second and finally Java in the third term.


CMU recently changed from java to python as well. Personally, I think python is better than java in terms of educational purposes


Michigan State has two intro classes now, one in python and a follow on class in C++.


The University of Michigan is also pretty heavily C++.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: