The Alan J. Perlis SCS Student Teaching Award
School of Computer Science, Carnegie Mellon University
Pittsburgh PA 15213-3891
(412)268-8525 . (412)268-5576 (fax)


Naju Mancheril, 2007

Many people don't know this, but I had a difficult time with Introduction to Computer Systems the first time I took it. The course covered a large number of topics in far greater detail than I expected. The material seemed interesting, but I couldn't seem to find the time to study it properly. Two-thirds through the spring semester of my freshman year, I stopped trying to vault over the pass-fail line. The higher-level systems courses require 15-213 as a prerequisite, and if I didn't learn the material now, I would have to relearn it later. I jumped ship, withdrawing from the course and taking it again the following semester, this time with a lighter course load.

Not the awe-inspiring ending you may have been expecting, but I make it a point to tell this story to my students during the first recitation of each semester. When trying to get the attention of a roomful of new students, recounting how their TA dropped the course can be surprisingly effective. It also adds some weight to the list of study tips I then give them. Many of these tips are from lessons I learned the second time around.

First, I learned that some ideas are either too weird or too complex to absorb in a single sitting. For many (myself included), the details of how and why something works are only appreciated and properly digested during the second reading, and sometimes only during the third or fourth. Second, I learned that some ideas are better learned through pictures and examples. The textbook will fill in important details, but memorizing it should never be a goal. If you don't know what a memory hierarchy is, speed reading Chapter 6 of the textbook the night before the exam is probably not the most effective preparation for answering questions on it. This is especially true if you need to speed read Chapters 7, 8, and 10 before the sun comes up. Third, I learned that it really is OK to ask for help. If you've been banging your head against a problem and not making any progress, simply explaining the problem to someone else will help you understand it better. If you get stuck, go ahead and grab the nearest TA. They will try to help as best they can. And if you're still stuck, grab the nearest 15-213 TA.

But that's stuff I picked up as a student. What valuable insights did I gain from teaching the same course for so many semesters in a row? The simplest ideas are also the most effective. Write stuff down, even after you feel that you've learned it. Even in the days of Google Desktop, nothing beats source controlled text files and grep. Never delete course-related email. You may think that you won't need it anymore once the semester is over, but you will be wrong at least once. And finally, don't try to teach alone. Many of the examples and explanations I use were developed by other TAs. I've tried to write down the best ones and discuss them with the next batch of TAs I work with. They point out missing pieces and sometimes suggest even better replacements.

Looking back over my five years at CMU, I see that being a teaching assistant has been one of the more worthwhile things I've done. It has helped me meet and learn from many talented people both within and outside the School of Computer Science. Sitting here at graduation, it feels good to know that I was able to effectively share some of what I learned with others.

Return to: SCS Student Awards