The Doctor of Philosophy program in Computer Science is overseen by the Computer Science Graduate Committee (CSGC). The basic guidelines for approval of a student’s 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:

CSC 120Computer Programming I4
CSC 220Computer Programming II4
CSC 314Computer Organization and Architecture3
CSC 317Data Structures And Algorithm Analysis3
CSC 427Theory Of Computing3
MTH 161Calculus I4
MTH 224Introduction to Probability and Statistics3
MTH 309Discrete Mathematics I3
Total Credit Hours27

Students may be admitted with deficiencies; these must be completed in addition to the degree requirements.

Requirements for Graduation

Students must complete the Graduate School requirements, and the Departmental requirements described here.


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

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 at the end of the second year. The exam will be administered once a year in the early weeks of the summer session. 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.

Classroom Courses

In the first two years, the student must take eight CSGC-approved classroom courses, for a total of 24 credit hours. At least four of these courses (12 credit hours) must be CSC 7XX courses. 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 at the end of this description.

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 comprehensive 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.

Approved Courses for Doctor of Philosophy

CSC 506Logic3
CSC 518Interpreters and Compiler Theory3
CSC 528Introduction to Parallel Computing3
CSC 540Algorithm Design and Analysis3
CSC 547Computational Geometry3
CSC 609Data Security and Cryptography3
CSC 623Theory of Relational Databases3
CSC 645Introduction to Artificial Intelligence3
MTH 505Theory of Numbers3
ECE 534Communication Networks3
ECE 756Information Theory3
CSC 529Introduction to Computer Graphics3
CSC 545Introduction to Artificial Intelligence3
CSC 548Bioinformatics Algorithms3
CSC 555Multimedia Systems3
CSC 645Introduction to Artificial Intelligence3
CSC 649Bioinformatics Algorithms3
CSC 656Multimedia Systems3
CSC 732Parallel Algorithms3
CSC 752Autonomous Robotic Systems3
MTH 520Numerical Linear Algebra3
MTH 521Numerical Methods In Differential Equations3
ECE 677Data Mining3
ECE 738Computer Vision3
ECE 753Pattern Recognition and Neural Networks3
CSC 518Interpreters and Compiler Theory3
CSC 555Multimedia Systems3
CSC 645Introduction to Artificial Intelligence3
ECE 514Computer Architecture3
Approved Graduate Courses
CSC 540Algorithm Design and Analysis3
CSC 629Introduction to Computer Graphics3
CSC 632Introduction to Parallel Computing3
CSC 640Algorithm Design and Analysis3
CSC 647Computational Geometry3
CSC 685Topics in Computer Science1-3
CSC 686Topics in Computer Science1-3
CSC 687Topics in Computer Science1-3
CSC 688Topics in Computer Science1-3
CSC 689Topics in Computer Science1-3
CSC 707Logic Programming3
CSC 711Theory of Computation3
CSC 712Complexity Theory3
CSC 724Mobile Wireless Systems3
CSC 746Neural Computing3
CSC 751Semantic Web3
CSC 756Advanced Multimedia Systems3
CSC 785Advanced Topics in Computer Science1-3
CSC 786Advanced Topics in Computer Science1-3
CSC 787Advanced Topics in Computer Science1-3
CSC 788Advanced Topics in Computer Science1-3
CSC 789Advanced Topics in Computer Science1-3
CSC 749Automated Reasoning3
CSC 618Interpreters and Compiler Theory3
CSC 548Bioinformatics Algorithms3
CSC 555Multimedia Systems3
CSC 595Topics in Computer Science1-3
CSC 596Topics in Computer Science1-3
CSC 597Topics in Computer Science1-3
CSC 598Topics in Computer Science1-3
CSC 599Topics in Computer Science1-3
CSC 609Data Security and Cryptography3
CSC 623Theory of Relational Databases3
CSC 645Introduction to Artificial Intelligence3
CSC 647Computational Geometry3
CSC 670Directed Reading2-4
CSC 690Seminar for Beginning Graduate Students1-3
CSC 692Seminar1-2
MTH 520Numerical Linear Algebra3
MTH 521Numerical Methods In Differential Equations3
MTH 524Introduction to Probability3
MTH 525Introduction to Mathematical Statistics3
MTH 621Numerical Methods In Differential Equations3
CSC 507Data Security and Cryptography3