Graduate Degree Requirements
M.S. Thesis Option
 CS 900  Computer Science Seminar.

Eight CS graduate courses of at least three credits each.
 Two courses must be implementation intensive.
 At least one course must be chosen from three different breadth areas.
 At least two courses must be above 900.
 At most one course can be CS 998, Independent Study.
 Thesis (six credits). The student must complete a thesis under the supervision of a faculty adviser and a thesis committee of at least three members.
M.S. Project Option
 CS 900  Computer Science Seminar.

Ten CS graduate courses of at least three credits each.
 Two courses must be implementation intensive.
 At least one course must be chosen from four different breadth areas.
 At least three courses must be above 900; one of these must be related to the project area.
 At most one course can be CS 998, Independent Study.
 Project (three credits). The student must complete a project under the supervision of a faculty adviser.
M.S. Exam Option
 CS 900  Computer Science Seminar.

Ten CS graduate courses of at least three credits each.
 Two courses must be implementation intensive.
 At least one course must be chosen from four different breadth areas.
 At least three courses must be above 900; one of these must be related to the project area.
 At most one course can be CS 998, Independent Study.
 Comprehensive exam that includes four different examination topics. One topic must be selected from the Theory group; the other three topics must be selected from three different groups (which can include a second theory topic).
Ph.D. Requirements
 CS 900  Computer Science Seminar.

Six CS graduate courses (three credits or more) beyond the MS or twelve CS graduate courses beyond the B.S.
 Two courses must be implementation intensive.
 All students must take CS 845, Formal Specification and Verification of Software Systems.
 At most two courses can be CS 998, Independent Study.
 Students who arrive with an M.S. degree may have a course requirement waived with the approval of the faculty member who normally teaches the course. Note that this does not reduce the number of courses required to complete the degree.
 Students may count nonCS courses towards their degree requirements with the approval of their advisor and the Graduate Studies Committee.
 Breadth requirement. Courses must be taken from at least four different breadth areas, 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 coures are used to compute the GPA.
 Research tool. 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 noncomputer science graduate level course.
 Depth requirement. Under the direction of a faculty 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.
 Dissertation. 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 adviser and a dissertation committee of at least five members, including one from outside the department.
Implementation Intensive Courses
Implementation intensive courses include: CS 812, CS 830, CS 835, CS 870 and CS 980 (Advanced Topics: Data Science).
Examination Topic Areas
The list below identifies the seven topic areas used for the M.S. comprehensive exam.
Area  Exam Topic(s) 
Theory  Formal Specification and Verification, Algorithms 
Operating Systems  Advanced Operating Systems 
Compiler and Language  Compilers 
Database  Database 
Artificial Intelligence  Artificial Intelligence 
Interactive Systems  Graphics 
Computer Networks  Computer Networks 
Breadth Course Areas
The list below identifies the seven breadth course areas and the introductory (800level) graduate courses in each area. It is also acceptable to satisfy an area requirement by taking an advanced course (900level) in the specified area. (Note that there are courses in the curriculum that are not in any of the identified groups.)
Area  Introductory Course(s) 
Theory  CS 845, 858 
Operating Systems  CS 823 
Compiler and Language  CS 812, 835, 871 
Database  CS 853, 875 
Artificial Intelligence  CS 830 
Interactive Systems  CS 860, 870 
Computer Networks  CS 825 