Monday, December 05, 2005

Making lemonade

I've blogged before about the decrease in Computer Science enrollment. One of the side effects of decreased enrollment is decreased class size. In fact, I've got a class coming up next quarter -- an algorithms/data structures class -- that will almost certainly have fewer than 10 students in it. This raises the question: how would you teach such a class differently, given that the number of students is small enough that there is no need for a formal lecture approach?

I'm still in the early stages of thinking about this, but this is what I've got so far:

  • Our classes meet twice a week for 2 hours each time. Have a seminar for one of those periods, focusing on the topic du jour: balanced trees, hash tables, etc. Make a student responsible for presenting his or her best understanding of the topic, leading a discussion for whatever points are unclear or not covered in sufficient depth. Do "mini lectures" for especially unclear matters.
  • Instead of having programming assignments targetted at each topic, have one or two larger projects. Do them as a group. If enrollment is small enough, we can just have one group; I could be a member of that group, too. It's a fairly easy substitution, for example, to substitute a search tree or hash table for a database in a web application.
That's all I've thought of so far. I'd welcome suggestions. Please! Topics: , .


  1. Since the class is small, I would recommend taking suggestions from the students in the first lecture. Ask them what they would expect to learn from this course. This is a subtle way of knowing their expertise. Alternatively, you can simply ask the expertise of each of them. But, I wouldn’t second that.

  2. Good suggestions. In this case, it is a second-quarter class, so I know where everyone is coming from and what their expertise is (our first-quarter class).

  3. I agree that having few students is not a bad thing for the prof. Teaching is so much more fun when it is not a factory job.

  4. Some of my best college classes (the first time around) were the ones with less than 10 students. However, I hate group projects. I learn more when I have to complete the assignment by myself. In a group, there's the risk that you either only learn a part of it, or none at all.

  5. I've always had ambivalent feelings about group projects. On the one hand, they allow students to attack larger, more interesting problems. They also address real group dynamics issues that students will have to deal with in their careers. On the other hand, when there are problems, there's really no good way to deal with them.

    In this case, I don't thing there will be any problems, because I will be one of the group members. This is doable if there's one group, maybe two.