Chapter 5: Core Requirements

Research

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 form CS 8903 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.

After students pass their Qualifier, they must complete the Ph.D. Qualifier and Dissertation (CS 9000) Permit Form with their advisor and register for CS 9000 research credit. This form only has to be filled out one time.

GA Tech Thesis and Dissertation Policy

Responsible Conduct of Research (RCR)

GT Responsible Conduct of Research Contact Us | Responsible Conduct of Research

As part of their degree requirements, doctoral students must complete two forms of RCR training:

  1. Online Training: The online training, a CITI RCR course, must be successfully completed within 60 days of when applicable students begin the first full semester in their doctoral program.

  2. RCR Course for Doctoral Students: Doctoral students covered by this policy are required to complete successfully CS 7001, PHIL 6000 OR an academic program's In-house RCR course for doctoral students. Students are strongly encouraged to complete an RCR course for doctoral students within the first 12 months of their doctoral program. In general, doctoral students who need to take PHIL 6000 are encouraged to do so during the first summer session after they begin their doctoral program at Georgia Tech.

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, totaling 12 credits minimum. All students must take at least one programming course, and one Theory course.

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.

After completing the Breadth Requirement, fill out the 'Breadth Requirement Form' and route through Docusign for signatures. Once signatures have been collected, no further action is required by the student. The breadth requirement is considered met.

Students who have taken graduate level courses elsewhere before entering the program can petition to have those classes count towards filling the breadth requirement. See the Equivalency Credits section for details.

Breadth Component Areas and Classes

Breadth Area Classes
Computational Science and Engineering CSE 6140 Computational Science and Engineering Algorithms
CSE 6220 High Performance Computing
CSE 6730 Modeling and Simulation: Foundations and Implementation
CSE/Math 6643 Numerical Linear Algebra
CSE/ISYE 6740 Computational Data Analysis
Computer Architecture CS 6290 High Performance Computer Architectures
CS 7290 Advanced Microarchitecture
CS 7292 Reliability and Security in Computer Architecture
Note: 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.
Database Systems CS 4420 Database System Implementation
CS 6400 Database System Concepts and Design
CS 6411 Object-Oriented Database Models and Systems
CS 6421 Temporal, Spatial, and Active Databases
CS 6422 Database Systems Implementation
CS 6430 Parallel and Distributed Database Systems and Applications
Graphics and Visualization CS 6476 Computer Vision
CS 6480 Computer Visualization Techniques
CS 6491 Computer Graphics
CS 6780 Medical Image Processing
CS 7476 Advanced Computer Vision
CS 7490 Advanced Image Synthesis
CS 7491 3D Complexity
CS 7496 Computer Animation
CS 7497 Virtual Environments
CS 7636 Computational Perception
Human Computer Interaction CS 6451 Introduction to Human-Centered Computing
CS 6455 User Interface Design and Evaluation
CS 6456 Principles of User Interface Software
CS 6470 Design of Online Communities
CS 6750 Human-Computer Interaction
CS 7450 Information Visualization
CS 7451 Human-Centered Data Analysis
CS 7460 Collaborative Computing
CS 7470 Mobile and Ubiquitous Computing
CS 7633 Human-Robot Interaction
Cryptography CS 6260 Applied Cryptography
CS 7560 Theoretical Foundations of Cryptography
CS 8803 BC Blockchain and Cryptocurrencies
CS 8803 SMC Secure Multiparty Computation
CS 8803 SCP Secure Communication Protocols
Artificial Intelligence CS 6601 Artificial Intelligence
CS 6795 Introduction to Cognitive Science
CS 7630 Autonomous Robotics
CS 7631 Multi-Robot Systems
CS 7632 Game AI
CS 7633 Human-Robot Interaction
CS 7634 AI Storytelling in Virtual Worlds
CS 7636 Computational Perception
CS 7637 Knowledge-Based AI
CS 7641 Machine Learning
CS 7643 Deep Learning
CS 7647 Machine Learning with Limited Supervision
CS 7648 Interactive Robot Learning
CS 7649 Robot Intelligence: Planning
CS 7651 Human and Machine Learning
CSE 6740 Computational Data Analysis
Learning Sciences and Technology CS 6460 Educational Technology: Foundations
CS 6461 Computing Education Research
CS 7465 Educational Technology: Design and Evaluation
CS 7467 Computer Supported Collaborative Learning
CS 8803 Special Topics: Cognition and Education
Machine Learning CS 6476 Computer Vision
CS 7545 Theoretical Foundations of ML
CS 7616 Pattern Recognition
CS 7641 Machine Learning
CS 7643 Deep Learning
CS 7646 Machine Learning for Trading
CSE 6240 Web Search and Text Mining
CSE 6242 Data and Visual Analytics
CSE 6740 Computational Data Analysis
Networking and Communications CS 6250 Computer Networks
CS 7260 Internetworking Architectures and Protocols
CS 7270 Networked Applications and Services
CS 7280 Network Science
Network Security CS 6262 Computer Network Security
CS 6264 System and Network Defenses Lab
CS 8803 ECS Empirical Computer Security
CS 8803 EMS Advanced Network Security and Measurement
CS 8803 SII Securing Internet Infrastructure
Programming Languages and Compilers CS 6241 Design and Implementation of Compilers
CS 6245 Compiling for Parallelism
CS 6390 Programming Language Design
CS 8803 Special Topics: Topics in Program Analysis
Privacy, Security, and Policy CS 6268 Psychology of Cybersecurity
CS 6725 Information Security Strategies and Policies
CS 6726 Privacy, Technology, Policy, and Law
CS 8803 SPD Security, Privacy, and Democracy
Social Computing CS 6465 Computational Journalism
CS 6470 Design of Online Communities
CS 6474 Social Computing
CS 6675 Advanced Internet Computing Systems and Applications
CS 7270 Networked Applications and Services
CS 7460 Collaborative Computing
CS 7467 Computer-Supported Collaborative Learning
CS 8893 Special Topics in Cognitive Science: Cognition and Culture
Software Methodology and Engineering CS 6300 Software Development Process
CS 6301 Advanced Topics in Software Engineering
CS 6310 Software Architecture and Design
CS 6320 Software Requirements Analysis and Specification
CS 6330 Software Generation, Testing, and Maintenance
CS 6340 Software Analysis and Testing
CS 8803 Special Topics: Formal Modeling and Analysis of Computing Systems
Systems CS 6210 Advanced Operating Systems
CS 6235 Real-time Systems
CS 6365 Introduction to Enterprise Computing
CS 6675 Advanced Internet Computing Systems and Applications
CS 7210 Distributed Computing
Systems Security CS 6238 Secure Computer Systems
CS 6263 Intro to Cyber Physical Systems
CS 6265 Information Security Lab: Binary Exploitation
CS 6402 Databases and Information Security
CS 6747 Advanced Malware Analysis
CS 8803 COD Cybersecurity of Drones
CS 8803 ESC Exploiting Smart Contract/DeFi
Theory CS 6505 Computability, Algorithms, and Complexity
CS 6515 Intro to Graduate Algorithms
CS 6520 Computational Complexity Theory
CS 6550 Design and Analysis of Algorithms
CS 7510 Graph Algorithms
CS 7520 Approximation Algorithms
CS 7530 Randomized Algorithm
CSE 6140 Computational Science and Engineering Algorithms

