Olivia Graham - Story of Us
Undergraduate Teaching in Computer Science:
Now, the undergraduate Computer Science (CS) concentration has only existed at Harvard since 1982. It was pioneered by Harry Lewis (’68, Ph.D. ’74) who still teaches at the college today. Throughout the eighties, CS programs sprung up and grew all across the US, creating excess demand for CS teachers at various institutions. A journal article titled The effective use of undergraduates to staff large introductory CS courses, published in 1988, highlights the growing pains that the CS department at Stanford felt. As a way of cutting costs, they then turned to undergraduates (called section leaders here) to help grade, provide additional support and teach in small groups.
At Harvard, this same problem has been compounded over the past decade by the relatively small number of graduate students on teaching appointments as well as the rapidly growing number of undergraduate CS students (see chart below).
It follows that the department relies quite heavily on undergrads to staff the majority of courses, in stark contrast with most other concentrations at Harvard. By my calculations, the department hires more than 120 undergraduates each year. Undergraduate TF responsibilities range from running sections and office hours, to grading problem sets. The average time commitment is approximately 12 hours/week, and many undergrads begin teaching in their sophomore years. Another interesting quirk of the CS department is that many classes hire undergraduate head TFs (myself included) who help to hire and train TFs, manage course logistics and more.
The CS51 Staff:
However, when I think about undergraduate teaching, I don't start with all of this history and context. Instead, I think about the CS51 teaching staff. There are about 20 of us each year - and it's an amazing, really fun community to be a part of. While TFing is a fantastic on-campus job, it is also so much more than that! TFs tend to express a desire to help other students develop their competencies and feel more confident. Many TFs that I have spoken to describe wanting to "give back" and be a part of creating a more supportive teaching environment.
CS51: Abstraction and Design in Computation
To quote the course syllabus: "CS51 teaches fundamental concepts in the design of computer programs, emphasizing the crucial role of abstraction. The goal of the course is to give students insight into the difference between programming and programming well. One and the same problem can be solved in different ways, and the different solutions can vary along multiple dimensions including correctness, efficiency, readability, scalability, and elegance." Many CS concentrators take CS51 during their freshman spring, and we are lucky to have many students come back as Teaching Fellows the following year.
Last year, as we were leaving campus, the entire teaching staff got together for one last hurrah. Sitting together at dinner, I found myself marveling at this community. This is a group that cares deeply about their students, as well as each other, and it is truly so special to be a part of the CS51 teaching staff.
Learning to Teach at Harvard:
However, I have often found myself wondering whether the CS department does enough to properly help train and develop the skills of undergraduate teachers. Training across the department is relatively sparse, and many members of my course staff expressed a desire to have been better trained before beginning work. It is such a huge responsibility to teach at Harvard - at least, I am always acutely aware that the way in which I act can have a real impact on my students' experience in CS... In my action research project, I will ask: is there a way to better train teaching fellows? And how can we encourage our undergraduate educators to further pursue their interest in CS and pedagogy?