Doctor of Philosophy

The Doctor of Philosophy program in Computer Science is overseen by the Computer Science Graduate Committee (CSGC). The basic guidelines for approval of a students program are recommendations appearing in the Communications of the Association for Computing Machinery (ACM), the professional society in Computer Science.

Prerequisites for Admission

Completion of the following courses, or their equivalents, is prerequisite to entry into the program: CSC120, CSC220, CSC314, CSC317, CSC427, MTH161, MTH224, and MTH309. Students may be admitted with deficiencies, normally a maximum of 6 credits; these must be completed in addition to the degree requirements. Students with more deficiencies should consider completing the Post Baccalaureate Certificate in Computer Science to obtain the necessary prerequisite knowledge.

Application Procedure and Deadlines

Procedures, deadlines, and a link to the online application form are available here.

Requirements for Graduation

For graduation students must complete at least 60 credits (as required by the Graduate School), including at least 24 classroom course credits (see below), at least 9 pre-candidacy credits (CSC830), and at least 9 post-candidacy credits (CSC840).

Classroom Courses: 
In the first two years, the student must take at least eight CSGC-approved classroom courses, for a total of at least 24 credits. The eight courses must include two courses from each of the areas of Analysis, Applications, and Systems. The student must work with the Director of Graduate Studies to select a cohesive set of courses as approved by the CSGC. The CSGC will have sole authority in designating the areas to which each course belongs. In the case that a course is designated in more than one area, a student may apply the course to only one area. The designation of current CSGC-approved courses appears in the Graduate Bulletin.

Written Qualifying Exam: 
The student must pass a three-hour written exam of general knowledge of Computer Science at the end of the first year. Upon failure, the student may petition the CSGC to allow a second attempt in the second year. The exam will be administered once a year in the early weeks of the summer session or early in the fall semester. It will cover expected knowledge of all first-year graduate students. Included in this material are a fundamental understanding of algorithm analysis and design, advanced skills in programming, basic knowledge of computer architecture, and a general understanding of computer systems.

Selecting an Advisor: 
By the end of the second semester, the student must find a research supervisor. By the end of the third semester, the student must have made significant progress on a research project under the supervision of a faculty member. The student must write a detailed progress report that will become a public document and shall be kept on file by the Department. The student must present the report to a quorum of the CSGC at a time to be approved by the chairman of the Department. The supervisor and CSGC must approve the project as applicable toward candidacy for a Ph.D.

Annual Presentations: 
After passing the written qualifying exam, the student must make a public oral presentation to the Department at least once per year. These presentations include the thesis proposal and the thesis defense. The goals are to develop the student's oral and presentation skills, to provide a means for the Department to check the research and progress of the student, and to present the opportunity for feedback to improve the student's research.

Teaching Experience: 
Each student must teach a lab-based course for a minimum of one semester. Lab-based courses typically require the student to present material in a relaxed lecture format, re-emphasizing material learned in the general lecture as well as introducing new material to the students.

Responsible Conduct of Research Training:
All Computer Science graduate TAs and RAs must complete Responsible Conduct of Research (RCR) training during their first semester in the department. All other Computer Science graduate students must complete RCR training before starting research work. Information about RCR training can be found from UM ethics programs: