Undergraduate Tutoring Program

Tutor Program Crew

Interested in being a tutor? 

Read more about the application process and apply here: https://cs.ucsb.edu/education/undergrad/apply-to-tutor

About the CS UT Program

The Computer Science Undergraduate Tutor Program (UT) was launched in Fall 2017 with the following goals in mind:

  • enhance the learning experience of students
  • meet the challenges of increased enrollments
  • build a sense of community among our undergraduate students
  • create a more supportive learning environment for those from underrepresented groups.

Faculty Co-ordinators

Dr. Mirza and Dr. Conrad are faculty involved with training and co-ordinating the tutor program. They serve as a point of contact for students interested in being tutors and faculty who would like to offer tutors in their courses. Dr. Richert Wang and Dr. Kate Kharitonova have been involved with the implementation of the program and have been among the early adopters of the program.

Overview of the program

The CS Department UT program, in its current instantiation compensates UTs with course credit in their first quarter of service, while they are undergoing training: all first time UTs are required to take a course under the “Topics in Computer Science” (CMPSC 190J), which is a 4-unit upper division course that counts towards the B.S. C.S. degree requirements as an upper division elective. Students that have completed this course become eligible to apply for paid positions offered under the “Remedial Tutor” title. Upper division credit and paid positions are important to attract experienced UTs who typically have competing offers from industry and research labs. The process of recruiting, selecting, training, organizing and evaluating UTs is described below.


At least a month prior to the start of the quarter, the CMPSC 190J course and the paid positions are advertised to all undergrad CS majors, and students enrolled in CMPSC 24, 32 and 56 (regardless of major). In each case, we require a minimum GPA of 3.0 (cumulative as well as LD and UD coursework). Students from all majors are invited to apply. We take major into account and prefer to offer positions to CS majors, but major is only one of several factors. Our primary criteria is the personal statement that the student makes about their reasons for wanting to participate in the program. Preference is given to students that demonstrate a sincere interest in helping other students succeed, in addition to developing their own skills. The application form also collects information about students’ availability to attend scheduled lab sections and lectures for the course that they will be tutoring for, as well as students’ course preferences. All these factors are taken into account when selecting UTs for specific courses.


The instructors of courses that involve UTs collaborate on selecting tutors into their courses. Each instructor provides a rank-ordered list of UTs to the coordinator of the program. The coordinator and instructors work together to resolve conflicts in the case multiple instructors select the same tutor. Selection is based on students’ personal statements, availability and course preference. In some cases, the instructors may conduct in-person interviews to evaluate communication skills. The coordinator sends a shortlist of tutors selected for paid positions in each course to the CS staff who carry out the hiring. Students selected into CMPSC 190J are given add codes.

Training: All first-time UTs are required to take CMPSC 190J. This course has been offered each quarter since Fall 2017, including once in Summer Session (Session B). Link to course website from Spring 2018 is available at https://ucsb-cs190j-s18.github.io/

Students enrolled in the course participate in one 75 minute lecture per week, and provide 5-6 hours of tutoring per week in a “learn by doing” model. The lecture section includes instruction in Computer Science education methods and research, as well as role-playing of direct instruction.


UTs work for between 8-10 hours per week. They typically spend four hours per week in lab sections where they assisted students with their programming assignments. During these sessions, the tutors practice how to help students without giving away solutions and instead giving them the skills needed to debug their code on their own. They teach students how to reason about their code by tracing through it and communicating their logic. The tutors learn how to ask students appropriate questions that would lead them in the right direction.

The tutors attend weekly meetings, approximately 1 to 1.5 hours per week with the rest of the course staff (GTAs and readers). The course instructor typically provides guidance for the upcoming week during these meetings. The GTAs and UTs provide the instructor feedback about their experiences in labs and raise any instructional or organizational issues that need to be addressed.

The tutors spend the rest of their time providing written feedback to students about their assignments. They also offer open lab hours where students could get help outside of prescribed lab hours, which is a new feature in our classes. They create collaborative study guides and conduct study sessions to help students prepare for exams.


All first-time UTs are evaluated as part of the CS190J course. In addition to evaluating written work and oral presentations, the instructors make direct observations of each tutor’s performance in assisting students in labs. Students in the course also evaluate the UTs and the UT program by filling out anonymous surveys at the end of the quarter.

Quick Links: