And that’s how you teach CMPT 383

August 22nd, 2010, 10:48 pm PDT by Greg

I have now completed my first offering of CMPT 383, Comparative Programming Languages.

I had forgotten how much work a new course prep is, particularly as I am anal-retentive enough to not be able to make much use of any other instructor’s course materials. Other instructors just do things… wrong. The only way for a course to feel right is to do it my way, for myself. Giving lectures from somebody else’s notes is like wearing somebody else’s underwear: technically probably just fine, but you just feel dirty.

That’s not to say other people who teach the same courses I do do a bad job: they are generally excellent instructors teaching excellent courses. They just do it wrong, is all.

But, looking at my plan for 383, I came in pretty close to the plan. The final balance of topics was more like 6 weeks, 4 weeks, 3 weeks, but that’s astonishingly close for somebody who usually just stops somewhere around the midterm and thinks “does that feel like about half of the material? Okay good.”

Overall, I’m very happy with it. First offerings of a course are supposed to be bumpy and full of things that you wish you could have done better. Honestly, this was one of my favourite course offerings ever: there are tweaks I’d do for my next offering, but all are fairly minor.


  • The weekly exercises were (to my mind, at least) a total win. My goal throughout was basically to say “remember that thing I talked about this week? Practice it” and I think it worked for the students. I liked them to the point that I’m planning that every course I teach from now on will have weekly exercises, including 470. (More on 470 in a later post.)
  • Some of the more involved examples I put together were among my favourite learning objects ever. (God, I can’t believe I just used the term “learning objects“. I have become everything I hate.)
  • I think I actually convinced them that Haskell was practical. Was that irresponsible?
  • Prolog sucks, but I’m still convinced it’s a worthwhile exercise.
  • The “language concepts” section felt a bit like a laundry list of topics. I don’t know that there’s really any way around that. Maybe I could re-order things a bit so they flow together better.
  • The project was interesting for all concerned. I’d probably cut down to three or four language choices in the future, just to keep the TA from losing his mind.
  • I’m not particularly happy with the exams, but I’m never happy with my exams.
  • Ted was an invaluable sounding board throughout the semester, taking time he didn’t have to listen to my meanderings on the course. Thanks be to Ted, who will do an excellent job teaching the course in the fall. (Excellent, but wrong.)

The feedback I have had from the student side has been very good so far (with the real teaching evaluations still outstanding). I have never before had so many students who had nothing to do with a course talk to me about it. Random students in the hall thought my project was a good idea; everybody and their dog knew about my first assignment; people with friends in the course want to know when I’m teaching it again.

I’ll take that as creating a “buzz” and call it a good thing.

6 Responses to “And that’s how you teach CMPT 383”

  1. PhilB Says:

    Agreed on pretty much all points. The weekly exercises made learning the material much easier. It’s much better to keep incrementing on the knowledge as opposed to having to relearn it (or, in the case of some courses, Google it) all come assignment time.

    Also, the first assignment ranked as my favourite assignment for my entire degree so far. The whole course was just chock full ‘o win.

    However, about that Prolog bit…


  2. Gav Says:

    Great course, great prof, learned lots!
    Oh wait…this is not

  3. Greg Says:

    Well can you just go to ratemyprofessors and push some of the 165 students off the front page, then?

  4. Ted Kirkpatrick Says:

    “I have never before had so many students who had nothing to do with a course talk to me about it.”

    The best compliment a course can get.

    Congratulations, Greg. You set the bar high—I’ll have to work hard to approach it in my 383 this fall (teaching it in my own wrong way, of course).


  5. JasonK Says:

    I have to agree with you (and Phil) about the weekly assignments. I am holding off taking 470 until I know that’s the format–they really were that helpful.

    I am not surprised to hear the positive feedback concerning the Haskell assignment (BEST. ASSIGNMENT. EVER.) and the negative (not bad, but depressing) tone surrounding the Prolog assignment.

    Overall, I was very impressed with the course, inspired to learn more Haskell (Real World Haskell and two Haskell mailing lists are my new best friends…), and deeply saddened to learn that the 400-level Function Programming class may not be offered again (you should teach it in Haskell and do it right since everyone else will do it wrong.)

    – Jason

  6. JasonK Says:

    P.S. And you better believe that I am using the Snap Framework ( for 470!