Undergraduate Tutor Program

Tutor Program Crew


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.

Apply to be a tutor


Instructions for first-time tutors

First-time tutors must apply to enroll in CS190J. As a student in CS190J, you'll be part of the instructional team for one of lower division courses: CS8, CS16, CS24, CS32, CS48 or CS56 You'll also participate in a weekly seminar in which you will learn about Computer Science Education by reading research papers, discussing techniques and actually putting those into practice. Students that complete the course may use it as one of their seven major field electives. Completing the course also makes you eligible to apply for paid undergraduate tutor/mentor positions as/when those become available in future quarters. (It does not guarantee acceptance, but it does improve your chances.) Enrollment is by permission of the instructor only, and there are a limited number of slots.

Applications for 190J are now open!

To apply complete the application form at this link: http://bit.ly/CS190J-S19-Application

Applications received before Friday, March 1st at 5:00 pm will be given priority.

Instructions for returning tutors

Students who are currently enrolled in the elective course CS190J (Teaching Computer Science) and/or have worked in the capacity of a paid tutor in the past are eligible to apply for the paid tutoring position for any of the lower division courses offered: CS8, CS16, CS 24, CS32, CS48, or CS56.

As a paid tutor, you will primarily assist students in their discussion sections and during open labs to answer questions, troubleshoot, and provide general assistance. You will also provide feedback on student work and participate in weekly staff meetings. You may be asked to participate in other course-specific activities.

All hours spent on tutoring-related activities will be paid, and you will be provided adequate support to help students with this course. The total commitment is 7 to 10 hours per week with the approximate breakdown of the duties as follows:

(4-5 h) Assist students in scheduled lab sections and drop-in lab hours to discover solutions to problems and modeling study strategies,
(1 h) Work through worksheets, labs, and homework exercises in preparation for labs
(1-3 h) Assist students with course concepts by attending weekly lectures
(1 h) Weekly meeting with the instructor

Applications for paid tutoring positions are now open!

To apply complete the form at this link: http://bit.ly/CS-Paid-UG-Tutor-Application-S19

Applications received before Friday, March 1 at 5:00 pm will be given priority.


Quick Links: