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. If two CS 998 courses are taken, they must be taught by different instructors.
- 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 non-CS 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 non-computer 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 (800-level) graduate courses in each area. It is also acceptable to satisfy an area 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.)
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, 850 |
Interactive Systems | CS 833, 860, 870 |
Computer Networks | CS 825 |