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 120||Computer Programming I||4|
|CSC 220||Computer Programming II||4|
|CSC 314||Computer Organization and Architecture||3|
|CSC 317||Data Structures and Algorithm Analysis||3|
|CSC 427||Theory of Computing||3|
|MTH 161||Calculus I||4|
|MTH 224||Introduction to Probability and Statistics||3|
|MTH 309||Discrete Mathematics I||3|
|Total Credit Hours||27|
Students may be admitted with deficiencies, normally a maximum of 6 credits. 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 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.
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.
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.
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
|Approved Graduate Courses|
|CSC 507||Data Security and Cryptography||3|
|MTH 520||Numerical Linear Algebra||3|
|MTH 521||Numerical Methods in Differential Equations||3|
|MTH 524||Introduction to Probability||3|
|MTH 525||Introduction to Mathematical Statistics||3|
|CSC 540||Algorithm Design and Analysis||3|
|CSC 555||Multimedia Systems||3|
|CSC 595||Topics in Computer Science||1-3|
|CSC 596||Topics in Computer Science||1-3|
|CSC 597||Topics in Computer Science||1-3|
|CSC 598||Topics in Computer Science||1-3|
|CSC 599||Topics in Computer Science||1-3|
|CSC 609||Data Security and Cryptography||3|
|CSC 618||Interpreters and Compiler Theory||3|
|MTH 621||Numerical Methods in Differential Equations||3|
|CSC 623||Theory of Relational Databases||3|
|CSC 629||Introduction to Computer Graphics||3|
|CSC 632||Introduction to Parallel Computing||3|
|CSC 640||Algorithm Design and Analysis||3|
|CSC 645||Introduction to Artificial Intelligence||3|
|CSC 647||Computational Geometry||3|
|CSC 649||Bioinformatics Algorithms||3|
|CSC 670||Directed Reading||2-4|
|CSC 685||Topics in Computer Science||1-3|
|CSC 686||Topics in Computer Science||1-3|
|CSC 687||Topics in Computer Science||1-3|
|CSC 688||Topics in Computer Science||1-3|
|CSC 689||Topics in Computer Science||1-3|
|CSC 690||Seminar for Graduate Students I||1-3|
|CSC 692||Seminar for Graduate Students II||1-2|
|CSC 707||Logic Programming||3|
|CSC 711||Theory of Computation||3|
|CSC 712||Complexity Theory||3|
|CSC 724||Mobile Wireless Systems||3|
|CSC 746||Neural Networks and Deep Learning||3|
|CSC 749||Automated Reasoning||3|
|CSC 751||Semantic Web||3|
|CSC 752||Autonomous Robotic Systems||3|
|CSC 756||Advanced Multimedia Systems||3|
|CSC 785||Advanced Topics in Computer Science||1-3|
|CSC 786||Advanced Topics in Computer Science||1-3|
|CSC 787||Advanced Topics in Computer Science||1-3|
|CSC 788||Advanced Topics in Computer Science||1-3|
|CSC 789||Advanced Topics in Computer Science||1-3|