Herbert A. Simon Award for Teaching Excellence 2004
School of Computer Science, Carnegie Mellon University
Pittsburgh PA 15213-3891
(412)268-8525 . (412)268-5576 (fax)

Cool Labs + Healthy Competition = Great Course

David R. O'Hallaron

During the mid 1990's, Randy Bryant and I were teaching a course that was supposed to introduce students to the principles of computer systems. Despite our best efforts, the students hated the course, and frankly, we weren't too crazy about it either. Fed up with our failure, it dawned on us what the problem was. We were teaching students to design computers, when what they really needed to know was how to use computers.

So we chucked the old course and created a new one, called "Introduction to Computer Systems" (ICS), whose purpose was to help students become better programmers by showing them what was going on "under the hood." When we unveiled the ICS course in Fall 1998, the response from the students was immediate and electric; they loved it! Even better, the reaction was the same when other instructors taught the course. Inspired by this response, Randy and I wrote a textbook based on the course notes, which has since been adopted by numerous schools on five continents. What was the secret of our success? Perhaps it was the following two guiding principles, which shaped our thinking every step of the way, and which I think could be helpful for other courses as well.

First principle: Be hands on, practical, and fun. For the ICS course, we designed the labs first, and then built the rest of the course, including the lectures, around those labs. This seems to have been a good decision. When my students return from places like Amazon.com and Wall Street to visit me, they never want to discuss my brilliant lectures, much as I try to steer the conversation in that direction. Instead, they always talk about the things they did, how much fun they had, how much they learned, and how much that knowledge has helped them in their careers.

Second principle: Use healthy competition to maintain high energy. We developed autograders for each lab that the students could run anytime to check how well they were doing. Each time a student ran an autograder, their current scores were streamed back to a server and posted anonymously in sorted order on a Web page (using a nickname chosen by the student). For each lab, we identified a threshold score, above which a student received full credit. This scheme had some remarkable consequences. Average students knew exactly what they needed for full credit, and would work hard to reach that goal. The strongest students would quickly finish the lab. But instead of stopping and complaining that it was too easy, they would notice that someone else had done the lab better, which would inspire them to go back to the drawing board and try again. This competition among the top students added a lot of fun and energy to the class, without hurting the average students.

I'm very honored and grateful to receive this award. I'm especially grateful to Randy Bryant, who taught me how to teach, to the talented graduate students who helped us create the ICS course, and to our brilliant and energetic undergraduates, who demand excellence from their teachers.

Return to: SCS Faculty Awards