About the CS ULA Program

The Computer Science Undergraduate Learning Assistant Program (ULA) 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.

cs ulas

Faculty Co-ordinators

Dr. Mirza and Dr. Conrad are faculty co-coordinators for 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, and organize the tutoring training. Dr. Richert Wang and Dr. Kate Kharitonova have also been involved with the implementation of the program and have been among the early adopters of the program, and have assisted in developing and delivering the training program.

In the current instantiation of the program, all ULA (including first time ULAs) are hired for the same number of hours and at the same pay rate under the "Remedial Tutor" title (Red Binder IV-9). The process of recruiting, selecting, training, organizing and evaluating ULAs is described below. All first time ULAs are required to attend paid training sessions during the first 5 weeks of the quarter; this training is included in paid hours.

At least a month prior to the start of the quarter, ULA applicants are advertised to all undergrad CS majors, and students enrolled in CMPSC 24 and 32 (regardless of major). We also do targeted outreach to data science courses and computing courses for non-majors. In each case, we require a minimum GPA of 3.0 (cumulative as well as Lower-Division and Upper-Division coursework). Students from all majors are invited to apply. We take major into account and prefer to offer positions to CS, CE, and Computing majors, but major is only one of several factors.Preference is given to students that demonstrate a sincere interest in helping other students succeed, in addition to developing their own skills. All first time LAs are required to submit a short 5-minute teaching video where they spend a few minutes speaking about their motivation for being a ULA. The application form also collects information about students' availability to attend scheduled lab sections and lectures for the courses that they will be tutoring for, as well as students' course preferences. All these factors are taken into account when selecting ULAs for specific courses.

The instructors of courses that involve ULAs collaborate on selecting ULAs into their courses. Each instructor provides a rank-ordered list of ULAs to the coordinator of the program. The coordinator and instructors work together to resolve conflicts in the case multiple instructors select the same ULA. Selection is based on students’ teaching videos, availability and course preference. In some cases, the instructors may conduct in-person interviews to evaluate communication skills. The coordinator sends a shortlist of ULAs selected for paid positions in each course to the CS staff who carry out the hiring. 

Training: All first-time ULAs are required to attend required training sessions in the same quarter that they ULA, typically held on Fridays, weeks 1-5. All time spent on training and any preparation for the training will be paid. Training includes instruction in evidence-baed Computer Science education methods, practical tutoring advice, as well as role-playing of direct instruction. 

All ULAs work for between 8-10 hours per week, not exceeding 110 hours per quarter. They typically spend four hours per week in lab sections where they assist students with their programming assignments. During these sessions, the ULAs 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 ULAs learn how to ask students appropriate questions that would lead them in the right direction.

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

The ULAs 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.

First time ULAs spend part of their paid time towards training as described above.

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 8 to 10 hours per week with the approximate breakdown of the duties as follows:

(4-5h) Assist students in scheduled lab sections and drop-in lab hours to discover solutions to problems and modeling study strategies,

(1 h) Work through labs and homework exercises in preparation for labs

(1-2 h) Assist students with course concepts by attending weekly lectures

(1 h) Weekly meeting with the instructor

(1 h) Training during weeks 1-5 (FIRST TIME ULAs only)

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

Applying to be a ULA:

For first time applicants, we ask that you prepare a short video with a demonstration lesson. Instructions for preparing that video appear here: https://bit.ly/ucsb-cs-la-program-application. To complete this application you should have the link to your uploaded teaching video.

Apply for a Paid ULA Position


ULAs who are interested in leadership positions within the ULA program may apply to be program-leads or course-leads. In general students should have been in the role of course-lead for at least one quarter to be considered for the role of program-lead. Students in these positions will act as points of contact for students and instructors, assist with specific organizational tasks and training activities related to the ULA program. They will also be stakeholders in shaping the future of the program.

Description of program-lead position

Program-lead is a position for students who want to collaborate with faculty on high-level organization of the ULA program. Program-leads will coordinate closely with the director of the program and assist with the training of new ULAs. Each quarter two students will be selected into these roles among current and past course-leads.

Description of course-lead position

Course-lead is a position for ULAs who want to try a more administrative role inside the ULA program. Every course that involves ULAs will have one course-lead selected among the paid ULAs. The lead ULA for each course will be the instructor's main point of contact, and a general lead for your team of ULAs. Duties of students selected into this role include:

(1) meeting with the instructor and establishing how all the ULAs will coordinate from week to week. Your instructor may want weekly meetings with the entire staff, or may want you to be in charge of meeting the ULAs weekly and then relaying any pertinent information back to the instructor, or may come up with another solution.

(2) being the main point of contact for ULAs within a course. If ULAs have questions about how to approach a particular student or problem, they will approach the course lead.The course-lead can always contact their instructor or program-leads for assistance.