Lately, I’ve been struggling with crafting a good review session for CS51’s midterm. CS51 covers a lot of material, and while the assignments for this class are all coding projects, the test is composed of short answer questions that involve reasoning about code on paper. Given this, it has been hard to figure out what might be a good way to review the material. Do I stand in front of the room and try to go over all the material at lighting fast speed in 90 minutes? Do I go over the practice exams though some people haven’t done them yet and don’t want to know the answers? Do I let students suggest topics and cover them in turn, even though students are going to suggest more topics than I can cover? Do I just do a question and answer session even though some student will inevitably derail me with some off the wall question while others will be bored?
A few days ago, my fellow TF and I attempted to do some mixture of all of these, with moderate success (no one walked out or threw tomatoes at us — the marks of a successful review in my opinion). Is there a better way to do a review session for a technical course that doesn’t rely on ad-hoc improvising?