The MS Degree Foundation
The following are the core graduate courses that carry breadth-requirement credit for all CS Masters students (in both the MS and BA/MS programs).
A Masters student is required to take at least five breadth courses, with at least one from each Area. To satisfy the breadth requirement, the number of courses with a grade of B- must not exceed those with grade B+ or higher. A grade of B- or better must be earned for any graduate course.
Overview of Breadth Courses
The following courses automatically count towards the breadth requirements when a student registers. This list is the same for every semester, meaning these courses always count towards the breadth requirements. However, not all of these courses will be offered every semester.
General Breadth Courses
Theory Area
- CS 530: Algorithms for PhD students (CS630 is strongly preferred)
- CS 535: Complexity Theory
- CS 537: Probability in Computing
- CS 630: Algorithms for MS Students
Software Area
- CS 511: Formal Methods I
- CS 512: Formal Methods II
- CS 520: Programming Languages
- CS 525: Compilers
- CS 591 S2: Formal Language Theory: Integrating Experimentation and Proof
- CS 611: Object-Oriented Design in Java
Systems Area
- CS 550: Computer Architecture
- CS 552: Introduction to Operating Systems
- CS 553: Advanced Operating Systems
- CS 655: Graduate Introduction to Computer Networks
- CS 556: Advanced Computer Networks
- CS 651: Distributed Systems
- CS 670: Performance Analysis of Computer Systems
Applications Area
- CS 538: Introduction to Cryptography
- CS 542: Machine Learning
- CS 548: Advanced Cryptography
- CS 558: Network Security
- CS 559: Algorithmic Aspects of Computer Networks
- CS 660: Introduction to Databases
- CS 562: Advanced Databases
- CS 565: Data Mining
- CS 680: Introduction to Computer Graphics
- CS 580: Advanced Computer Graphics
- CS 585: Image & Video Computing
- CS 640: Artificial Intelligence
Breadth Courses by Semester
Each semester, the CS Department may designate additional courses to count towards the breadth requirements. These are on a semester-by-semester basis, based on the other courses being offered. The department chooses additional courses to count towards breadth requirements when there are not enough breadth requirement courses being offered in each area, so an additional course may count for one semester but not another.
To see which courses are offered for a given semester and count towards the breadth requirements, see below. Designated additional courses for the semester are marked with *.
Fall 2019
Theory Area
- CS 530: Advanced Algorithms
- CS 535: Complexity
Software Area
- CS 511: Formal Methods 1
- CS 525: Compiler Design
- *CS 591 P1: Object-Oriented Design and Development in Java
- CS 591 S2: Formal Language Theory: Integrating Experimentation and Proof
Systems Area
- CS 651: Distributed Systems
- CS 655: Graduate Networks
Applications Area
- CAS CS 538: Cryptography
- CAS CS 542: Machine Learning
- CAS CS 558: Network Security
- CAS CS 562: Advanced Databases
- CAS CS 565: Algorithmic Data Mining
- GRS CS 640: Artificial Intelligence
- GRS CS 660: Graduate Databases
- GRS CS 680: Graduate Computer Graphics
Spring 2019
Theory Area
- CS 530: Algorithms
- *CS 591 C1: Computational Game Theory
Software Area
- CS 512: Formal Methods 2
- CS 520: Programming Languages
- *CS 591 E1: Mobile Application Development
- *CS 591 P1: Object-Oriented Design and Development in Java
Systems Area
- CS 552: Introduction to Operating Systems
- *CS 654: Embedded Systems Development
Applications Area
- CS 542: Machine Learning
- CS 548: Advanced Cryptography
- *CS 591 A1: Data Systems Architecture
- CS 640: Artificial Intelligence
Fall 2018
Theory Area
- CS 530: Algorithms
- CS 535: Complexity Theory
Software Area
- CS 511: Formal Methods 1
- CS 525: Compiler Design
- *CS 591: Formal Language Theory
Systems Area
- CS 651: Distributed Systems
- CS 655: Networks
Applications Area
- CS 538: Cryptography
- CS 542: Machine Learning
- CS 565: Data Mining
- CS 585: Image & Video Computing
- CS 660: Databases
- *CS 680: Introduction to Computer Graphics