Doctor of Philosophy with a Major in Computer Science
For more information about the Computer Science PhD program, visit www.cc.gatech.edu.
Program of Study
All PhD programs must incorporate a standard set of Requirements for the Doctoral Degree.
Code | Title | Credit Hours |
---|---|---|
Summary of Requirements | ||
CS 7001 | Overview of Graduate Studies in Computing | 5 |
Research Credit | ||
Breadth Component (4 classes) 1 | ||
Programming Proficiency Requirement | ||
Minor Field of Study | ||
GTA Apprenticeship Requirement | ||
Qualifying Exam | ||
Thesis Proposal | ||
Dissertation Defense |
- 1
Of the four different courses, one must be from the Theory area. Students must earn an A or B in all of these courses, and more As than Bs total.
CS 7001: Introduction to Graduate Studies
During students' first semester at the College, they are expected to enroll in CS7001, Introduction to Graduate Studies. This course helps prepare students for research in computer science and provides an introduction to the various research areas in the College.
Research Credit
Research with a faculty member is an essential aspect of the Computer Science Ph.D. Newly admitted students are expected to work on one or more jointly-defined research projects with faculty members in the College. While one goal of this is for the student to gain practical experience in doing research, these semester-long projects also serve as a way for students and faculty to begin to explore potential advisor relationships.
Before students have a formal advisor, they are expected to register for CS 8903, Special Problems in Computer Science, under the supervision of a faculty member in the College. Registration for this course is restricted, and requires that students and the supervising faculty member complete a form describing the research to be completed over the course of the semester. Students may occasionally participate in multiple 8903 research projects in any given semester, given time and other commitments, and may participate in 8903 research projects for several semesters until they have a formal research advisor.
Once students have a formal advisor, they are expected to focus on what will become their dissertation research under the supervision of their advisor. At this stage, students will register for CS 8999, Doctoral Thesis Preparation. Students and their advisor must fill out the CS 8999 permit form that indicates the general research direction and that confirms the establishment of the advisory relationship. This form only needs to be filled out one time.
Breadth Component (4 classes)
After admission, a student begins to work on fulfilling the breadth requirement. The breadth component of the program is intended to give students a view into a variety of areas within computing. Each student must take classes in 4 of the 18 areas of computer science. The 18 areas are:
- Computational Science and Engineering
- Computer Architecture
- Cryptography
- Database Systems
- Graphics and Visualization
- Human-Computer Interaction
- Artificial Intelligence
- Learning Sciences and Technology
- Machine Learning
- Network Security
- Networking and Communications
- Privacy, Security, and Policy
- Programming Languages and Compilers
- Social Computing
- Software Methodology and Engineering
- System Security
- Systems (Including Operating Systems, and Distributed and Parallel Processing)
- Theoretical Computer Science
Students who have taken graduate level courses elsewhere before entering the program can petition to have those classes count towards filling the breadth requirement.
Programming Proficiency Requirement
In addition, each student must complete a Programming Proficiency requirement. A single class may satisfy both the Programming Proficiency requirement and a Breadth area requirement. The Programming Proficiency requirement must be fulfilled at Georgia Tech and may not be satisfied by transfer credit or advanced standing.
Breadth Component Areas and Classes
Code | Title | Credit Hours |
---|---|---|
Artificial Intelligence | ||
CS 6601 | Artificial Intelligence | 3 |
CS 6795 | Introduction to Cognitive Science | 3 |
CS 7495 | Computer Vision | 3 |
CS 7630 | Autonomous Robotics | 3 |
CS 7631 | Autonomous Multi-Robot Systems | 3 |
CS 7632 | Game Artificial Intelligence | 3 |
CS 7633 | Human-Robot Interaction | 3 |
CS 7634 | AI Storytelling in Virtual Worlds | 3 |
CS 7636 | Computational Perception | 3 |
CS 7637 | Knowledge-Based AI | 3 |
CS 7641 | Machine Learning | 3 |
CS 7643 | Deep Learning | 3 |
CS 7647 | Machine Learning with Limited Supervision | 3 |
CS 7648 | Interactive Robot Learning | 3 |
CS 7649 | Robot Intelligence: Planning | 3 |
CS 7650 | Natural Language | 3 |
CS 7651 | Human and Machine Learning | 3 |
CSE 6740 | Computational Data Analysis: Learning, Mining, and Computation | 3 |
Computational Science and Engineering | ||
CSE 6140 | Computational Science and Engineering Algorithms | 3 |
CSE 6220 | High Performance Computing | 3 |
CSE 6730 | Modeling and Simulation: Foundations and Implementation | 3 |
CSE/MATH 6643 | Numerical Linear Algebra | 3 |
CSE/ISYE 6740 | Computational Data Analysis: Learning, Mining, and Computation | 3 |
Computer Architecture 1 | ||
CS 6290 | High-Performance Computer Architecture | 3 |
CS 7290 | Advanced Topics in Microarchitecture and organization of high-performance processors. | 3 |
CS 7292 | Reliability and Security in Computer Architecture | 3 |
Cryptography | ||
CS 6260 | Applied Cryptography | 3 |
CS 7560 | Theoretical Foundations of Cryptography | 3 |
CS 8803 | Special Topics (Blockchain and Cryptocurrencies) | 3 |
CS 8803 | Special Topics (Secure Mulitparty Computation) | 3 |
CS 8803 | Special Topics (Secure Communication Protocols) | 3 |
Database Systems | ||
CS 4420 | Database System Implementation | 3 |
CS 6400 | Database Systems Concepts and Design | 3 |
CS 6411 | Object-Oriented Database Models and Systems | 3 |
CS 6421 | Temporal, Spatial and Active Databases | 3 |
CS 6422 | Database System Implementation | 3 |
CS 6430 | Parallel and Distributed Database Systems and Applications | 3 |
Graphics & Visualization | ||
CS 6421 | Temporal, Spatial and Active Databases | 3 |
CS 6476 | Introduction to Computer Vision GR | 3 |
CS 6480 | Computer Visualization Techniques | 3 |
CS 6491 | Foundations of Computer Graphics | 3 |
CS 6780 | Medical Image Processing | 3 |
CS 7476 | Advanced Computer Vision | 3 |
CS 7490 | Advanced Image Synthesis | 3 |
CS 7491 | 3D Complexity Techniques for Graphics, Modeling, and Animation | 3 |
CS 7496 | Computer Animation | 3 |
CS 7497 | Virtual Environments | 3 |
CS 7636 | Computational Perception | 3 |
Human Computer Interaction | ||
CS 6451 | Introduction to Human-Centered Computing | 3 |
CS 6455 | User Interface Design and Evaluation | 3 |
CS 6456 | Principles of User Interface Software | 3 |
CS 6470 | Design of Online Communities | 3 |
CS 6750 | Human-Computer Interaction | 3 |
CS 7450 | Information Visualization | 3 |
CS 7451 | Human-Centered Data Analysis | 3 |
CS 7460 | Collaborative Computing | 3 |
CS 7470 | Mobile and Ubiquitous Computing | 3 |
CS 7633 | Human-Robot Interaction | 3 |
Learning Sciences and Technology | ||
CS 6460 | Educational Technology: Conceptual Foundations | 3 |
CS 6461 | CS Education Research | 3 |
CS 7465 | Educational Technology: Design and Evaluation | 3 |
CS 7467 | Computer-Supported Collaborative Learning | 3 |
CS 8803 | Special Topics (Cognition and Education) | 3 |
Machine Learning | ||
CS 6476 | Introduction to Computer Vision GR | 3 |
CS 7545 | Theoretical Foundations of Machine Learning | 3 |
CS 7616 | Pattern Recognition | 3 |
CS 7641 | Machine Learning | 3 |
CS 7643 | Deep Learning | 3 |
CS 7646 | Machine Learning for Trading | 3 |
CSE 6240 | Web Search and Text Mining | 3 |
CSE 6242 | Data and Visual Analytics | 3 |
CSE 6740 | Computational Data Analysis: Learning, Mining, and Computation | 3 |
Networking and Communications | ||
CS 6250 | Computer Networks | 3 |
CS 7620 | Case-Based Reasoning | 3 |
CS 7270 | Networked Applications and Services | 3 |
CS 7280 | Network Science: Methods and Applications | 3 |
Network Security | ||
CS 6262 | Network Security | 3 |
CS 6264 | Information Security Lab: System and Network Defenses | 3 |
CS 8803 | Special Topics (Empirical Computer Security) | 3 |
CS 8803 | Special Topics (Advanced Network Security and Measurement) | 3 |
CS 8803 | Special Topics (Securing Internet Infrastructure) | 3 |
Programming Languages and Compilers | ||
CS 6241 | Design and Implementation of Compilers | 3 |
CS 6245 | Compiling for Parallelism | 3 |
CS 6390 | Programming Language Design | 3 |
CS 8803 | Special Topics (Topics in Program Analysis) | 3 |
Privacy, Security and Policy | ||
CS 6268 | Psychology of Cybersecurity | 3 |
CS 6725 | Information Security Strategies and Policies | 3 |
CS 6726 | Privacy, Technology, Policy, and Law | 3 |
CS 6268 | Psychology of Cybersecurity | 3 |
CS 8803 | Special Topics (Security, Privacy, and Democracy) | 3 |
Social Computing | ||
CS 6465 | Computational Journalism | 3 |
CS 6470 | Design of Online Communities | 3 |
CS 6474 | Social Computing | 3 |
CS 6675 | Advanced Internet Computing Systems and Applications | 3 |
CS 7270 | Networked Applications and Services | 3 |
CS 7460 | Collaborative Computing | 3 |
CS 7467 | Computer-Supported Collaborative Learning | 3 |
CS 8803 | Special Topics (Cognition and Culture) | 3 |
Software Methodology and Engineering | ||
CS 6300 | Software Development Process | 3 |
CS 6301 | Advanced Topics in Software Engineering | 3 |
CS 6310 | Software Architecture and Design | 3 |
CS 6320 | Software Requirements Analysis and Specification | 3 |
CS 6330 | Software Generation, Testing, and Maintenance | 3 |
CS 6340 | Advanced Topics in Software Analysis and Testing | 3 |
CS 8803 | Special Topics (Formal Modeling and Analysis of Computing Systems) | 3 |
Systems | ||
CS 6210 | Advanced Operating Systems | 3 |
CS 6235 | Real-Time System Concepts and Implementation | 3 |
CS 6365 | Intro Enterprise Comput. | 3 |
CS 6675 | Advanced Internet Computing Systems and Applications | 3 |
CS 7210 | Distributed Computing | 3 |
System Security | ||
CS 6238 | Secure Computer Systems | 3 |
CS 6263 | Intro to Cyber-Physical Systems Security | 3 |
CS 6265 | Information Security Laboratory | 3 |
CS 6402 | Databases and Information Security | 3 |
CS 6747 | Advanced Topics in Malware Analysis | 3 |
CS 8803 | Special Topics (Cybersecurity of Drones) | 3 |
CS 8803 | Special Topics (Exploiting Smart Contract/DeFi) | 3 |
Theory | ||
CS 6505 | Computability, Algorithms, and Complexity | 3 |
CS 6515 | Introduction to Graduate Algorithms | 3 |
CS 6520 | Computational Complexity Theory | 3 |
CS 6550 | Design and Analysis of Algorithms | 3 |
CS 7510 | Graph Algorithms | 3 |
CS 7520 | Approximation Algorithms | 3 |
CS 7530 | Randomized Algorithms | 3 |
CSE 6140 | Computational Science and Engineering Algorithms | 3 |
- 1
Students who have not already taken CS 6290 or the equivalent should take CS 6290 to satisfy this requirement. Those who have already taken CS 6290, or CS 4290 (Advanced Computer Organization) or the equivalent, can satisfy this requirement by taking CS 7290 or CS 7292.
Programming Proficiency Requirement:
Each student must complete a Programming Proficiency requirement. A single class may satisfy both the Programming Proficiency requirement and a Breadth area requirement. The Programming Proficiency requirement must be fulfilled at Georgia Tech and may not be satisfied by transfer credit or advanced standing.
Code | Title | Credit Hours |
---|---|---|
The courses that can satisfy the Programming Proficiency Requirement are: | ||
CS 6210 | Advanced Operating Systems | 3 |
CS 6238 | Secure Computer Systems | 3 |
CS 6241 | Design and Implementation of Compilers | 3 |
CS 6262 | Network Security | 3 |
CS 6264 | Information Security Lab: System and Network Defenses | 3 |
CS 6290 | High-Performance Computer Architecture | 3 |
CS 6476 | Introduction to Computer Vision GR | 3 |
CS 6601 | Artificial Intelligence | 3 |
CS 7490 | Advanced Image Synthesis | 3 |
CS 7492 | Simulation of Biological Systems | 3 |
CS 7632 | Game Artificial Intelligence | 3 |
CS 7637 | Knowledge-Based AI | 3 |
CS 7643 | Deep Learning | 3 |
CS 7646 | Machine Learning for Trading | 3 |
CS 7650 | Natural Language | 3 |
Minor Field of Study
The minor is a sequence of non-College of Computing courses with a coherent theme, totaling 6 credit hours. These courses should have a subject designator OTHER than "CS/CSE" as reported on your transcript. Their theme should somehow relate to the subject of the student's thesis and research.
The classes must be taken for a letter grade, with at least a "B" average. Courses should be at the graduate level, but one approved 4000-level course may be used. No more than three of the hours may be directed research.
After completing all the minor classes, download and fill out the Minor form.
GTA Apprenticeship Requirement
CS Ph.D. students must complete a one-semester teaching apprenticeship requirement. Through this requirement, students will develop general skills in pedagogy, communication, curriculum development, and organization. This type of practical experience will help students become effective communicators and will serve as valuable preparation for any career. Students are required to take a relevant one-semester training course, such as CETL 8000 Graduate Teaching Assistant Preparation, during the same semester they serve as a teaching apprenticeship.
Qualifying Exam
As a student's research progresses, he or she must select a primary, and possibly secondary, area of focus from the areas of research in the College and then pass a Qualifier in that area or areas. The Qualifier is a student's first step toward achieving candidacy in the doctoral program. This Qualifier functions as Georgia Tech's Comprehensive Examination.
Thesis Proposal
The PhD. proposal consists of:
- A proposal document written by the student in which he/she will propose the research work to be undertaken as part of his/her doctoral work and a schedule for completion
- An oral defense of the proposal document
A student must have passed the qualifying examination to do a PhD. proposal. A student who has passed the proposal defense and has also completed all course requirements (except the minor), maintaining a satisfactory scholastic record, has achieved PhD. candidacy and should submit the Candidacy form.
Dissertation Defense
Before the announcement of the public PhD. dissertation defense, your advisor must approve that the dissertation is ready to be given to the dissertation committee, and the dissertation committee must approve that the dissertation is ready for the public dissertation defense. Before giving this approval, the entire committee is expected to have read the dissertation and to have given comments to the student. The committee must approve that a substantial and defensible portion of the dissertation has been completed. Three (3) weeks is a reasonable amount of time for reading the dissertation.
After the approval, the candidate’s academic department must announce the public dissertation defense at least fifteen (15) days in advance, and it must forward this announcement together with the names of the dissertation committee to the Office of Graduate Studies and Research.
The public dissertation defense starts with a presentation by the candidate and is followed by a question-answer period. The advisor, who is the chair of the committee, determines who may ask questions and in which order and brings the discussion to a close at the appropriate time. The question-answer period is followed by a closed-door session attended by only the members of the PhD. dissertation committee and interested Georgia Tech faculty.