
On Jan27, Dipankar Ray wrote:
What I mean by this is that if I look at the CS programs at Berkeley, MIT, CMU, I don't see a huge emphasis on PL. Looking now at the MIT opencourseware offerings in EECS, I see no undergrad course that suggests that you'd learn anything about modern type theory.
3) most of the canonical US universities for CS (MIT, Berkeley, Stanford, CMU, etc) basically don't teach haskell or ML, or even talk much about it, relative to how much they talk about, say, Java.
Not to dispute your general point, but CMU is an exception to this rule. There's a course, taught in SML, on basic functional programming, continuations, laziness, etc: http://www.cs.cmu.edu/~me/212/ This course is required for all CS majors and occurs fairly early in the sequence (freshman spring or sophomore fall). We also have a fairly hardcore introduction to type systems and operational semantics: http://www.cs.cmu.edu/~rwh/courses/ppl/ and a course on constructive logic: http://www.andrew.cmu.edu/course/15-317/ These electives are taken by ~30-40 students each, so I'd guess that somewhere between a third and a half of the undergrads go through one of them. And then there are electives, either mostly undergrad, like this course in typed compilation: http://www.cs.cmu.edu/~crary/hotc/ or mostly grad, like this course on logic programming (but there are always at least a handful of undergrads in the room): http://www.cs.cmu.edu/~fp/courses/lp/ And then there are two grad-level PL distribution-requirement courses (one on type systems, one on denotational semantics), which usually have a few interested undergrads. And many undergrads get involved in PL research as well. Maybe the real question is why so few universities have large groups of PL faculty to teach these courses? =) -Dan