The Computer Science Department offers courses at three levels:

  • Lower division courses (numbered 1-99) are typically taken primarily by freshman and sophomores and introduce students to the fundamental building blocks of the discipline.
  • Upper division courses (numbered 100-199) are more advanced courses that venture deeper into a wide range of topics in computer science.
  • Graduate level courses (numbered 200-599) cover advanced material and are not generally open to undergraduates.

All CS courses (both undergrad and graduate) require CS major status to enroll. A subset of courses is open to non-majors that require CS courses as listed on their undergrad or graduate major requirements degree sheet. Otherwise, non-majors may request to enroll in CS courses during Pass 3 if all students whose major requires the course have registered, there is course space available, and students meet the listed course prerequisites. However, due to the high interest in CS at UCSB, enrollment demand for CS courses will likely exceed actual enrollment capacity limits in many courses each quarter. 

CS courses also have prerequisite course-requirements that must be completed prior to (and in some cases concurrently with, if specified) enrolling in a course. The prerequisite rules are specified within the course descriptions. 

CS employs the UCSB-wide waiting list for all courses and uses the waitlist to manage any additional available spots for enrollment. A course waitlist will activate once a course is full and/or closed. If a waitlist is activated, all students (CS majors and non-majors) should add themselves to the waitlist for potential enrollment consideration. Our waitlist priority order is 1) CS majors; 2) non-majors that require the course for their major, with sub-priority to the graduating seniors; 3) remaining non-majors interested in the course.