Computer Science (Ph.D.)

This is an archived copy of the 2017-2018 catalog. To access the most recent version of the catalog, please visit

The Ph.D. program is designed to develop a student's ability to carry out advanced research, as well as ensure the breadth and depth of computer science knowledge required to obtain a faculty position in academia or a research position in industry or at a national laboratory. Students first work to obtain breadth knowledge and a faculty research mentor. Then, working with their mentor, they carry out advanced work that results in original research publications and a doctoral dissertation.

CS 900Graduate Seminar1
Select six CS graduate courses (of at least 3 credits each) beyond the M.S. or twelve CS graduate courses beyond the B.S. 118
Breadth Requirement 2
Research Tool 3
Depth Requirement 4
Dissertation 5
Total Credits19

The courses must satisfy the following requirements:

  • Two must be implementation intensive (see list below).
  • All students must take CS 845 Formal Specification and Verification of Software Systems.
  • At most two can be CS 998 Independent Study.

Courses must be taken from at least four breadth groups (see list below), with one of the groups being the Theory group. Students must obtain a 3.4 GPA in the four breadth courses. The student designates which four courses are used to compute the GPA.


A research tool represents knowledge and skills in another discipline that can help the student carry out his or her research plan. This is typically satisfied by taking a non­-computer­-science graduate level course.


Under the direction of a depth adviser and a depth committee, the student carries out some preliminary research that is likely to lead to a dissertation topic. The student must produce two written reports (a literature survey and a research report) and make a presentation as part of an oral examination on the material. After the student has successfully completed the depth exam and has satisfied the research tool requirement, the student is advanced to candidacy.


The student must complete original research and present and defend a dissertation describing that research. The research is carried out under the supervision of a faculty member dissertation adviser and a dissertation committee of at least five members, including one from outside the department.

Implementation Intensive Courses

Implementation intensive courses include:

CS 812Compiler Design3
CS 830Introduction to Artificial Intelligence3
CS 835Introduction to Parallel and Distributed Programming3
CS 870Computer Graphics3
CS 980Advanced Topics (Data Science)3

Breadth Course Groups

The list below identifies the seven breadth course groups and introductory (800­-level) graduate courses in each group. It is also acceptable to satisfy a group requirement by taking an advanced course (900-­level) in the specified area. (Note that there are courses in the curriculum that are not in any of the identified groups.)

Group: Introductory Course

CS 845Formal Specification and Verification of Software Systems3
CS 858Algorithms3
CS 823Performance Evaluation of Computer Systems3
Compiler and Language
CS 812Compiler Design3
CS 835Introduction to Parallel and Distributed Programming3
CS 871Web Programming Paradigms3
CS 853Information Retrieval3
CS 875Database Systems3
Artificial Intelligence
CS 830Introduction to Artificial Intelligence3
Interactive Systems
CS 860Introduction to Human-Computer Interaction3
CS 870Computer Graphics3
CS 825Computer Networks3