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.
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.
The 18 areas are:
Computational Science and Engineering
Computer Architecture
Database Systems
Graphics and Visualization
Human Computer Interaction
Cryptography
Artificial Intelligence
Learning Sciences and Technology
Machine Learning
Networking and Communications
Network Security
Programming Languages and Compilers
Privacy, Security, and Policy
Social Computing
Software Methodology and Engineering
Systems
Systems Security
Theory
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.
Students who have taken graduate level courses elsewhere before entering the program can petition to have those classes count towards filling the breadth requirement. Please see the 'equivalency credits' tab for details.
| 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 & 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 & Cryptocurrencies CS 8803 SMC Secure Multiparty Computation CS 8803 SCP Secure Communication Protocols ~~CS 6236 Secure Computer Systems~~ ~~CS 6262 Network Security~~ ~~CS 6265 Information Security Lab~~ |
| 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 ~~CS 7495 Computer Vision~~ ~~CS 7650 Natural Language Understanding~~ |
| 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 |
| Programming Proficiency List | CS 6210 Advanced Operating Systems, CS 6238 Secure Computer Systems, CS 6241 Design and Implementation of Compilers, CS 6262 Network Security, CS 6264 System and Network Defenses Lab, CS 6290 High-Performance Computer Architecture, CS 6476 Computer Vision, CS 6601 Artificial Intelligence, CS 7490 Advanced Image Synthesis, CS 7492 Simulation of Biology, CS 7632 Game AI, CS 7637 Knowledge-Based AI, CS 7643 Deep Learning, CS 7646 Machine Learning for Trading, CS 7650 Natural Language, CS 7651 Human and Machine Learning |
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 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' tab.
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 courses 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.
Q: How does a student petition to get a course to count for breadth or minor You will find guidance on this process in the 'Equivalency Credits' Section of the OneNote.
Table of Content