Q&A

Q: May a student petition to utilize a course not previously approved as a breadth course to meet their breadth requirement?

If a student believes that a course meets one of the breadth requirements but is not pre-approved, they may petition to have it considered. In order to do so, students will first fill out a Petition to the Faculty form, appending the class syllabus and a justification for why the course should be approved. The form will be routed to Thomas Ploetz who will make the decision in collaboration with the area lead.

Q: May a student request to meet their programming breadth requirement with a course taken at another institution?

We discourage this. However, if a student thinks they have met this requirement with a class taken external to GT, they may petition to the faculty to have this request considered. This petition ultimately will be considered by the GCC (Graduate Curriculum Committee). See instructions under the Equivalency Credits section.

Q: Can a student use the same course to meet their minor, and breadth requirement?

No. This is not permitted as it takes away from the whole concept of a breadth.

Q: Can students have any number of 8803s applied to their breadth requirement?

8803s are classes that have not yet been assigned a permanent number. You can use as many as are approved to meet your breadth requirement. These 8803 classes need to be approved to count towards the breadth requirement via a petition to the faculty. This decision is made at the school level.

Q: Can 8903 count as a breadth requirement?

8903 cannot count toward the BREADTH requirements.

Programming Proficiency

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.

The courses that can satisfy the Programming Proficiency Requirement are:

Q: Can I petition to use a course not on the above list to meet my programming proficiency requirement?

Yes, just so this course was taken at Georgia Tech. Courses taken outside of GT cannot meet the programming proficiency requirement.

Process:

  1. Prepare a Petition to the Faculty form.
    • Provide a clear rationale as to WHY the course should count.
    • You must demonstrate that at least 30% of the grade comes from an instructor-assigned individual programming project.
    • Append email from faculty confirming that at least 30% of the grade comes from an instructor-assigned individual programming project.
    • Append a syllabus.
  2. Forward the completed Petition to Faculty to the Academic Program Coordinator of IC (Theresa Nash).
  3. Theresa will send the petition to the Graduate Curriculum Committee for consideration. GCC meets once a month. You will be advised once a decision is made.

A "Petition to the Faculty" form may be completed by a student when asking for an exception to an Institute rule or policy. These petitions are reviewed and acted upon by the Graduate Curriculum Committee which meets once a month.

Minor Requirement

The minor is a sequence of non-College of Computing courses with a coherent theme. The requirement is that students take a minimum of 2 courses 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.

Instructions on completing the minor form:

Classes Taken at Georgia Tech

If you have taken courses while completing a Master's Degree program at Georgia Tech, these courses may be applied to the completion of your Minor or Breadth requirement just so they are approved as being relevant by your faculty advisor. No formal evaluation process is required.

