The purpose of the Master of Science program is to provide advanced training in computer science to prepare students for positions in industry and government and for further graduate study.

The program is designed to accommodate students with training in diverse scientific and engineering disciplines, and in this regard the graduate program relies on the undergraduate program to provide the necessary course work for graduate students with deficiencies in their computer science backgrounds.

The Master of Science degree program may be completed with a thesis, with a comprehensive examination, or with a project.

Engineering students working on a laptop around a desk

Plan One: Thesis

In addition to the course requirements, the student must submit an acceptable thesis, completed under the supervision of a Computer Science permanent faculty member, and approved by a thesis committee composed of 3 UC ladder faculty members, two of which (including the Chair) must be from the Computer Science Department. At most 12 units of 596 and 598 can be used towards unit requirements.

A public defense of the thesis is required.


Plan Two: Project

The project plan requires more coursework than the thesis plan but less research, establishing a useful intermediate position between the other two plans. Beyond the major area and breadth courses common to all plans, the project plan's course requirements include two additional 200 level graduate courses. In addition to these course requirements, the student must complete:

  • a minimum of six units of 596 directed research
  • a project under the supervision of a Computer Science permanent faculty member

A Project Committee consisting of two permanent faculty members of the Computer Science Department must approve the project.

Approval is based on the project's deliverables:

  • a report
  • a 30-minute public presentation describing the project.

Student standing and typing on laptop with blackboard behind him

Plan Three: Comprehensive Examination

Besides the course requirements required for all tracks, twelve additional units of coursework must be completed with 100 (excluding 193) and 200 level courses. Of these, eight units must be at the 200 level. The comprehensive examination will be offered twice a year, in the eighth week of the fall and spring quarters. Each student will list four graduate courses: a question from each of these courses will be asked on the examination. The student may choose to answer only three of these questions and all three questions need to be correctly answered in order to pass. If a student does not pass, they may take the exam the next time it is offered. Only two attempts will be allowed. This is a stringent exam and students should be well-prepared if they expect to pass.


Requirement for all three plans

  • 42 units of upper-division (excluding 193 level courses) or graduate courses (200+, 595, 596, 598) that are approved by a Computer Science Faculty Advisor must be completed.
  • A major area must be chosen from three major areas: Foundations/Theory, Systems, and Applications. Four CS graduate courses (200 level) should be taken from the major area and one CS graduate course (200 level) must be taken from each of the other two areas. The same course cannot be used to satisfy both major area and breadth requirements.
  • The grade in each major area course must be at least a B (3.0).
  • At least two units and at most six units of 595 seminar units must be included in the unit requirements (excluding 595N: Faculty Research Seminar).
  • MS students are required to submit an MS Study Plan Worksheet to the Staff Graduate Advisor at the end of their first year to review requirements, completion thus far, resolve any questions, and plan for their next year. A student may also submit a plan at any time for review and/or feedback.
  • The study plan must be approved by the faculty advisor.

Graduate courses and their area classifications (Foundations/Theory, Systems, or Applications).

Graduate Courses

For more details about the graduate program, refer to the handbook below:

Graduate Handbook

Woman in front of coding computer screen


Both the Thesis and Project track require research. Students planning to use either track for their completion of the MS should begin looking for a research advisor in the first year. Beginning research should not be delayed until the second year when coursework is completed.

Research is about pushing the limits of our understanding in the field of computer science. This can involve the design and execution of experiments, the proving of new theorems, the solving of open problems, the gathering and analysis of data sets, the invention of novel systems, the creation of new algorithms, the discovery of new applications of computing and/or among many other things. Students must manage their time wisely between research, course work, and growing their personal networks. It is important to start the process of finding a research adviser early, and to stay engaged with both other students and their MS committees throughout the process.