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, normally a maximum of 6 credits. These must be completed in addition to the degree requirements.

Curriculum Requirements

CSC 700-Level Courses12
Electives with Advisor Approval12-30
Pre-Candidacy Course9-27
Post-Candidacy Course9-27
Post-Candidacy Doctoral Dissertation
Research in Residence
Total Credit Hours60

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 9 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

By the end of the first two years, the student must have completed at least eight classroom courses, for a total of at least 24 credits. At least four of these courses (12 credit hours) must be CSC7XX courses. The student must work with the Director of Graduate Studies to select approved courses. Maximally 12 credits from prior study may be pre-approved by the Director  of Graduate Studies for transfer after completion of an equivalent number of credits at the University of Miami. 

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.


The Department's mission is to educate and perform scholarly activities in Computer Science.

Student Learning Outcomes

  • Student has adequate knowledge of 1) hardware and software systems and 2) design and implementation procedures for software systems.
  • Student has foundation of theoretical computer science including discrete mathematics, automata and language theory, design and analysis of algorithms, computational complexity, and correctness of programs.
  • Student has understanding and knowledge of the state-of-the-art hardware and software applications in one or more research area and has identified one or more open and interesting problems that computer scientists are currently addressing.
  • Student has applied knowledge of computer science theories and software development methodologies to solve an original research topic. The student has written a Ph.D. dissertation and presented to his dissertation committee.
  • Student has received national and international recognition for presentation and publication of original research results.