Students who are pursuing two Master's degrees at Georgia Tech may double count a maximum of 6 hours of credit for both degrees. This ensures that each degree involves a minimum of 24 hours of coursework completed at Tech that is not double counted.

Classes Taken at Another University

There is no formal transfer of credit for the PhD degree where classes taken at another institute would appear on the Georgia Tech transcript. However, graduate coursework completed at other schools may be used toward the Ph.D. coursework requirement.

In order to utilize Master's level coursework completed at other schools to support your minor, simply append the syllabus and transcript to your minor form. An evaluation is not required.

Q&A

Q: Can a student request permission for a CS course to be included in their minor?

See the Equivalency Credits section below for full details and process.

Q: Can a student use the same course to meet their minor, and breadth requirement?

No. This is not permitted as it takes away from the whole concept of a breadth.

Q: Can students utilize 8803s to meet their minor requirement?

You can use as many non-CS 8803s as are approved for your minor.

Q: Can students utilize 8903s to meet minor requirement?

Students can use up to 3 hours of 8903 toward their minor if it is an area outside of their normal course of study.

Q: Can students utilize courses taken online at GT to meet program requirements?

No. Students may not use online courses to meet any course requirements.

Extra-curricular Requirements

CS PhD students are subject to their home unit's extra-curricular requirements in addition to the CS program and Institute requirements. Confirm with your home school what those are.

Equivalency Credits

While Georgia Tech does not transfer graduate courses from other institutions into the Ph.D. program, students may request that eligible external coursework be considered as an equivalent course to satisfy breadth or minor requirements.

CS Program-wide transfer credit rules (from CS PhD Handbook):

To be eligible for consideration, the coursework must:

Minor Requirement

Courses Taken at Georgia Tech: If you completed non-CS or CSE graduate courses while earning a master's degree at Georgia Tech, those courses may be used to satisfy your minor requirement, provided your faculty advisor determines they are relevant to your program of study. No formal evaluation is required. Simply list the course(s) on your Minor Form.

Courses Taken Outside Georgia Tech: Graduate-level non-CS or CSE courses completed at another institution may also be used to satisfy your minor requirement, provided your faculty advisor determines they are relevant to your program of study. No formal evaluation is required. Simply attach the course syllabus and an official or unofficial transcript to your Minor Form.

Using CS or CSE Courses Toward the Minor: Requests to apply CS or CSE courses toward the minor requirement require a formal Petition to the Faculty submitted through DocuSign. The petition is first reviewed by the School of Interactive Computing Associate Chair. If approved, it is forwarded to the Institute Graduate Curriculum Committee for final consideration.

Breadth Requirement

Courses Taken at Georgia Tech: If you would like to use a course that has not already been approved as a breadth course to satisfy a breadth requirement, you must submit a Petition to the Faculty through DocuSign. Attach the course syllabus and transcript, provide a brief justification for your request, and route the petition to Thomas Ploetz, Associate Chair, for review. The Associate Chair will consult with the appropriate subject area lead before making a decision.

Courses Taken Outside Georgia Tech: If you would like to use graduate-level coursework completed at another university to satisfy a breadth requirement, please follow the steps outlined below. Note that the programming requirement should be taken at Georgia Tech.

  1. Identify a similar course on the list of approved breadth courses here.
  2. Reach out to the GT faculty that leads the course and request that they evaluate the course syllabus of the external course to determine equivalency.
  3. If the GT faculty supports the request, submit a Petition to the Faculty through DocuSign.

Q&A

Q: Can a student request permission to count a CS course toward the minor requirement?

Yes. If there is a compelling academic justification for including a CS course in the minor (for example, if the course is cross-listed or substantially equivalent to a course in another discipline, such as CS 7751 and ECE 7751), the student may submit a Petition to the Faculty through DocuSign. The petition should include a brief justification for the request. It will first be reviewed by the School of Interactive Computing Associate Chair and, if supported, forwarded to the Graduate Curriculum Committee for final consideration.

Q: Can I count grad-level courses I took as an undergraduate to count for my PhD?

You can only count TWO grad-level courses that you took and used toward your BS degree.

Q: May a student request to meet their programming breadth requirement with a course taken at another institution?

In general, no. We discourage requests to fulfill the programming breadth requirement with coursework completed outside of Georgia Tech. However, students who believe they have completed an equivalent course may submit a petition for faculty consideration. To do so, the student must first identify a Georgia Tech course that closely matches the external course. The student should then contact the Georgia Tech course instructor and provide the external course syllabus, asking the instructor to review the course and determine whether it is equivalent to the Georgia Tech course. If the instructor supports the request, the student may submit a Petition to the Faculty. The petition is first reviewed by the School of Interactive Computing Associate Chair. If approved, it is forwarded to the Graduate Curriculum Committee (GCC) for final consideration. Please note that this review process typically takes several months, and most petitions are not approved.

Q: Can 8903s be used to meet the minor requirement?

8903s are one-to-one faculty-student directed study. Students can use up to 3 hours of 8903 toward their minor if it is an area outside of their normal course of study.

Table of Content