| Current SB programs: | 6-3 | 6-4 | 6-5 | 6-7 | 6-14 | 6-9![]() |
11-6![]() |
| Current MNG programs: | 6-P3 | 6-P4 | 6-P5 | 6-P7 | 6-P14 | 6-P9![]() |
|
| Older programs: | |||||||
Degree Requirements for 6-5_2025
SB in Electrical Engineering with Computing
Show old EECS subject numbers
-
Four fundamental subjects:
One of6.1000 6.1000 Introduction to Programming and Computer Science,
(
,
)
Prereqs: none
Units: 3-0-9Develops foundational skills in programming and in computational modeling. Covers widely used programming concepts in Python, including mutability, function objects, and object-oriented programming. Introduces algorithmic complexity and some common libraries. Throughout, demonstrates using computation to help understand real-world phenomena; topics include optimization problems, building simulations, and statistical modeling. Intended for students with at least some prior exposure to programming. Students with no programming experience are encouraged to take 6.100A and 6.100B (or 16.C20) over two terms.
6.100A6.0001 6.100A Introduction to Computer Science Programming in Python,
(
,
)
Prereqs: none
Units: 2-0-4Introduction to computer science and programming. Students develop skills to program and use computational techniques to solve problems. Topics include: the notion of computation, Python, simple algorithms and data structures, object-oriented programming, testing and debugging, and algorithmic complexity. Lectures are viewed outside of class; in-class time is dedicated to problem-solving and discussion. Combination of 6.100A and 6.100B (or 16.C20) counts as REST subject.
6.100A6.0001 6.100A Introduction to Computer Science Programming in Python&
(
,
)
Prereqs: none
Units: 2-0-4Introduction to computer science and programming. Students develop skills to program and use computational techniques to solve problems. Topics include: the notion of computation, Python, simple algorithms and data structures, object-oriented programming, testing and debugging, and algorithmic complexity. Lectures are viewed outside of class; in-class time is dedicated to problem-solving and discussion. Combination of 6.100A and 6.100B (or 16.C20) counts as REST subject.
6.100B6.0002 6.100B Introduction to Computational Thinking and Data Science
(
,
)
Prereqs: 6.100A or permission of instructor
Units: 2-0-4Provides an introduction to using computation to build models that can be used to help understand real-world phenomena. Topics include optimization problems, simulation models, and statistical models. Requires experience programming in Python as a prerequisite. Combination of 6.100A and 6.100B counts as REST subject.
One of6.12006.042 6.1200 Mathematics for Computer Science,
(
,
)
Prereqs: GIR:CAL1
Units: 5-0-7Elementary discrete mathematics for science and engineering, with a focus on mathematical tools and proof techniques useful in computer science. Topics include logical notation, sets, relations, elementary graph theory, state machines and invariants, induction and proofs by contradiction, recurrences, asymptotic notation, elementary analysis of algorithms, elementary number theory and cryptography, permutations and combinations, counting tools, and discrete probability.
6.120A6.042A
6.120A Discrete Mathematics and Proof for Computer Science
(
)
Prereqs: GIR:CAL1
Units: 3-0-3Subset of elementary discrete mathematics for science and engineering useful in computer science. Topics may include logical notation, sets, done relations, elementary graph theory, state machines and invariants, induction and proofs by contradiction, recurrences, asymptotic notation, elementary analysis of algorithms, elementary number theory and cryptography, permutations and combinations, counting tools.
6.12106.006 6.1210 Introduction to Algorithms
(
,
)
Prereqs: 6.100A and (6.1200 or (6.120A and (6.3700, 6.3800, 18.05, or 18.600)))
Units: 5-0-7Introduction to mathematical modeling of computational problems, as well as common algorithms, algorithmic paradigms, and data structures used to solve these problems. Emphasizes the relationship between algorithms and programming, and introduces basic performance measures and analysis techniques for these problems. Enrollment may be limited.
One of6.1903
6.1903 Introduction to Low-level Programming in C and Assembly,
(
)
Prereqs: 6.100A
Units: 2-2-2Introduction to C and assembly language for students coming from a Python background (6.100A). Studies the C language, focusing on memory and associated topics including pointers, how different data structures are stored in memory, the stack, and the heap in order to build a strong understanding of the constraints involved in manipulating complex data structures in modern computational systems. Studies assembly language to facilitate a firm understanding of how high-level languages are translated to machine-level instructions.
6.1904
6.1904 Introduction to Low-level Programming in C and Assembly
(
)
Prereqs: 6.100A
Units: 2-2-2Introduction to C and assembly language for students coming from a Python background (6.100A). Studies the C language, focusing on memory and associated topics including pointers, how different data structures are stored in memory, the stack, and the heap in order to build a strong understanding of the constraints involved in manipulating complex data structures in modern computational systems. Studies assembly language to facilitate a firm understanding of how high-level languages are translated to machine-level instructions.
-
Two math subjects:
One of18.06 18.06 Linear Algebra,
(
,
)
Prereqs: GIR:CAL2
Units: 4-0-8Basic subject on matrix theory and linear algebra, emphasizing topics useful in other disciplines, including systems of equations, vector spaces, determinants, eigenvalues, singular value decomposition, and positive definite matrices. Applications to least-squares approximations, stability of differential equations, networks, Fourier transforms, and Markov processes. Uses linear algebra software. Compared with 18.700, more emphasis on matrix algorithms and many applications.
18.C06
18.C06 Linear Algebra and Optimization,
(
)
Prereqs: GIR:CAL2
Units: 5-0-7Introductory course in linear algebra and optimization, assuming no prior exposure to linear algebra and starting from the basics, including vectors, matrices, eigenvalues, singular values, and least squares. Covers the basics in optimization including convex optimization, linear/quadratic programming, gradient descent, and regularization, building on insights from linear algebra. Explores a variety of applications in science and engineering, where the tools developed give powerful ways to understand complex systems and also extract structure from data.
6.C06
6.C06 Linear Algebra and Optimization
(
)
Prereqs: GIR:CAL2
Units: 5-0-7Introductory course in linear algebra and optimization, assuming no prior exposure to linear algebra and starting from the basics, including vectors, matrices, eigenvalues, singular values, and least squares. Covers the basics in optimization including convex optimization, linear/quadratic programming, gradient descent, and regularization, building on insights from linear algebra. Explores a variety of applications in science and engineering, where the tools developed give powerful ways to understand complex systems and also extract structure from data.
One of18.05
18.05 Introduction to Probability and Statistics,
(
)
Prereqs: GIR:CAL2
Units: 4-0-8A unified introduction to probability, Bayesian inference, and frequentist statistics. Topics include: combinatorics, random variables, (joint) distributions, covariance, central limit theorem; Bayesian updating, odds, posterior prediction; significance tests, confidence intervals, bootstrapping, regression. Students also develop computational skills and statistical thinking by using R to simulate, analyze, and visualize data; and by exploring privacy, fairness, and causality in contemporary media and research. Flipped subject taught in a Technology Enabled Active Learning (TEAL) classroom to facilitate discussion, group problem solving, and coding studios with ample mentorship.
6.37006.041 6.3700 Introduction to Probability,
(
,
)
Prereqs: GIR:CAL2
Units: 4-0-8An introduction to probability theory, the modeling and analysis of probabilistic systems, and elements of statistical inference. Probabilistic models, conditional probability. Discrete and continuous random variables. Expectation and conditional expectation, and further topics about random variables. Limit Theorems. Bayesian estimation and hypothesis testing. Elements of classical statistical inference. Bernoulli and Poisson processes. Markov chains. Students taking graduate version complete additional assignments.
6.38006.008
6.3800 Introduction to Inference
(
)
Prereqs: GIR:CAL2 or permission of instructor
Units: 4-4-4Introduces probabilistic modeling for problems of inference and machine learning from data, emphasizing analytical and computational aspects. Distributions, marginalization, conditioning, and structure, including graphical and neural network representations. Belief propagation, decision-making, classification, estimation, and prediction. Sampling methods and analysis. Introduces asymptotic analysis and information measures. Computational laboratory component explores the concepts introduced in class in the context of contemporary applications. Students design inference algorithms, investigate their behavior on real data, and discuss experimental results.
-
Four system design subjects:
6.19106.004 6.1910 Computation Structures
(
,
)
Prereqs/[Coreqs]: GIR:PHY2, 6.100A, and ([6.1903] or 6.1904); or permission of instructor
Units: 4-0-8Provides an introduction to the design of digital systems and computer architecture. Emphasizes expressing all hardware designs in a high-level hardware description language and synthesizing the designs. Topics include combinational and sequential circuits, instruction set abstraction for programmable hardware, single-cycle and pipelined processor implementations, multi-level memory hierarchies, virtual memory, exceptions and I/O, and parallel systems.
6.20006.002 6.2000 Electrical Circuits: Modeling and Design of Physical Systems
(
,
)
Prereqs: GIR:PHY2
Units: 3-2-7Fundamentals of linear systems, and abstraction modeling of multi-physics lumped and distributed systems using lumped electrical circuits. Linear networks involving independent and dependent sources, resistors, capacitors, and inductors. Extensions to include operational amplifiers and transducers. Dynamics of first- and second-order networks; analysis and design in the time and frequency domains; signal and energy processing applications. Design exercises. Weekly laboratory with microcontroller and transducers.
6.30006.003 6.3000 Signal Processing
(
,
)
Prereqs: 6.100A
Units: 4-0-8Fundamentals of signal processing, focusing on the use of Fourier methods to analyze and process signals such as sounds and images. Topics include Fourier series, Fourier transforms, the Discrete Fourier Transform, sampling, convolution, deconvolution, filtering, noise reduction, and compression. Applications draw broadly from areas of contemporary interest with emphasis on both analysis and design.
6.90006.010
6.9000 Engineering for Impact
(
)
Prereqs: 6.1910, 6.2000, and 6.3000
Units: 2-3-7Students work in teams to engineer hardware/software systems that solve important, challenging real-world problems. In pursuit of these projects, students engage at every step of the full-stack development process, from printed circuit board design to firmware to server to industrial design. Teams design and build functional prototypes of complete hardware/software systems. Grading is based on individual- and team-based elements. Satisfies 10 units of Institute Laboratory credit. Enrollment may be limited due to staffing and space requirements.
-
Six elective subjects:
- At least two of your completed subjects must be on the CIM2 list
- At least one of your completed subjects must be on the PLAB list
- You must follow these requirements if you entered MIT in Fall 2025 or later.
- Includes subjects as of Spring 2026
- Each completed subject can only be used to satisfy at most one required subject but can be used to satisfy multiple additional constraints.
-
: only offered fall term
: only offered spring term
grey: not offered this academic year. - Students are welcome to petition custom EE Tracks, which may include non-EECS classes. Here are some illustrative examples:
- RF circuit design: two of 6.2300[6.013], 6.2080[6.300], 6.6020[6.776]
- Hardware Verification: 6.205[6.111], 6.S965(Fall 2024)
- Semiconductor process modeling: 6.2600[6.152] and either 6.3900[6.036] or 6.3720[6.401]
- Mechatronics: Many combinations make sense, but we recommend 6.221, and/or one of 6.3100/2.14/2.737, and/or 2.145/2.72/2.70, and/or one of 6.2222/6.6220, and/or one of 2.12/2.017/6.4210.
Tracks
To satisfy a track requirement, you must complete two subjects from the same track. Tracks are associated with one or more of the three areas in the Department: AI+D, CS, or EE.
[AI+D] Application_CIM or AI+D_AUSSubject Lists
CIM2: EECS CI-M subjectsEECS: All subjects that satisfy departmental undergraduate requirements in 6-1, 6-2, 6-3, 6-4, or 6-5 excluding subjects that are 6 units or less. Also see the grad_AUS, grad_AI+D_AUS, and grad_II lists below.
PLAB: Project-Based Design Laboratory for 6-2 and 6-5
grad_AI+D_AUS: Graduate subjects that satisfy the AI+D_AUS or EECS requirements
grad_AUS2: Graduate subjects that satisfy the AUS2 or EECS requirements
grad_II: Graduate subjects that satisfy the II additional constraint or EECS requirement

(
,
)