One programming skills subject
6.100A6.0001
Introduction to Computer Science Programming in Python

6.100L6.000L
Introduction to Computer Science and Programming
One discrete math subject
6.12006.042
Mathematics for Computer Science
Three foundation subjects
6.10106.009
Fundamentals of Programming

6.12106.006
Introduction to Algorithms

6.19106.004
Computation Structures
Four header subjects
6.10206.031
Software Construction

One of 6.14006.045
Computability and Complexity Theory
, 6.12206.046
Design and Analysis of Algorithms

6.18006.033
Computer Systems Engineering

One of 6.41006.034
Artificial Intelligence
, 6.39006.036
Introduction to Machine Learning
Five elective subjects
Two from AUS2
Advanced undergraduate subject
list
Three additional from EECS
All subjects of at least 12 units that satisfy departmental undergraduate requirements in 6-1, 6-2, 6-3, 6-4, or 6-5
list

Additional Constraints
At least two of your completed subjects must be from the CIM2
EECS CI-M subjects
list
At least one of your completed subjects must be from the II
Independent inquiry
list
Notes
Starting in Fall 2023, the following subjects can be petitioned as substitutions for the 6.1800[6.033] systems header requirement:Note that none of these alternative subjects are CI-M, so you will need to satisfy the CI-M additional constraint with other EECS department CI-Ms.
Instead of the original "introductory subject" and "6.UAT/6.UAR" requirements, you now get to choose two additional electives from the EECS list. The CIM2 list has been expanded to include subjects that can also satisfy the AUS2 requirement.