CS198 - Teaching Computer Science
===About the CS198 Program===

Graphical Overview of CS198 Program Structure
Unlike most classes at Stanford, where discussion sections are typically taught by graduate TAs, the CS106 classes employ undergraduate section leaders to teach discussion sections. Undergraduates have proven highly effective in this role; they know about Stanford computers and introductory courses, and are close enough to students in intro CS to understand their problems. The CS198 program consists of a class that prepares new section leaders to teach, as well as a support structure for both new and experienced section leaders, TAs, and lecturers in the CS106 program.

The following sections describe the structure of the CS198 program as well as the responsibilities of the various staff positions.

CS198: The Class

CS198 is a 3-4 unit class taught Autumn, Winter, and Spring by the CS198 Coordinators. In their first quarter of section leading, all new section leaders enroll in CS198. The class contains four required teaching workshops (1.5 hours each) in the first few Mondays of the quarter, and a weekly Wednesday teaching meeting throughout the quarter. However, CS198's four units are primarily allocated to recognize that the time spent teaching, grading, and helping students is also a learning experience. Enrollment in CS198 is limited. Prospective SLs can
apply midway through each quarter to enroll in CS198 (and begin section leading) in the next quarter.

Staff Meetings

The CS106 staff holds weekly staff meetings, typically lasting an hour. This is a time for general announcements, assignment explanations from the lecturers, and for the individual courses to discuss the upcoming section handout and grading issues.

Section Leaders

Section Leaders ("SLs") are primarily responsible for teaching a weekly CS106 section, typically containing between 8 and 12 students. In addition, they are responsible for attending lectures and weekly staff meetings, grading student assignments, and holding Interactive Grading ("IG") with each student. Interactive Grading is a one-on-one session held between the section leader and the sectionee for each assignment. This is an opportunity for students to get more detailed personalized feedback about their assignment and to ask for conceptual clarifications on an individual basis. Section leaders are also responsible for helping to grade the midterm and final exams. Finally, each section leader is responsible for staffing the Tresidder LaIR for two hours a week. During these hours, they answer student questions and help debug code in both Python and C++.

All new section leaders enroll in CS198 and teach section, and are paid for some of their work if they are only enrolled for three units. After the first quarter, section leading is a fully paid position. Experienced section leaders can teach any CS106 class, enrollment permitting.

Course Helpers

Course helping consists of staffing the LaIR anywhere from 2 to 10 hours per week, and is primarily intended for staff members whose schedules are too busy to teach a full section in a given quarter. Only section leaders who have already completed their first quarter are allowed to course help. Depending on enrollment, course helpers may also be expected to grade assignments for SCPD (remote) students, and participate in exam grading. Course helpers are also required to attend weekly staff meetings.

CS198 Coordinators

The CS198 Coordinators are three students (typically former SLs) who run the day-to-day business behind the CS198 program. They run the quarterly application/hiring process, teach the CS198 workshops, run weekly staff meetings, maintain this website, and handle CS106 section assignments at the beginning of each quarter. Coordinators manage a staff of approximately 80-100 people distributed across CS106A, CS106B, and CS106X – handling lecturer, TA, section leader, and student concerns regarding the CS106 courses – and work continually to improve the CS198 program.

Lecturers and Teaching Assistants

CS106 lecturers and TAs handle most administrative issues specific to their course. They create assignments, section handouts, exams, and grading criteria; handle regrade requests; and submit University grades. Although many CS106 lecturers and TAs are alumni of the CS198 program, they are hired directly by the CS department, not through the CS198 program.


CS198 was first offered as a class in the 1983-1984 academic year, taught by former CS Assistant Chair Stuart Reges. Over the next five years, the CS198 program gradually took on its current form, with undergraduate section leaders teaching CS106 discussion sections and veteran section leaders acting as CS198 coordinators. Reges and coordinators John McGrory and Jeff Smith presented a paper at SIGCSE 1988 describing the benefits of this structure, entitled
"The Effective Use of Undergraduates to Staff Large Introductory CS Courses" .

For SIGCSE 1995, CS198 Coordinators John Lilly and Bryan Rollins followed up on this discussion, describing the CS198 support structure and the section leader community in "Using undergraduates as teaching assistants in introductory programming courses: an update on the Stanford experience" . More than a decade later, we're still playing four-square!