Doctoral Programs in Computer Science and Engineering

The following requirements are for students who entered the program starting Fall 2011 or later. If you entered Doctoral Program prior to Fall 2011 see our Former Curriculum Requirements.

CSE offers doctor of philosophy degrees in computer science and in computer engineering, providing a research-oriented education in preparation for a research, industrial or entrepreneurial career. These programs explore both the fundamental aspects and application of computation, spanning theory, software, hardware, and applications. Our particular areas of research expertise include: 

  • algorithms and complexity
  • artificial intelligence
  • bioinformatics
  • computer architecture and compilers
  • computer graphics and computer vision
  • databases and information management
  • embedded systems and software
  • human-computer interaction
  • high-performance computing
  • programming systems
  • security and cryptography
  • software engineering
  • systems and networking
  • ubiquitious computing
  • VLSI/CAD (computer-aided design)

Competency Requirements

The competency requirement ensures that PhD students already have or will acquire the necessary undergraduate background for PhD studies. Competency at the advanced undergraduate level may be demonstrated by any of the following methods:

  1. providing evidence of previous undergraduate or graduate course work; or
  2. taking an undergraduate course at UC San Diego; or
  3. taking the corresponding graduate course with consent of instructor; or
  4. passing the final exam of an undergraduate course at UC San Diego.

PhD students must demonstrate competency with respect to the following six undergraduate courses at UC San Diego. The corresponding graduate courses are listed in parentheses.

CSE 101. Design and Analysis of Algorithms 
(CSE 202. Algorithm Design and Analysis)

CSE 105. Theory of Computability 
(no corresponding graduate course)

CSE 120. Principles of Computer Operating Systems 
(CSE 221. Operating Systems)

CSE 130. Programming Languages: Principles and Paradigms 
(CSE 230. Principles of Programming Languages)

CSE 131. Compiler Construction 
(CSE 231. Advanced Compiler Design)

CSE 141. Introduction to Computer Architecture 
(CSE 240A. Principles of Computer Architecture)

A graduate course taken to satisfy the competency requirement may also be used to satisfy the breadth, depth, or elective course requirement.

Course Requirements

The course requirement is intended to ensure that students are exposed to (1) fundamental concepts and tools, (2) advanced, up-to-date views in topics outside their area (the breadth requirement), and (3) a deep, up-to-date view of their research area (the depth requirement). PhD students are expected to complete the breadth and depth requirements within the first three years of the program. All required course work must be taken for a letter grade, with the exception of CSE 291 (Topics in CSE), CSE 292 (Faculty Research Seminar), CSE 299 (Research), and CSE 500 (Teaching Assistantship), for which only S/U grades are allowed.

Units obtained from a single course cannot count more than once towards satisfying the requirement in each of the breadth, depth, or elective areas. PhD students who have taken similar courses elsewhere may petition for a waiver of the required courses or for substitution by alternative courses.

Breadth Requirements

The breadth requirement ensures that PhD students share knowledge of fundamental concepts and tools from across broad areas of computer science and computer engineering. Each PhD student must take each of these courses for a letter grade and maintain an overall breadth course GPA of 3.3 (except for CSE 292, for which a letter grade is not assigned). A student will typically complete all breadth courses within the first two years of graduate study.

Breadth courses are categorized into three areas: Theory, Systems, and Applications.

