I just got back from an enjoyable visit at Penn. I gave a version of my POPL talk for an audience consisting in large part of students taking Benjamin Pierce’s advanced programming class, which is being done in Haskell with a little bit of ML. I also got a chance to chat with some of the PL faculty and grad students and to hear what people are up to on the research front.
It was a fun afternoon. I hope among other things that it stirs up some more interest (and proposals) for this year’s OCaml Summer Project.
I also spoke with Benjamin about the evolution of their intro programming course. A few years back they were teaching it in OCaml. Then, for all sorts of perfectly understandable reasons, they ended up moving the course to Java. This despite the fact that Benjamin’s feeling was that the students ended up better prepared for thinking about Java when the intro course was focused more on OCaml.
It all makes sense, but it is still too bad to see one of the few places in the US really teaching functional programming as an early part of the curriculum give up on it. Maybe it will get resurrected at some point. That said, Benjamin also pointed out that there are advantages to teaching ML or Haskell to an advanced programming class, in that you get to hit the students with it when they’re really ready to appreciate the power of the approach. It certainly seems like they put together a good set of students this year.