Students in computer science must take six (courses in the areas of Theory, Systems, and Applications: two in Theory, two in Systems, and two in Applications

Students in computer engineering must take six courses in the areas of Theory, Systems, and Applications following one of two plans:

Plan A: one in Theory, three in Systems, and two in Applications


Plan B: two in Theory, three in Systems, and one in Applications

Here is the list of the current courses for each breadth area:


  • 200 (Complexity)
  • 201A (Advanced Complexity)
  • 202 (Algorithms)
  • 203A (Advanced Algorithms)
  • 205A (Logic in CS)
  • 207 (Cryptography)


  • 221 (Operating Systems)
  • 222A (Computer Communication Networks)
  • 231 (Compilers) 
  • 237A (Embedded Systems) or 237B (Embedded Software)
  • 240A (Architecture)
  • 241A (Computing Circuits) or 243A (VLSI CAD) or 244A (VLSI Test)


  • 210 (Software Engineering) 
  • 216 (Human-Computer Interaction)
  • 230 (Programming Languages)
  • 232 (Databases)
  • 250A (Artificial Intelligence) or 250B (Machine Learning)
  • 252A (Vision I) or 252B (Vision II)
  • 260 (Parallel Computation)
  • 280A (Bioinformatics) 

Depth Requirements

The depth requirement ensures that a PhD student acquires some depth of knowledge in a general research area early in his or her career. Each PhD student must select one of the following areas as his or her depth area. The student must take three courses (twelve units) from this depth area. The student must take each of these courses for a letter grade and maintain an overall depth course GPA of 3.4. However, one of these three courses can be a CSE Topics course (CSE 291) or an Independent Study (CSE 299), which are not taken for a letter grade. The department will maintain a list of appropriate courses for each depth area.

The depth areas are

  • Theoretical Computer Science (CSE 200-203, 205-208)
  • Programming Languages, Compilers, and Software Engineering (CSE 210, 218, 230, 231)
  • Human-Computer Interaction (CSE 170, 216, 218, 250A, COGS 220) *CSE 219 seminar is recommended*
  • Computer Systems (CSE 221-228, 260-262)
  • Database Systems (CSE 232, 232B, 233)
  • Computer Engineering (CSE 231, 237A-D, 240A-248, ECE 260A-C, ECE 284)
  • Artificial Intelligence (CSE 250A-C, 253-258A, COGS 200, COGS 260)
  • Graphics and Vision (CSE 252A, 252B, 252C, 272, 274)
  • Bioinformatics (CSE 280A, 282, 283, MATH 283)


In addition to the above, each student must take three additional courses (twelve units) including at most eight units of 299, with no grade lower than C–. Upper-division undergraduate courses satisfying the competency requirement may be used as electives. Undergraduate upper-division courses CSE 291 and CSE 299 may also be used to fulfill this requirement. Units obtained in the CSE 209 series, 229 series, 239 series, 249 series, 259 series, 269 series, 279 series, 289 series, 290, 292, 293, 294, 298, and 500, and 599 do not count toward the elective requirement.

Research Exam Requirement

The research exam is intended to verify three components of the student’s preparation for PhD research: (1) breadth of comprehension sufficient to enable computer science research in areas beyond the topic(s) of the research exam and thesis; (2) ability to perform critical study, analysis, and writing in a focused area; and (3) research experience.

The research exam has both an oral part and a written part. The oral part of the research exam is distinct from, and cannot be combined with the University Qualifying Exam. Grading criteria for each part, and standards for passing, are available from the CSE department graduate office.

The research exam is conducted by a committee of three faculty members approved by the Graduate Committee and the chair of the department. At least two committee members must be CSE senate faculty. The student’s adviser is not a member of the committee, but is free to attend the research examination. The normative time for passing the research exam is by the end of the second year of study. A petition to the CSE Graduate Committee is required to take the research examination after the student’s seventh quarter of study. The research exam must be passed by the end of the third year if the student is to continue in the PhD program. Passing the research exam may enable PhD students to receive the MS degree if they have otherwise met their MS degree requirements concurrently. PhD students who do not pass the exam after two attempts will be given the opportunity to write a thesis in order to receive a terminal MS degree. The MS degree is only granted to those students who do not already hold an MS degree prior to entering the CSE department at UC San Diego.

Teaching Assistant Requirement

All students enrolled in the PhD program must have one quarter of training as a teaching assistant. This is a formal degree requirement and must be completed before the student is permitted to graduate. The requirement is met by serving as a 50 percent teaching assistant and taking CSE 599 (Teaching Assistantship).

Qualifying Examination and Advancement to Candidacy 

The qualifying examination is a requirement for advancement to candidacy. Prior to taking the qualifying examination a student must have satisfied the departmental competency, course, and research exam requirements and must have been accepted by a CSE faculty member as a PhD thesis candidate. All doctoral students are expected to advance to candidacy by the end of their third year, and advancement is mandatory by the end of the fourth year. The examination is administered by a doctoral committee appointed by the dean of the Graduate Division and Research and consists of faculty from CSE and other departments. More information on the composition of the committee can be obtained from the CSE graduate office. The examination is taken after the student and his or her adviser have identified a topic for the dissertation and an initial demonstration of feasible progress has been made. The candidate is expected to describe his or her accomplishments to date as well as future work.


The dissertation defense is the final PhD examination. A candidate for the PhD is expected to write a dissertation and defend it in an oral examination conducted by the doctoral committee.

Departmental PhD Time Limit Policies

Students must be advanced to candidacy by the end of four years. Total university support cannot exceed seven years. Total registered time at UC San Diego cannot exceed eight years.