Who's Teaching What

Spring 2024
Fall 2023
Spring 2023
Fall 2022
Spring 2022
Fall 2021
Spring 2021
Fall 2020
Spring 2020
Fall 2019
Spring 2019
Fall 2018
Spring 2018
Fall 2017
Spring 2017
Fall 2016
Spring 2016
Fall 2015
Spring 2015
Fall 2014

Subject Updates

Spring 2024
6.S041 Algorithmic and Human Decision-Making
Level: U
Prereqs: 6.3700 or 6.3800 or 18.05 or 18.600 or 14.300 or 14.32 and 6.3900 or 6.C01
Units: 3-0-9
Satisfies: II, 6-4 Human-centric track, [CS] Computers and Society track, 6-14 computer science elective, SERC constraint
Instructors: S. Mullainathan, A. Rambachanv
Introduces students to problems at the intersection of algorithmic and human decision-making, focusing on problem domains such as criminal justice, the health care system, labor market, and others. Introduces the foundations in computer science, economics and psychology needed to integrate our behavioral understanding of people into machine learning. Topics include supervised learning, decision-making under uncertainty, behavioral economics, recommendation systems, and fairness/discrimination. Guest lectures by experts designing live algorithms in these domains, and culminates in student projects.
6.S046 Silicon Photonics
Level: U
Prereqs: 6.2300 or 8.07
Units: 3-0-9
Satisfies: AUS2, DLAB2, Physics concentration, [EE] Electromagnetics and Photonic Systems
Instructors: J. Notaros
[Meets with 6.S976] Covers the foundational concepts behind silicon photonics based in electromagnetics, optics, and device physics; the design of silicon-photonics-based devices (including waveguides, couplers, splitters, resonators, antennas, modulators, detectors, and lasers) using both theoretical analysis and numerical simulation tools; the engineering of silicon-photonics-based circuits and systems with a focus on a variety of applications areas (spanning computing, communications, sensing, quantum, displays, and biophotonics); the development of silicon-photonics-based platforms, including fabrication and materials considerations; and the characterization of these silicon-photonics-based devices and systems through hands-on laboratory demonstrations and projects. Students taking graduate version complete additional assignments.
6.S052 Modeling with Machine Learning for Computer Science
Level: U
Prereqs: 6.S084/18.061 or 18.06 or equivalent; 6.1200 or 6.3700, 6.100A or equivalent; Co-req 6.C01
Units: 3-0-3
Satisfies: (with 6.C01) AUS2, II, AI concentration, 6-4 Data-centric, [EE] Systems Science, old 6-2 and 6-3 AI header
Instructors: T. Jaakkola
[Meets with 6.S952] Focuses on in-depth modeling of engineering tasks as machine learning problems. Emphasizes framing, method design, and interpretation of results. In comparison to broader co-requisite 6.C01/6.C51, this project oriented subject consists of deep dives into select technical areas or engineering tasks involving both supervised and exploratory uses of machine learning. Deep dives into technical areas such robustness, interpretability, privacy or causal discovery; engineering tasks such as recommender systems, performance optimization, or automated design. This 6-unit subject must be taken together with the 6-unit core subject 6.C01. Enrollment may be limited.
6.S059 Causal Inference
Level: U
Prereqs: 6.3800, 6.3900, 6.C01, 14.32, 17.803, 18.05, 18.650, or permission of instructor
Units: 4-0-8
Satisfies: AUS2, 6-4 Data-centric, [EE] Systems Science track
Instructors: J. Doyle
[Meets with 15.C08, 17.C08] Provides an accessible overview of modern quantitative methods for causal inference: testing whether an action causes an outcome to occur. Makes heavy use of applied, real-data examples using Python or R and drawn from the participating domains (economics, political science, business, public policy, etc.). Covers topics including potential outcomes, causal graphs, randomized controlled trials, observational studies, instrumental variable estimation, and a contrast with machine learning techniques. Seeks to provide an intuitive understanding of the core concepts and techniques to help students produce and consume evidence of causal claims.
6.S077 Life Science and Semiconductor
Level: U
Prereqs: 6.2000
Units: 3-0-3
Instructors: T. Heldt, A. Bahai
In this course we review the important role of semiconductor devices in patient monitoring and point of care. This includes technologies such as electrochemical, ultrasonic,magnetic, optical, and RF sensing modalities. We cover some of the basics of each device as well as physics and biology of device/human interaction.
6.S079 Software Systems for Data Science
Level: U
Prereqs: (6.100A, 6.100B, and 6.1210) or permission of instructor
Units: 3-0-9
Satisfies: AUS2, AI+D AUS, II, [CS] Systems track
Instructors: S. Madden
In this course we review the important role of semiconductor devices in patient monitoring and point of care. This includes technologies such as electrochemical, ultrasonic,magnetic, optical, and RF sensing modalities. We cover some of the basics of each device as well as physics and biology of device/human interaction.
6.S630 Leadership – People, Products, Projects
Level: G
Units: 4-0-5
Instructors: T. Hu
Apply leadership principles to a team-based product development project. Identify worthy problems to tackle, generate creative concepts, make quick prototypes, and test them with stakeholders while using project management tools. Practice effective teamwork, communications, influencing others, resolving conflicts, and aligning around a vision. The project will be centered around service design with the opportunity to design the user interface of a digital product including an app or website.
6.S640 How will my research matter? Optimizing projects towards impact
Level: G
Units: 2-0-4
Instructors: T. Hu
What is the value of your research beyond publishing the next paper? Who will your work impact and how is it measured? Learn how to define problems, identify stakeholders, and validate needs and solutions by speaking with those stakeholders. Students will apply learnings to their own research projects as part of their degree programs. Limited enrollment – by application only.
6.S893 Multi-agent Communication
Level: G
Prereqs: 6.8610 or permission of instructors
Units: 2-0-10
Satisfies: grad_II, AAGS in the AI concentration
Instructors: J. Andreas
Seminar on problems at the intersection of language processing and multi-agent systems. Topics to be covered include computational models of pragmatic reasoning, language evolution, and "self-play" training for language models.
6.S895 Quantum Cryptography
Level: G
Prereqs: 6.6410 or 6.6420 and 6.5620 or permission of instructors
Units: 3-0-9
Satisfies: AAGS in the Theoretical CS concentration, [CS] Theory track, [EE] Quantum System Engineering track
Instructors: A. Natarajan, V. Vaikuntanathan
An introduction to the many ways quantum computing and cryptography intersect. Topics will include uniquely quantum cryptographic primitives such as quantum key distribution and quantum money, post-quantum cryptography (classical cryptography that is secure against quantum attackers), and the use of cryptography in verifying quantum devices, as well as speculative connections to fundamental physics. Some familiarity with both quantum computing and cryptography is assumed.
6.S897 Life Science and Semiconductor
Level: G
Prereqs: 6.2000
Units: 3-0-3
Instructors: T. Heldt, A. Bahai
In this course we review the important role of semiconductor devices in patient monitoring and point of care. This includes technologies such as electrochemical, ultrasonic,magnetic, optical, and RF sensing modalities. We cover some of the basics of each device as well as physics and biology of device/human interaction.
6.S952 Modeling with Machine Learning for Computer Science
Level: G
Prereqs: 6.S084/18.061 or 18.06 or equivalent; 6.1200 or 6.3700, 6.100A or equivalent; Co-req 6.C51
Units: 3-0-3
Satisfies: (with 6.C51) AAGS in the AI concentration, grad_AUS2, 6-4 Data-centric, [EE] Systems Science track
Instructors: T. Jaakkola
[Meets with 6.S052] Focuses on in-depth modeling of engineering tasks as machine learning problems. Emphasizes framing, method design, and interpretation of results. In comparison to broader co-requisite 6.C01/6.C51, this project oriented subject consists of deep dives into select technical areas or engineering tasks involving both supervised and exploratory uses of machine learning. Deep dives into technical areas such robustness, interpretability, privacy or causal discovery; engineering tasks such as recommender systems, performance optimization, or automated design. This 6-unit subject must be taken together with the 6-unit core subject 6.C01. Enrollment may be limited.
6.S953 Embodied Intelligence
Level: G
Prereqs: (6.3900 or 6.7900) and (6.1210 or 6.1220)
Units: 3-0-9
Satisfies: AAGS in the AI concentration, grad_II, [EE] Systems Science track
Instructors: P. Isola
Our goal is to address the broad problem of designing a general-purpose intelligent robot. To address this question, a very broad background is required. We propose to spend the first 4 weeks covering important background topics: each week will combine a foundational tutorial reading with one or two state-of-the-art research results. In the subsequent weeks, we will address topics that cut across the basic disciplinary boundaries, typically combining two or more areas, with the work focused on studying and discussing current research in the relevant area.
6.S966 Symmetry and its Application to Machine Learning and Scientific Computing
Level: G
Prereqs: 18.06 or 18.061, 6.100A, 6.1210
Units: 3-0-9
Satisfies: AAGS in the AI, Numerical Methods, or Applied Physics concentrations, AI+D_AUS
Instructors: T. Smidt
Introduces the use of group representation theory to construct symmetry-preserving algorithms for machine learning. Emphases the connection between topics in math and physics and machine learning. Students will implement core mathematical concepts in code to build algorithms that can operate on graphs, geometry, scientific data, and other structured data to preserve the symmetries of these domains. Topics covered include: Euclidean and permutation groups, group representations: regular, reducible, and irreducible, tensor products, statistics and sampling of group representation vector spaces, and symmetry-breaking mechanisms.
6.S976 Silicon Photonics
Level: G
Prereqs: 6.2300 or 8.07
Units: 3-0-9
Satisfies: grad_AUS2, AAGS in the Physics concentration, [EE] Electromagnetics and Photonic Systems
Instructors: J. Notaros
[Meets with 6.S046] Covers the foundational concepts behind silicon photonics based in electromagnetics, optics, and device physics; the design of silicon-photonics-based devices (including waveguides, couplers, splitters, resonators, antennas, modulators, detectors, and lasers) using both theoretical analysis and numerical simulation tools; the engineering of silicon-photonics-based circuits and systems with a focus on a variety of applications areas (spanning computing, communications, sensing, quantum, displays, and biophotonics); the development of silicon-photonics-based platforms, including fabrication and materials considerations; and the characterization of these silicon-photonics-based devices and systems through hands-on laboratory demonstrations and projects. Students taking graduate version complete additional assignments.
6.S977 Ethical Machine Learning In Human Deployments
Level: G
Prereqs: 6.7900
Units: 3-0-9
Satisfies: AAGS in the AI concentration, grad_II
Instructors: M. Ghassemi
This course focuses on the human-facing considerations in the pipeline of machine learning (ML) development in human-facing settings like healthcare, employment, and education. Students will learn about the issues involved in ethical machine learning, including framing ethics of ML in healthcare through the lens of social justice. Students will read papers related to ongoing efforts and challenges in ethical ML, ranging from problem selection to post-deployment considerations. Guest lectures will be given by experts in data access, ethics, fairness, privacy and deployments, and the course will focus around a central project that students will use to explore how machine learning can potentially be brought into human-facing deployments ethically.
6.S984 Datacenter Computing
Level: G
Prereqs: 6.1910 or equivalent and 6.1800 or equivalent
Units: 3-0-9
Satisfies: AAGS in the Computer Systems concentration, grad_II, [CS,EE] Architecture track
Instructors: C. Delimitrou
Warehouse-scale datacenters host a wide range of online services, including social networks, web search, video streaming, machine learning, and serverless workloads. In this course, we will study the end-to-end stack of modern datacenters, from hardware and OS all the way to resource managers and programming frameworks. We will also explore cross-cutting issues, such as total cost of ownership, service level objectives, availability, and reliability. The course is a combination of lectures and paper readings. Students will read up to two papers per topic and submit brief summaries. During class meetings, we will start with a student presentation of the papers followed by an in-class discussion. The main deliverable for the course is a semester-long group project which should address an open research problem in modern cloud environments (project suggestions will be provided by the instructor, but students are also welcome to propose their own). The class is appropriate for graduate and advanced undergraduate students who want to learn more about cloud computing and datacenter systems.
6.S986 Large Language Models and Beyond
Level: G
Prereqs: 6.8610/6.8611, 6.3900, 6.7900
Units: 2-0-10
Satisfies: AAGS in the AI concentration
Instructors: Y. Kim
The field of natural language processing has recently made remarkable progress through large language models trained at scale on broad data. This seminar will explore various issues and questions surrounding these systems, including: applications (in NLP and other domains), emergent capabilities, efficient training & deployment, philosophical and ethical implications, and more.
6.S988 Mathematical Statistics: A Non-Asymptotic Approach
Level: G
Prereqs: 6.7700 and 18.06 and 18.6501, or permission on instructor
Units: 3-0-9
Satisfies: AAGS in the AI concentration
Instructors: M. Wainwright
[Meets with IDS.160, 9.521, 18.656] Introduces students to modern non-asymptotic statistical analysis. Topics include high-dimensional models, nonparametric regression, covariance estimation, principal component analysis, oracle inequalities, prediction and margin analysis for classification. Develops a rigorous probabilistic toolkit, including tail bounds and a basic theory of empirical processes.
Fall 2023
6.5630 Advanced Topics in Cryptography
Level: G
Prereqs: 6.5620
Units: 3-0-9
Instructors: Y. Tauman Kalai
In this course we will learn about the evolution of proofs in computer science. In particular, we will learn about fascinating proof systems such as interactive proofs, multi-prover interactive proofs and probabilistically checkable proofs. We will then show how to use cryptography to convert these powerful proof systems into succinct non-interactive arguments (SNARGs).
6.5940 TinyML and Efficient Deep Learning Computing
Level: G
Prereqs: 6.1900 and 6.3900
Units: 3-0-9
Satisfies: grad_AUS2, AAGS in Artificial Intelligence and Computer Systems concentrations
Instructors: S. Han
Introduces efficient deep learning computing techniques that enable powerful deep learning applications on resource-constrained devices. Topics include model compression, pruning, quantization, neural architecture search, distributed training, data/model parallellism, gradient compression, on-device fine-tuning. It also introduces application-specific acceleration techniques for video recognition, point cloud, and generative AI (diffusion model, LLM). Students will get hands-on experience accelerating deep learning applications with an open-ended design project.
6.7120 Principles of Modeling, Computing and Control for Decarbonized Electric Energy Systems
Level: U
Prereqs: 6.2200, (6.2000 and 6.3100), or permission of instructor
Units: 4-0-8
Satisfies: AUS2
Instructors: M. Ilic
[Meets with 6.7121] Introduces fundamentals of electric energy systems as complex dynamical network systems. Topics include coordinated and distributed modeling and control methods for efficient and reliable power generation, delivery, and consumption; data-enabled algorithms for integrating clean intermittent resources, storage, and flexible demand, including electric vehicles; examples of network congestion management, frequency, and voltage control in electrical grids at various scales; and design and operation of supporting markets.
6.7121 Principles of Modeling, Computing and Control for Decarbonized Electric Energy Systems
Level: G
Prereqs: 6.2200, (6.2000 and 6.3100), or permission of instructor
Units: 4-0-8
Satisfies: grad_AUS2, AAGS in the Control concentration
Instructors: M. Ilic
[Meets with 6.7120] Introduces fundamentals of electric energy systems as complex dynamical network systems. Topics include coordinated and distributed modeling and control methods for efficient and reliable power generation, delivery, and consumption; data-enabled algorithms for integrating clean intermittent resources, storage, and flexible demand, including electric vehicles; examples of network congestion management, frequency, and voltage control in electrical grids at various scales; and design and operation of supporting markets.
6.7920 Reinforcement Learning: Foundations and Methods
Level: G
Prereqs: 6.3700 or permission of instructor
Units: 4-0-8
Satisfies: AAGS in the Control concentration
Instructors: C. Wu
Examines reinforcement learning (RL) as a methodology for approximately solving sequential decision-making under uncertainty, with foundations in optimal control and machine learning. Provides a mathematical introduction to RL, including dynamic programming, statistical, and empirical perspectives, and special topics. Core topics include: dynamic programming, special structures, finite and infinite horizon Markov Decision Processes, value and policy iteration, Monte Carlo methods, temporal differences, Q-learning, stochastic approximation, and bandits. Also covers approximate dynamic programming, including value-based methods and policy space methods. Applications and examples drawn from diverse domains. Focus is mathematical, but is supplemented with computational exercises. An analysis prerequisite is suggested but not required; mathematical maturity is necessary.
6.C25 Julia – Real World Compuation with Julia
Level: U
Prereqs: 6.100A, 18.03, and 18.06
Units: 3-0-9
Satisfies: AUS2, II, Concentration in Numerical Methods
Instructors: A. Edelman
Focuses on algorithms and techniques for writing and using modern technical software in a job, lab, or research group environment that may consist of interdisciplinary teams, where performance may be critical, and where the software needs to be flexible and adaptable. Topics covered include automatic differentiation, matrix calculus, scientific machine learning, parallel and GPU computing, and performance optimization with introductory applications to climate science, economics, agent based modeling, and other areas. Labs and projects focused on performant, readable, composable algorithms and software. Programming will be in Julia. Expect students to have some familiarity with Python, Matlab, or R. No Julia experience necessary.
6.C27 Computational Imaging: Physics and Algorithms
Level: U
Prereqs: 18.C06 and (1.00, 1.000, 2.086, 3.019, or 6.100A)
Units: 3-0-9
Satisfies: AUS2, EE Track: Systems Science
Instructors: G. Barbastathis, S. You, R. Ram, J. LeBeau
Explores the contemporary computational understanding of imaging: encoding information about a physical object onto a form of radiation, transferring the radiation through an imaging system, converting it to a digital signal, and computationally decoding and presenting the information to the user. Introduces a unified formulation of computational imaging systems as a three-round "learning spiral": the first two rounds describe the physical and algorithmic parts in two exemplary imaging systems. The third round involves a class project on an imaging system chosen by students. Undergraduate and graduate versions share lectures but have different recitations. Involves optional "clinics" to even out background knowledge of linear algebra, optimization, and computational imaging-related programming best practices for students of diverse disciplinary backgrounds.
6.C67 Computational Imaging: Physics and Algorithms
Level: G
Prereqs: 18.C06 and (1.00, 1.000, 2.086, 3.019, or 6.100A)
Units: 3-0-9
Satisfies: AAGS in Applied Physics concentration
Instructors: G. Barbastathis, S. You, R. Ram, J. LeBeau
Explores the contemporary computational understanding of imaging: encoding information about a physical object onto a form of radiation, transferring the radiation through an imaging system, converting it to a digital signal, and computationally decoding and presenting the information to the user. Introduces a unified formulation of computational imaging systems as a three-round "learning spiral": the first two rounds describe the physical and algorithmic parts in two exemplary imaging systems. The third round involves a class project on an imaging system chosen by students. Undergraduate and graduate versions share lectures but have different recitations. Involves optional "clinics" to even out background knowledge of linear algebra, optimization, and computational imaging-related programming best practices for students of diverse disciplinary backgrounds. Students taking graduate version complete additional assignments.
6.S043 Machine Learning for Drug Discovery
Level: U
Prereqs: 6.3900 or 6.C01, or equivalents
Units: 3-0-9
Satisfies: AUS, AI+D_AUS
Instructors: R. Barzilay
[Meets with 6.S953] Covers concepts and machine learning algorithms for design and development of therapeutics, ranging from early molecular discovery to optimization of clinical trials. Emphasis on learning neural representations of biological objects (e.g., small molecules, proteins, cells) and modeling their interactions. Covers machine learning for property prediction, de-novo molecular design, binding, docking, target discovery, and methods for experimental design. Students enrolled in the graduate version complete additional assignments.
6.S062 Generative Machine Learning in K-12 Education
Level: U
Prereqs: 6.100A or permission of instructor
Units: 2-0-10
Satisfies: II
Instructors: H. Abelson, C. Breazeal
The introduction of transformer architectures in 2017 triggered an evolution in machine learning that today lets anyone make original computer-generated essays, stories, pictures, videos and programs, all without the need to code. Participants in this class will get a foundation to this technology and explore new opportunities that it enables In K-12 education. Much of the work will be project-based involving the construction of new learning tools and testing them with K-12 students and their teachers
6.S890 Topics in Multiagent Learning
Level: G
Prereqs: 6.1220 or 6.7201, 6.1200
Units: 3-0-9
Satisfies: grad_AUS, grad_II, [CS] Theory track, AI+D_AUS, AAGS in the Theoretical CS and Artificial Intelligence concentrations
Instructors: C. Daskalakis
Presents research topics at the interface of computer science, machine learning, and game theory. Explores computational aspects of strategic behavior for decision-makers in nonstationary multiagent environments. Explores game-theoretic notions of optimality that are applicable to these settings, and how decision-makers may learn optimal strategies from repeated interaction. Presents equilibrium computation algorithms, complexity barriers for equilibria and fixed points, the theory of learning in games, and multi-agent reinforcement learning. Presents practical aspects of learning in games, including recent progress in solving Go, Poker and other large games.
6.S891 Algorithmic Counting and Sampling: Probability, Polynomials, and More
Level: G
Prereqs: 6.1220 and (6.3700 or 6.3702 or 6.7700) or permission of instructor
Units: 3-0-9
Satisfies: grad_AUS, grad_II, [CS] Theory track, AI+D_AUS, AAGS in the Theoretical CS and Artificial Intelligence concentrations
Instructors: K. Liu
This course introduces the modern theory of algorithms for sampling from high-dimensional probability distributions and estimating their partition functions. These fundamental algorithmic primitives lie at the foundation of statistics, physics, and machine learning. We will study a diverse set of algorithmic paradigms for solving these problems based on Markov chains, decay of correlations, geometry of polynomials, and more. We will further study the rich set of analytic, probabilistic, and algebraic tools used to give performance guarantees to these algorithms.
6.S896 Algorithmic Statistics
Level: G
Prereqs: 6.1220, 18.600, 18.200 (other probability and linear algebras subjects also accepted), graduate level mathematical maturity
Units: 3-0-9
Satisfies: grad_II, [CS] Theory track, AI+D_AUS, AAGS in the Theoretical CS and Artificial Intelligence concentrations
Instructors: S. Hopkins
Introduction to algorithms and computational complexity for high-dimensional statistical inference problems, with focus on provable polynomial-time guarantees. Covers modern algorithm design techniques via convex programming and Sum of Squares method, graphical models as a language to describe complex but tractable high-dimensional learning problems and associated learning algorithms, and basics of complexity for statistical problems, including statistical query and low-degree lower bounds and reductions.
6.S898 Deep Learning
Level: G
Prereqs: (6.3900 or 6.C01 or 6.3720) and (6.3700 or 6.3800 or 18.05) and (18.C06 or 18.06)
Units: 3-0-9
Satisfies: grad_AUS, grad_II, AAGS in the Artificial Intelligence concentration
Instructors: S. Hopkins
Fundamentals of deep learning, including both theory and applications. Topics include neural net architectures (MLPs, CNNs, RNNs, graph nets, transformers), geometry and invariances in deep learning, backpropagation and automatic differentiation, learning theory and generalization in high-dimensions, and applications to computer vision, natural language processing, and robotics.
6.S951 Modern Mathematical Statistics
Level: G
Prereqs: (6.S06 or 18.C06) and (6.3700 or 18.600) and (18.650 or 6.3720) and 18.100 or equivalent
Units: 3-0-9
Satisfies: grad_AUS, AI+D_AUS, AAGS in AI and Signal&Systems concentrations
Instructors: M. Wainwright, A. Rakhlin, P. Rigollet
Graduate class in mathematical statistics targeted to students interested in statistical research. Requires previous exposure to undergraduate statistics (e.g., 18.650/6.3720), along with strong undergraduate background in linear algebra, probability, and real analysis. Emphasis on proofs and fundamental understanding.
6.S953 Machine Learning for Drug Discovery
Level: G
Prereqs: 6.3900 or 6.C01, or equivalents
Units: 3-0-9
Satisfies: grad_AUS, AAGS in BioEECS concentration
Instructors: R. Barzilay
[Meets with 6.S043] Covers concepts and machine learning algorithms for design and development of therapeutics, ranging from early molecular discovery to optimization of clinical trials. Emphasis on learning neural representations of biological objects (e.g., small molecules, proteins, cells) and modeling their interactions. Covers machine learning for property prediction, de-novo molecular design, binding, docking, target discovery, and methods for experimental design. Students enrolled in the graduate version complete additional assignments.
6.S954 Algorithmic Lower Bounds: Fun with Hardness Proofs
Level: G
Prereqs: 6.1210
Units: 3-0-9
Satisfies: grad_AUS, AAGS in Theoretical CS concentration, [CS] Theory track
Instructors: E. Demaine
A practical algorithmic approach to proving problems computationally hard for various complexity classes: P, NP, ASP, #P, APX, W[1], PSPACE, EXPTIME, PPAD, R. Variety of hardness proof styles, reductions, and gadgets. Hardness of approximation, counting solutions, and fixed-parameter algorithms. Connection between games and computation, with many examples drawn from games and puzzles.
6.S955 Applied Numerical Algorithms
Level: G
Prereqs: linear algebra, multivariable differential calculus, and basic coding
Units: 3-0-9
Satisfies: grad_AUS, AI+D_AUS, AAGS in Graphics/HCI and Numerical Methods concentrations, [CS] Theory track
Instructor: J. Solomon
Broad survey of numerical algorithms used in graphics, vision, robotics, machine learning, and scientific computing, with emphasis on incorporating these algorithms into downstream applications. We focus on challenges that arise in applying/implementing numerical algorithms and recognizing which numerical methods are relevant to different applications. Topics include numerical linear algebra (QR, LU, SVD matrix factorizations; eigenvectors; conjugate gradients), ordinary and partial differential equations (divided differences, finite element method), and nonlinear systems and optimization (gradient descent, Newton/quasi-Newton methods, gradient-free optimization, constrained optimization). Examples and case studies drawn from the computer science literature.
6.S979 Values and AI: Accidents, Alignment, and Misuse
Level: G
Prereqs: 6.7900 or permission of instructor
Units: 2-0-10
Satisfies: AAGS in Artificial Intelligence concentration
Instructor: D. Hadfield-Menell
An interdisciplinary graduate seminar course that covers the interactions between values and the development of artificial intelligence tools. The course will focus on the intersection between technology, ethics, and law. We will consider several applications of AI, with a focus on recommendation systems, large language models, and autonomous vehicles. Topics will include: preference elicitation, (cooperative) inverse reinforcement learning, planning under uncertainty, uncertainty quantification, reward design, qualitative evaluation, interpretable machine learning, regulation of emerging technology, human-robot interaction, principal-agent problems, societal feedback loops, existential risk from advanced AI, multi-agent cooperation, participatory design, democratic AI. Students will be graded on short reading quizzes, a paper presentation, and a final paper.
6.S980 Machine Learning for Inverse Graphics
Level: G
Prereqs: 6.3900 or permission of instructor
Units: 3-0-9
Satisfies: grad_AUS, AAGS in Artificial Intelligence and Graphics/HCI concentrations
Instructor: V. Sitzmann
From a single picture, humans reconstruct a mental representation of the underlying 3D scene that is incredibly rich in information such as shape, appearance, physical properties, purpose, how things would feel, smell, sound, etc. These mental representations allow us to understand, navigate, and interact with our environment in our everyday lives. We learn this from little supervision, mainly by interacting with our world and observing the world around us. Emerging neural scene representations aim to build models that replicate this behavior: Trained in a self-supervised manner, the goal is to reconstruct rich representations of 3D scenes that can then be used in downstream tasks such as computer vision, robotics, and graphics. This course covers fundamental and advanced techniques in this field at the intersection of computer vision, computer graphics, and deep learning. It will lay the foundations of how cameras see the world, how we can represent 3D scenes for artificial intelligence, how we can learn to reconstruct these representations from only a single image, how we can guarantee certain kinds of generalization, and how we can train these models in a self-supervised way.
6.S981 Introduction to Program Synthesis
Level: G
Prereqs: 6.1010, 6.1200 or equivalent
Units: 3-0-9
Satisfies: grad_AUS, grad_II, [CS] Programming Principles and Tools track, AAGS in Computer Systems concentration
Instructor: A. Solar Lezama
The goal of this course is to provide a comprehensive introduction to the field of Software synthesis, an emerging field that sits at the intersection of programming systems, formal methods and artificial intelligence. The course will be divided into three major sections: the first will focus on program induction from examples and will cover a variety of techniques to search large program spaces. The second section will focus on synthesis from expressive specifications and the interaction between synthesis and verification. Finally, the third unit will focus on synthesis with quantitative specifications and the intersection between program synthesis and machine learning. The course will be graded on the basis of three problem sets and an open ended final project.
Spring 2023
6.2410 Quantum Engineering Platforms
Level: U
Prereqs: 6.2400, 6.6400, 18.435, or (8.04 and 8.05)
Units: 1-5-6
Satisfies: II, DLAB, PLAB, EE Quantum Systems Engineering; Applied Physics concentration
Instructors: M. Baldo, D. Englund, P. Keathley
Provides practical knowledge and quantum engineering experience with several physical platforms for quantum computation, communication, and sensing, including photonics, superconducting qubits, and trapped ions. Labs include both a hardware component -- to gain experience with challenges, design, and non-idealities --and a cloud component to run algorithms on state-of-the-art commercial systems. Use entangled photons to communicate securely (quantum key distribution). Run quantum algorithms on trapped ion and superconducting quantum computers.
6.S050 Programming Language Design
Level: U
Prereqs: 6.1020
Units: 3-0-9
Satisfies: AUS2, Programming Principles and Tools track, Computer Systems concentration
Instructors: M. Carbin, A. Solar-Lezama
Introduction to programming language design. Students will learn about the features used in modern programming languages. This class will prepare students to design their own languages and to become better programmers by understanding their language of choice more deeply. Topics covered include functional programming, data abstraction, modularity, types, memory management, and concurrency.
6.S051 Natural Language and Human Language Computation
Level: U
Prereqs: 6.100A or 6.100L or 6.1010 and 6.4110 or permission of instructor
Units: 3-0-9
Instructors: R. Berwick
[Meets with 6.8630] Introduction to the study of human language from both a computational and linguistic standpoint. Emphasizes the special properties of human language drawn from linguistic theory and computation that enable modeling by both computers and people, via case studies of actual human data in applications such as syntactic parsing, word parsing and segmentation, information retrieval, word meaning and semantic interpretation and language learning by children and computers. Formal background of parsing theory and complexity theory for language analysis; Bayesian, Minimum Description Length, and other approaches to learnability, and dynamical system models of language change. Instruction and practice in oral and written communication provided. Students taking graduate version complete additional assignments.
6.S052 Modeling with Machine Learning for Computer Science
Level: U
Prereqs: 6.S084/18.061 or 18.06 or equivalent; 6.1200, 6.3700 or equivalent; 6.100A or equivalent; Coreq: 6.C01
Units: 3-0-3
Satisfies: 6.C01&6.S052 satisfies AUS, II, Data-centric, Systems science track, Artifical Intelligence concentration
Instructors: T. Jaakkola
Focuses on in-depth modeling of engineering tasks as machine learning problems. Emphasizes framing, method design, and interpretation of results. In comparison to broader co-requisite 6.C01, this project-oriented subject consists of deep dives into select technical areas or engineering tasks involving both supervised and exploratory uses of machine learning. Deep dives into technical areas such robustness, interpretability, privacy or causal discovery; engineering tasks such as recommender systems, performance optimization, or automated design. This 6-unit subject must be taken together with the 6-unit core subject 6.C01. Enrollment may be limited.
6.S077 Introduction to Low-level Programming in C and Assembly
Level: U
Prereqs: 6.100A
Units: 2-2-2
Satisfies: same as 6.1900
Instructors: J. Steinmeyer, S. Hanono Wachman
Introduction 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, and 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.S952 Modeling with Machine Learning for Computer Science
Level: U
Prereqs: 6.S084/18.061 or 18.06 or equivalent; 6.1200, 6.3700 or equivalent; 6.100A or equivalent; Coreq: 6.C01
Units: 3-0-3
Satisfies: 6.C51&6.S952 satisfies AAGS, grad_AUS, grad_II, Data-centric, Systems science track, Artificial Intelligence concentration
Instructors: T. Jaakkola
Focuses on in-depth modeling of engineering tasks as machine learning problems. Emphasizes framing, method design, and interpretation of results. In comparison to broader co-requisite 6.C51, this project-oriented subject consists of deep dives into select technical areas or engineering tasks involving both supervised and exploratory uses of machine learning. Deep dives into technical areas such robustness, interpretability, privacy or causal discovery; engineering tasks such as recommender systems, performance optimization, or automated design. This 6-unit subject must be taken together with the 6-unit core subject 6.C51. Enrollment may be limited.
6.S966 Symmetry and its Application to Machine Learning and Scientific Computing
Level: G
Prereqs: 18.06 or 18.061, 6.100A, 6.1210
Units: 3-0-9
Satisfies: AI+D_AUS, grad_AUS, AAGS, concentrations in Artificial Intelligence, Numerical Methods, Applied Physics
Instructors: T. Smidt
[Meets with 8.S310] Introduces the use of group representation theory to construct symmetry-preserving algorithms for machine learning. Emphases the connection between topics in math and physics and machine learning. Students will implement core mathematical concepts in code to build algorithms that can operate on graphs, geometry, scientific data, and other structured data to preserve the symmetries of these domains. Topics covered include: Euclidean and permutation groups, group representations: regular, reducible, and irreducible, tensor products, statistics and sampling of group representation vector spaces, and symmetry-breaking mechanisms.
6.S978 Tissue vs. Silicon in Machine Learning
Level: G
Units: 3-0-9
Satisfies: AAGS, Artificial Intelligence concentration
Instructors: N. Shavit
A seminar style class that investigates learnings from neurobiology in the design of ML hardware and software. Students should understand ML techniques.
6.S983 Secure Hardware Design
Level: G
Prereqs: 6.1900 or equivalent
Units: 3-0-9
Satisfies: grad_AUS2, AAGS, Computer Systems concentration, Architecture track
Instructors: M. Yan
The course aims to introduce hardware system design with security as the primary goal. Topics include micro-architecture side channels, speculative execution attacks and defenses, enclave system design, architecture support for memory safety, RowHammer attacks, attacks on GPU and accelerators, physical side channel attacks and defenses, etc. Students are required to complete 5 lab assignments or have the option to substitute the labs with an open-ended design project.
6.S984 Datacenter Computing
Level: G
Prereqs: 6.1910 and 6.1800
Units: 3-0-9
Satisfies: grad_II, AAGS, Computer Systems concentration, Architecture track
Instructors: C. Delimitrou
Warehouse-scale datacenters host a wide range of online services, includingsocial networks, web search, video streaming, machine learning, and serverless workloads. In this course, we will study the end-to-end stack of modern datacenters, from hardware and OS all the way to resource managers and programming frameworks. We will also explore cross-cutting issues, such as total cost of ownership, service level objectives, availability, and reliability. The course is a combination of lectures and paper readings. Students will read up to two papers per topic and submit brief summaries. During class meetings, we will start with a student presentation of the papers followed by an in-class discussion. The main deliverable for the course is a semester-long group project which should address an open research problem in modern cloud environments (project suggestions will be provided by the instructor, but students are also welcome to propose their own).
6.S985 Artificial Intelligence for Business
Level: G
Prereqs: none
Units: 3-0-9
Satisfies: none
Instructors: M. Raghavan
[Meets with 15.563] Explores how to design and evaluate products and policy based on artificial intelligence. Provides a functional (as opposed to mechanistic) understanding of the emerging technologies underlying AI. Presents AI’s opportunities and risks and how to create conditions under which its deployment can succeed. No technical background required.
6.S986 Large Language Models and Beyond
Level: G
Prereqs: 6.8610/6.8611, 6.3900, 6.7900
Units: 3-0-9
Satisfies: AAGS, Artificial Intelligence concentration
Instructors: Y. Kim
The field of natural language processing has recently made remarkable progress through large language models trained at scale on broad data. This seminar will explore various issues and questions surrounding these systems, including: applications (in NLP and other domains), emergent capabilities, efficient training & deployment, philosophical and ethical implications, and more.
6.S987 Physics and Engineering of Superconducting Qubits
Level: G
Prereqs: 6.728 or 8.06 or equivalent
Units: 3-0-9
Satisfies: AAGS, Applied Physics concentration
Instructors: W. Oliver, K. O'Brien
[Meets with 8.582] This course introduces the physics and engineering of superconducting qubits for quantum information processing for graduate and upper-level undergraduate students. Topics will include (1) an introduction to superconductivity and Hamiltonian engineering; (2) superconducting qubits, cavities, and microwave cavity quantum electrodynamics; (3) the theory and microwave engineering of qubit control and measurement; (4) noise, decoherence, dynamical error mitigation; (5) microwave photons, squeezing, and quantum-limited amplification; (6) survey of other solid-state qubit modalities, including semiconductor quantum dots and majorana zero modes; and (7) experimental fault tolerance and quantum error detection. The course will include both classroom lectures, tutorials, homework sets, and hands-on lab practicum with superconducting qubits.
6.S988 Mathematical Statistics: A Non-Asymptotic Approach
Level: G
Prereqs: 6.7700 and 18.06 and 18.6501, or permission of instructor
Units: 3-0-9
Satisfies: AAGS, Artificial Intelligence concentration
Instructors: M. Wainwright, P. Rigollet, S. Rakhlin
[Meets with 18.656, IDS.160, 9.521] Introduces students to modern non-asymptotic statistical analysis. Topics include high-dimensional models, nonparametric regression, covariance estimation, principal component analysis, oracle inequalities, prediction and margin analysis for classification.
Fall 2022
6.1420 Fixed Parameter and Fine-grained Complexity
Level: U
Prereqs: 6.1200[6.042] and 6.1210[6.006] and (6.1220[6.046] or 6.1400[6.045] or 18.404)
Units: 3-0-9
Satisfies: AUS2, II
Instructors: R. Williams, V. Williams
[Meets with 6.S974] An overview of the theory of parameterized algorithms and the "problem-centric" theory of fine-grained complexity, both of which reconsider how to measure the difficulty and feasibility of solving computational problems. Topics include: fixed-parameter tractability (FPT) and its characterizations, the W-hierarchy (W[1], W[2], W[P], etc.), 3-sum-hardness, all-pairs shortest paths (APSP)-equivalences, strong exponential time hypothesis (SETH) hardness of problems, and the connections to circuit complexity and other aspects of computing.
6.1900 Introduction to Low-Level Programming in C and Assembly
Level: U
Prereqs: 6.100A[6.0001]
Units: 2-2-2
Instructors: J. Steinmeyer, S. Hanono Wachman
[Half-term subject, taught in both first half (H1) and second half (H2); half-semester assignments announced before semester starts.] Introduction to C and assembly language for students coming from a Python background (6.0001). Studies the C language, focusing on memory and associated topics including pointers, and 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. Since 6.1900 is taught in both halves of the semester, and requires hardware and lab space, you will be assigned to a section in either the first half or second half in order to balance section size. Please preregister or register for 6.1900. You will be asked for your constraints and preferences, and before the semester starts, you will receive an assignment to either the first half or the second half of the semester. (The subject number for the first half course may be 6.S077 for scheduling reasons, but 6.S077 is the same as 6.1900.)
6.7950 Reinforcement Learning: Foundations and Methods
Level: G
Prereqs: see below
Units: 3-0-9
Satisfies: AAGS in the Control concentration
Instructors: R. Williams, V. Williams
[Enrollment limited] Reinforcement learning (RL) as a methodology for approximately solving sequential decision-making under uncertainty, with foundations in optimal control and machine learning. Finite horizon and infinite horizon dynamic programming, focusing on discounted Markov decision processes. Value and policy iteration. Monte Carlo, temporal differences, Q-learning, and stochastic approximation. Approximate dynamic programming, including value-based methods and policy space methods. Special topics at the boundary of theory and practice in RL. Applications and examples drawn from diverse domains. While an analysis prerequisite is not required, mathematical maturity is necessary. Expectations and prerequisites: There is a large class participation component. In terms of prerequisites, students should be comfortable at the level of receiving an A grade in probability (6.3700[6.041] or equivalent), machine learning (6.7900[6.867] or equivalent), convex optimization (from 6.7200[6.255] / 6.3900[6.036] / 6.7900[6.867] or equivalent), linear algebra (18.06 or equivalent), and programming (Python). Mathematical maturity is required. This is not a Deep RL course. This class is most suitable for PhD students who have already been exposed to the basics of reinforcement learning and deep learning (as in 6.3900[6.036] / 6.7900[6.867] / 1.041 / 1.200), and are conducting or have conducted research in these topics.
6.S040 Computational Foundations for Ethical ML in Life Sciences and Health Care
Level: U
Prereqs: 6.3900[6.036] or 6.C01 or equivalents
Units: 2-0-4
Satisfies: EECS when taken concurrently with 6.9320[6.904]
Instructors: R. Barzilay
[Enrollment limited to 40] The class focuses on designing machine learning methods for life sciences and their ethical implications. The class will cover common pitfalls in data preparation and algorithm design that lead to biased and unsafe systems. Next, we will cover algorithmic solutions that can address this deficiencies. Such methods include automatic bias detection, algorithms for robust learning in presence of bias, privacy-preserving data access, and methods for uncertainty estimation. We will also discuss the impact of regulatory policies on algorithm design and ethical considerations. The class will combine lectures and group discussions.
6.S045 Computational Imaging: Physics and Algorithms
Level: U
Prereqs: (1.000, 1.00, 2.086, 3.019, or 6.100A[6.0001]) and 18.C06
Units: 3-0-9
Instructors: G. Barbastathis, R. Ram, J. LeBeau
Contemporary understanding of imaging is essentially computational: it involves encoding onto a form of radiation the information about a physical object, transferring the radiation through the imaging system, converting it to a digital signal, and finally computationally decoding the object information and presenting it to the user. This class introduces a unified formulation of computational imaging systems in the form of a three-round “learning spiral”: in the first two rounds of the spiral, the instructors describe the physical and algorithmic parts in two exemplary imaging systems. The third round the students conduct themselves in the context of the class project on an imaging system of their choice. The undergraduate and graduate versions share lectures but have different recitations. Throughout the term we also conduct optional “clinics” to even out background knowledge of linear algebra, optimization, and computational imaging-related programming best practices for students of diverse disciplinary backgrounds.
6.S046 Silicon Photonics
Level: U
Prereqs: 6.2300[6.013] or 8.07
Units: 3-0-9
Satisfies: AUS2, DLAB2
Instructors: J. Notaros
[Meets with 6.S976] Introduces students to the field of silicon photonics with topics spanning silicon-photonics-based devices, circuits, systems, platforms, and applications. Covers the foundational concepts behind silicon photonics based in electromagnetics, optics, and device physics; the design of silicon-photonics-based devices (including waveguides, couplers, splitters, resonators, antennas, modulators, detectors, and lasers) using both theoretical analysis and numerical simulation tools; the engineering of silicon-photonics-based circuits and systems with a focus on a variety of applications areas (spanning computing, communications, sensing, quantum, displays, and biophotonics); the development of silicon-photonics-based platforms, including fabrication and materials considerations; and the characterization of these silicon-photonics-based devices and systems through hands-on laboratory demonstrations and projects. Students taking graduate version complete additional assignments.
6.S082 Principles of Modeling, Computing and Control for Decarbonized Electric Energy Systems
Level: U
Prereqs: 6.2000]6.0002] or 6.3100[6.302] or permission of instructor
Units: 4-0-8
Satisfies: AUS2, II
Instructors: M. Ilic
[Meets with 6.S967] The overarching goal of this course is to prompt students to apply systems-level thinking and engage in emerging research on efficient, sustainable, and physically and economically feasible electric power systems. It offers modeling principles of modern electric power systems starting from a brief review of their structure and their physical components. In particular, a novel unified modeling in energy/power dynamics is introduced to conceptualize their operations and control and manage temporal,functional and spatial complexity.. Examples of potential benefits from novel hardware and software technologies are introduced to show how digitalization and distributed control play the key role on the path to decarbonized electric energy services.
6.S083 Julia – Solving Real World Problems with Computation
Level: U
Prereqs: 18.03, 18.06, 6.100A[6.0001], or equivalents
Units: 3-0-9
Satisfies: AUS2, II
Instructors: A. Edelman
[Meets with 18.S191] Focuses on algorithms and techniques for writing and using modern technical software in a job, lab, or research group environment that may consist of interdisciplinary teams, where performance may be critical, and where the software needs to be flexible and adaptable. Topics covered include automatic differentiation, matrix calculus, scientific machine learning, parallel and GPU computing, and performance optimization with introductory applications to climate science, economics, agent based modeling, and other areas. Labs and projects focused on performant, readable, composable algorithms and software. Programming will be in Julia. We expect students to have some familiarity with Python, Matlab, or R but not Julia.
6.S084 Linear Algebra and Optimization
Level: U
Prereqs: 18.02
Units: 5-0-7
Satisfies: can be substituted for 18.06
Instructors: A. Moitra, P. Parrilo
[Meets with 18.C06] Introductory 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.S897 Advanced Sensorimotor Learning
Level: G
Prereqs: 6.8200[6.484]
Units: 2-0-10
Satisfies: AAGS in AI concentration
Instructors: P. Agrawal
Surveys advanced concepts in implementing machine learning algorithms for control through a course project and reading research papers. Topics include reinforcement learning, self-supervised learning, and learning from demonstrations, model-based learning, sim-to-real transfer, and specific machine learning challenges unique to building sensorimotor systems. Discusses when it is appropriate to use learning-based methods for decision-making problems, which algorithms to use, and best practices in adapting state-of-the-methods to the problem of student interests. Instruction involves one lecture a week where students present research papers or their project, and a semester-long course project.
6.S898 Deep Learning
Level: G
Prereqs: (6.3900[6.036] or 6.C01 or 6.3720[6.401]) and (6.3700[6.041] or 6.3800[6.008] or 18.05) and (18.061 or 18.06)
Units: 3-0-9
Satisfies: grad_AUS2, grad_II, AAGS in AI concentration
Instructors: P. Isola
[Enrollment limited] Fundamentals of deep learning, including both theory and applications. Topics include neural net architectures (MLPs, CNNs, RNNs, transformers), backpropagation and automatic differentiation, learning theory and generalization in high-dimensions, and applications to computer vision, natural language processing, and robotics.
6.S899 Learning of Time Series with Interventions
Level: G
Prereqs: Besides general mathematical maturity, the minimal suggested requirement for the course is linear algebra (e.g., 18.06 / 18.700)
Units: 3-0-9
Satisfies: grad_AUS2, AI+D_AUS, AAGS in AI concentration
Instructors: M. Dahleh, D. Shah
A time series is a time-stamped set of noisy observations from an underlying process that evolves over time. These observations are dependent on each other in a particular, unknown, fashion. Examples of such series include stock values, value of a currency with respect to the dollar, mean housing prices, the number of Covid-19 infections, or the pitch angle of an airplane during flights. Modeling such processes for the purpose of prediction or intervention is a fundamental problem in statistical learning. This is a research-oriented graduate-level course that will address three lines of development: Learning Structured Models: In this part of the course, we focus on learning the underlying stochastic dynamic model that generates the data. We discuss how algorithms depend on the underlying class of models adopted for this learning. We address the accuracy and reliability of our learned models particularly if the model class does not contain a ‘true’ model. We extend these ideas to dynamic systems with flexible input design. Prediction: In this part of the course, we make no assumptions on how the data is generated and we focus on predicting the next outcome of the process based on past observations. In this context, we analyze Matrix and Tensor Completion Methods in providing such predictions and we analyze the accuracy of these prediction in the presence of noise, missing data, and finally with interventions. Optimal Intervention and RL: A key ingredient of RL is a simulator that can estimate the value of a reward for a given intervention. In this part of the course, we build on techniques from Reinforcement Learning as well as the first two parts to show how new intervention/control can be derived with better outcomes. The course will consist of three guided projects, corresponding to each of the units above, as well as a final project selected by the students.
6.S965 TinyML and Efficient Deep Learning Computing
Level: G
Prereqs: 6.1900[6.004], 6.3900[6.036] or equivalents
Units: 3-0-9
Satisfies: grad_AUS2, AAGS in AI or Computer Systems concentration
Instructors: S. Han
This course introduces tiny machine learning techniques that enable powerful deep learning applications on resource-constrained devices. Topics include model compression, pruning, quantization, neural architecture search, distributed training, gradient compression, on-device transfer learning, federated learning, efficient kernel design, auto-tuning, benchmarking and profiling, and quantum machine learning. It also introduces application-specific tinyML techniques for video recognition, GAN, point cloud, and natural language understanding. Students will get hands-on experience implementing deep learning applications on microcontrollers and mobile phones and quantum ML on real quantum machines with an open-ended design project.
6.S967 Principles of Modeling, Computing and Control for Decarbonized Electric Energy Systems
Level: G
Prereqs: 6.2000]6.0002] or 6.3100[6.302] or permission of instructor
Units: 4-0-8
Satisfies: grad_AUS2, grad_II, AAGS in the Control concentration
Instructors: M. Ilic
[Meets with 6.S082] The overarching goal of this course is to prompt students to apply systems-level thinking and engage in emerging research on efficient, sustainable, and physically and economically feasible electric power systems. It offers modeling principles of modern electric power systems starting from a brief review of their structure and their physical components. In particular, a novel unified modeling in energy/power dynamics is introduced to conceptualize their operations and control and manage temporal,functional and spatial complexity.. Examples of potential benefits from novel hardware and software technologies are introduced to show how digitalization and distributed control play the key role on the path to decarbonized electric energy services.
6.S974 Fixed Parameter and Fine-grained Complexity
Level: G
Prereqs: 6.1200[6.042] and 6.1210[6.006] and (6.1220[6.046] or 6.1400[6.045] or 18.404)
Units: 3-0-9
Satisfies: grad_AUS2, grad_II, AAGS in Theoretical CS concentration
Instructors: R. Williams, V. Williams
[Meets with 6.1420[6.054]] An overview of the theory of parameterized algorithms and the "problem-centric" theory of fine-grained complexity, both of which reconsider how to measure the difficulty and feasibility of solving computational problems. Topics include: fixed-parameter tractability (FPT) and its characterizations, the W-hierarchy (W[1], W[2], W[P], etc.), 3-sum-hardness, all-pairs shortest paths (APSP)-equivalences, strong exponential time hypothesis (SETH) hardness of problems, and the connections to circuit complexity and other aspects of computing.
6.S975 Experience in Technical Communication
Level: G
Prereqs: Permission of instructor
Units arranged [P/D/F]
Instructors: D. Montgomery
For qualified students interested in gaining technical communication experience. Communication coaching, workshop facilitation, and other communication-related projects under supervision of Communication Lab staff. Students selected by interview. Enrollment limited by availability of suitable assignments.
6.S976 Silicon Photonics
Level: G
Prereqs: 6.2300[6.013] or 8.07
Units: 3-0-9
Satisfies: grad_AUS2, AAGS in the Applied Physics concentration
Instructors: J. Notaros
[Meets with 6.S046] Introduces students to the field of silicon photonics with topics spanning silicon-photonics-based devices, circuits, systems, platforms, and applications. Covers the foundational concepts behind silicon photonics based in electromagnetics, optics, and device physics; the design of silicon-photonics-based devices (including waveguides, couplers, splitters, resonators, antennas, modulators, detectors, and lasers) using both theoretical analysis and numerical simulation tools; the engineering of silicon-photonics-based circuits and systems with a focus on a variety of applications areas (spanning computing, communications, sensing, quantum, displays, and biophotonics); the development of silicon-photonics-based platforms, including fabrication and materials considerations; and the characterization of these silicon-photonics-based devices and systems through hands-on laboratory demonstrations and projects. Students taking graduate version complete additional assignments.
6.S977 The Sum of Squares Methods
Level: G
Prereqs:
Units: 3-0-9
Satisfies: AAGS, grad_AAGS, Theoretical Computer Cocentration
Instructors: S. Hopkins
Study of algorithms and computational complexity through the lens of the Sum of Squares method (SoS), a powerful approach to algorithm design generalizing linear programming and spectral methods. Specific sub-topics vary and are chosen with student input, potentially including algorithms for combinatorial and continuous optimization (graphs, constraint satisfaction problems, unique games conjecture), applications to high-dimensional algorithmic statistics (robustness, privacy, method of moments), applications to quantum information, and an SoS perspective on computational complexity (of NP-hard problems and/or of statistical inference).
6.S978 Tissue vs Silicon in Machine Learning
Level: G
Prereqs: none
Units: 3-0-9
Satisfies: AAGS, Artificial Intelligence concentration
Instructors: N.Shavit
A seminar style class that investigates learnings from neurobiology in the design of ML hardware and software. Students should have an understanding of ML techniques.
6.S980 Machine Learning for Inverse Graphics
Level: G
Prereqs: 6.3900[6.036] OR 6.3700[6.041] OR 6.1200[6.042] OR 18.06 (i.e., an intro machine learning course)
Units: 3-0-9
Satisfies: grad_AUS2, AAGS in AI or Graphics&HCI concentration
Instructors: V. Sitzmann
From a single picture, humans reconstruct a mental representation of the underlying 3D scene that is incredibly rich in information such as shape, appearance, physical properties, purpose, how things would feel, smell, sound, etc. These mental representations allow us to understand, navigate, and interact with our environment in our everyday lives. We learn this from little supervision, mainly by interacting with our world and observing the world around us. Emerging neural scene representations aim to build models that replicate this behavior: Trained in a self-supervised manner, the goal is to reconstruct rich representations of 3D scenes that can then be used in downstream tasks such as computer vision, robotics, and graphics. This course covers fundamental and advanced techniques in this field at the intersection of computer vision, computer graphics, and deep learning. It will lay the foundations of how cameras see the world, how we can represent 3D scenes for artificial intelligence, how we can learn to reconstruct these representations from only a single image, how we can guarantee certain kinds of generalization, and how we can train these models in a self-supervised way.
6.S981 Introduction to Program Synthesis
Level: G
Prereqs: 6.1010[6.009], 6.1200[6.042] or equivalent
Units: 3-0-9
Satisfies: grad_AUS2, AAGS in Computer Systems concentration
Instructors: A. Solar Lezama
The goal of this course is to provide a comprehensive introduction to the field of Software synthesis, an emerging field that sits at the intersection of programming systems, formal methods and artificial intelligence. The course will be divided into three major sections: the first will focus on program induction from examples and will cover a variety of techniques to search large program spaces. The second section will focus on synthesis from expressive specifications and the interaction between synthesis and verification. Finally, the third unit will focus on synthesis with quantitative specifications and the intersection between program synthesis and machine learning. The course will be graded on the basis of three problem sets and an open-ended final project.
6.S982 Clinical Data Learning, Visualization, and Deployments
Level: G
Prereqs: 6.7900[6.867] and HST.956
Units: 3-0-9
Satisfies: grad_AUS2, BIOEECS_AAGS, AAGS in AI or BioEECS concentration
Instructors: M. Ghassemi
[Meets with HST.953] Examines the practical considerations for operationalizing machine learning in healthcare settings, with a focus on robust, private and fair modeling using real retrospective healthcare data. Explores the pre-modeling creation of dataset pipeline to the post-modeling "implementation science" that addresses how models are incorporated at the point of care. Students will complete three homeworks (one each on machine learning, visualization and implementation) followed by a course project proposal and presentation. Students gain experience in dataset creation and curation, machine learning training, visualization and deployment considerations that target utility and clinical value. Most importantly, students will appreciate the multidisciplinary nature of data science by partnering with computer scientists, engineers, social scientists and clinicians.
Spring 2022
6.260 Topics in the Communication and Networks
Level: G
Prereqs: see below
Units: 3-0-6
Satisfies: AAGS in the Communications Concentration
Instructors: M. Medard
This course will be a reading course on recent topics in communications and networks. The course will have assignment of recent papers, decided jointly by the group. Grade will be based on the presentation of these papers and in-class discussion. Where possible, authors of the papers selected will be invited to participate in the discussion. There is no formal prerequisite to the class, but students will be expected to have some background in communications, or networking, or signal processing.This course will be a reading course on recent topics in communications and networks. The course will have assignment of recent papers, decided jointly by the group. Grade will be based on the presentation of these papers and in-class discussion. Where possible, authors of the papers selected will be invited to participate in the discussion.
6.882 Ethical Machine Learning in Human Deployments
Level: G
Prereqs: 6.867
Units: 3-0-9
Satisfies: AAGS in the AI Concentration
Instructors: M. Ghassemi
This course focuses on the human-facing considerations in the pipeline of machine learning (ML) development in human-facing settings like healthcare, employment, and education. Students will learn about the issues involved in ethical machine learning, including framing ethics of ML in healthcare through the lens of social justice. Students will read papers related to ongoing efforts and challenges in ethical ML, ranging from problem selection to post-deployment considerations. Guest lectures will be given by experts in data access, ethics, fairness, privacy and deployments, and the course will focus around a central project that students will use to explore how machine learning can potentially be brought into human-facing deployments ethically.
6.883 Computational Molecular Neuroscience
Level: G
Prereqs: 7.01 or equivalent; AND 9.01 or equivalent; AND 6.0001 or equivalent. Recommended: 9.09; 6.047; 6.036
Units: 3-1-8
Satisfies: AAGS in the AI concentration, grad_AUS2, grad_II
Instructors: M. Kellis, M. Heiman
Meets with 6.S076, 9.S99, 9.S913. Introduces the basic computational and technological foundations of molecular neuroscience. Lectures introduce foundational concepts and research frontiers, drawing from classic and recent landmark literature, state-of-the-art advances, and outlook. Bi-weekly labs provide practical hands-on introduction to foundational techniques and enabling datasets. A term team project enables students to dive deeper into one or more topics and carry out original research with regular milestones including project proposal, end-to-end pipeline, midcourse report, final written report, and final oral presentation. Topics include: neuroscience foundations, brain circuitry, connectomics, regional specialization, Bayesian inference, dimensionality reduction, regression, estimation, machine learning, deep learning architectures, brain computation, neurotransmission, circuitry tracing, developmental lineage tracing, imaging technologies, RNA-seq, ATAC-seq, single-cell technologies, multiomics, spatial transcriptomics, in-situ sequencing, cell type annotation, marker detection, differentially-expressed genes, pseudotime and trajectory analysis, hierarchical, pathway, and network analysis, representation learning, embeddings, image analysis, regulatory genomics, enhancer-gene linking, development, aging, sex differences, psychiatric disorders, neurodegeneration, somatic mosaicism, brain disorders.
6.884 Doing Things with Words
Level: G
Prereqs: 6.864 or permission of instructor
Units: 2-0-10
Satisfies: AAGS in the AI Concentration
Instructors: J. Andreas
Seminar on problems at the intersection of language understanding and decision-making. Topics to be covered include instruction following, grounded language generation, emergent communication, task-oriented dialog, and natural language supervision for policy and reward learning.
6.885 Crticial Perspectives on Security and Privacy Architectures
Level: G
Prereqs: 6.805 or 6.033, or permission of instructor
Units: 2-0-10
Satisfies: AAGS in the Computer Systems Cncentration
Instructors: D. Weitzner, G. Sussman
Explore technical approaches to addressing privacy and security requirements with the goal of critically assessing how these systems meet or fall short of social and public policy goals. Study foundational privacy and cybersecurity legal frameworks as well as relevant concepts in information economics to understand incentives driving technical design. Technical readings include leading papers in anonymity, public ledgers, privacy enhancing technologies, policy aware systems, cryptographic computing and differential privacy. Several invited speakers from industry, government and civil society organizations will offer guest lectures.
6.888 Secure Hardware Design
Level: G
Prereqs: 6.004 or equivalent
Units: 3-0-9
Satisfies: AAGS in the Computer Systems Concentration
Instructors: M. Yan
The course aims to provide an introduction to hardware system design with security as the primary goal. Topics include micro-architecture side channels, speculative execution attacks and defenses, enclave system design, architecture support for memory safety, RowHammer attacks, attacks on GPU and accelerators, physical side channel attacks and defenses, etc. Students are required to complete 5 lab assignments or have the option to substitute the labs with an open-ended design project.
6.S061 Introduction to Computer Science and Programming for Non-Programmers
Level: U
Prereqs: None
Units: 3-0-6
Satisfies: substitute for 6.0001
Instructors: A. Bell, J. Guttag, F. Durand
Introduction to computer science and programming for students with no programming experience. The course is similar to 6.0001, but it runs over an entire semester. Students develop skills to program and use computational techniques to solve problems. Topics include the notion of computation, Python, simple algorithms and data structures, testing and debugging, and algorithmic complexity.
6.S063 Design for the Web: Languages and User Interfaces
Level: U
Prereqs: 6.009 co-req
Units: 3-2-7
Satisfies: EECS
Instructors: D. Karger, L. Verou
A first course in designing and implementing good user interfaces focused on web applications. Principles and methods of Human-Computer Interaction including human capabilities, design principles, prototyping techniques, and evaluation techniques. The programming languages of the web — HTML, CSS, and Javascript -- their different roles, and the rationales for their widely varying designs.
6.S076 Computational Molecular Neuroscience
Level: U
Prereqs: 7.01 or equivalent; AND 9.01 or equivalent; AND 6.0001 or equivalent. Recommended: 9.09; 6.047; 6.036
Units: 3-1-8
Satisfies: AUS2, EECS, II
Instructors: M. Kellis, M. Heiman
Meets with 6.883, 9.S99, 9.S913. Introduces the basic computational and technological foundations of molecular neuroscience. Lectures introduce foundational concepts and research frontiers, drawing from classic and recent landmark literature, state-of-the-art advances, and outlook. Bi-weekly labs provide practical hands-on introduction to foundational techniques and enabling datasets. A term team project enables students to dive deeper into one or more topics and carry out original research with regular milestones including project proposal, end-to-end pipeline, midcourse report, final written report, and final oral presentation. Topics include: neuroscience foundations, brain circuitry, connectomics, regional specialization, Bayesian inference, dimensionality reduction, regression, estimation, machine learning, deep learning architectures, brain computation, neurotransmission, circuitry tracing, developmental lineage tracing, imaging technologies, RNA-seq, ATAC-seq, single-cell technologies, multiomics, spatial transcriptomics, in-situ sequencing, cell type annotation, marker detection, differentially-expressed genes, pseudotime and trajectory analysis, hierarchical, pathway, and network analysis, representation learning, embeddings, image analysis, regulatory genomics, enhancer-gene linking, development, aging, sex differences, psychiatric disorders, neurodegeneration, somatic mosaicism, brain disorders.
6.S077 Introduction to Low-level Programming in C and Assembly
Level: U
Prereqs: 6.0001
Units: 2-2-2
Instructors: J. Steinmeyer, S. Hanono Wachman
Introduction to C and assembly language for students coming from a Python background (6.0001). In studying the C language, the class focuses on memory and associated topics including pointers, and 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. The course also studies assembly language to facilitate a firm understanding of how high level languages are translated to machine level instructions. The class features a weekly (2.5 hour) lab component using a lab kit including a RISC-V microcontroller and peripheral devices such as displays, switches, microphones, and transistors. Weekly 1.5 hour lecture, 2.5 hour lab, and one final exam.
6.S079 Software Systems for Data Science
Level: U
Prereqs: 6.0001/6.0002
Units: 3-0-9
Satisfies: EECS
Instructors: S. Madden, T. Kraska
This class will survey techniques and systems for ingesting, efficiently processing, analyzing, and visualizing large data sets. Topics will include data cleaning, data integration, scalable systems (relational databases, NoSQL, Spark, etc.), analytics (data cubes, scalable statistics and machine learning), fundamental statistics and machine learning and scalable visualization of large data sets. The goal of the class is to gain working experience along with in-depth discussions of the topics covered. Students should have a background in programming and algorithms. There will be a semester-long project and paper, and hands-on labs designed to give experience with state of the are data processing tools.
6.S194 Electronics First
Level: U
Prereqs: Permission of Instructor
Units: 4-4-4
Instructors: S. Leeb
Hands-on introduction to the design and construction of electronic circuits for information processing and control. Laboratory exercises include activities like the construction of oscillators for a simple musical instrument, a laser audio communicator, a countdown timer, an audio amplifier, and a feedback-controlled solid-state lighting system for daylight energy conservation, among other exercises. Activities include an introduction to basic electrical components including resistors, capacitors, and inductors, and to basic assembly techniques for electronics including breadboarding and soldering, as well as an introduction to programmable system-on-chip electronics and the C programming language.
6.S967 Online Decision Making: Optimization, Control and Games
Level: G
Prereqs: 6.0001 and (18.06 or 18.061) and (6.041 or 6.008 or 18.05 or 18.600)
Units: 3-0-9
Satisfies: AAGS in the AI Concentration, grad_AUS2
Instructors: C. Daskalakis, A. Madry, P. Parrilo
This class will present the optimization, control-theoretic, learning-theoretic and game-theoretic fundamentals for making decisions in stochastic, adversarial, strategic, and dynamic environments with state and feedback loops. The class will expose students to fundamental models and methods, and present their beautiful connections and applications to fields of mathematics, engineering, optimization, and learning. The course material will cover gradient descent, regret minimization, Markov decision processes, reinforcement learning and control, and game-theoretic fundamentals such as the minimax theorem, Nash’s theorem, extensive form games, and stochastic games.
6.S975 Global Business of Quantum Computing
Level: G
Units: 2-0-1
Instructors: W. Oliver
Meets with 15.S20. Quantum Computing (QC) offers the potential to solve certain types of problems for human kind; problems that are today, prohibitive for traditional computing. It could lead to exciting breakthroughs in areas such as improved efficiency in logistics chains, increased battery performance for cars or helping to find new pharmaceutical treatments. But what is hype and what is realistic given the development of the field in recent years and its current trajectory? What role do scientists, engineers, managers, entrepreneurs, policy makers and other stakeholders play? This course provides multiple viewpoints including academic, industry and governmental. You will hear from leading MIT faculty and pioneering practitioners in the field. We will demystify topics such as trapped ion and superconducting qubits.
6.S977 Machine Learning Based Theraputic Design
Level: G
Prereqs: TBA
Units: 3-0-3
Satisfies: AAGS in the AI Concentration
Instructors: D. Gifford
Meets with 20.S948. Advanced seminar on computational methods in the design and analysis of human therapeutics, including vaccines, small molecules, biologics, cell based therapies, and synthetic biology approaches. Lectures will present essential computational methods on vaccine design, molecular design and optimization drawing upon recent results in machine learning. Classes will include presentations by students on recent research results related to the computational design of therapeutics and efficacy. Topics include protein design, antibody optimization, vaccine design, small molecule design and characterization, and the engineering of viruses and cell lines for therapeutic effect. Experts from industry and faculty will present their views of the promise of computational approaches, what is working, and what is needed.
6.S978 Data Science: The Breadth of Challenges
Level: G
Prereqs: one of 6.034, 6.036, 15.085, 15.077, 15.286, 15.386, or permission of instructor
Units: 2-0-4
Instructors: A. Spector
Comprehensively presents the breadth of considerations needed to apply data science successfully. Students will learn the landscape of challenges, a unique rubric for systematically evaluating them, and then see the rubricʼs application to a variety of case studies. Through a combination of lectures, student presentations, and in-class discussions, students will delve deeply into seven sets of implementation- and requirements-oriented challenges: from data gathering to meeting ethical, legal, and societal needs. Students (in groups of two) will have the opportunity to zoom in on specific problem areas via oral presentations and one short and one long paper. While the topic of this course is broadly data science, much of the class will discuss applications of machine learning/AI. Students will develop skills to lead data science efforts to successful completion and will better understand future research/commercial opportunities and public policy trade-offs.
6.S979 Multistakeholder Negotiation for Technical Experts
Level: G
Prereqs: none
Units: 2-0-4
Instructors: S. Dinnar
Engineering requires negotiating with many stakeholders: internally and externally. All technical innovators, leaders, and members of diverse teams, need to align efforts and overcome differences. Learn experientially the strategies and proven techniques that improve communications, relationships, and decision-making in groups – using simulations, role-plays, case studies and video analysis. Targeted to graduate students in engineering and joint engineering-business program such as SDM, IDM, and LGO. No prior education or experience in negotiation is required. The class counts toward satisfying the requirements for the Graduate Certificate in Technical Leadership.
Fall 2021
6.187 Fundamentals of Music Processing
Level: U
Prereqs: 6.003, 6.0002, and 21M.051
Units: 3-0-9
Satisfies: HASS-A, DLAB2
Instructors: E. Egozy
Analyzes recorded music in digital audio form using advanced signal processing and optimization techniques to understand higher-level musical meaning. Covers fundamental tools like windowing, feature extraction, discrete and short-time Fourier transforms, chromagrams, and onset detection. Addresses analysis methods including dynamic time warping, dynamic programming, self-similarity matrices, and matrix factorization. Explores a variety of applications, such as event classification, audio alignment, chord recognition, structural analysis, tempo and beat tracking, content-based audio retrieval, and audio decomposition.
6.644 Quantum Measurement and Control
Level: G
Prereqs: 8.04 or permission of instructor
Units: 3-0-9
Satisfies: AAGS, Applied Physics Concentration
Instructors: K. O'Brien
This subject counts as an Applied Physics concentration. Introduction to modern quantum measurement and applications, including quantum trajectory theory and experimental demonstrations. We cover linear and nonlinear quantum circuits, coherent and non-classical photon states, circuit quantum electrodynamics, quantum measurement, quantum feedback control, quantum trajectories, quantum jumps, and applications to quantum information processing. This course will prepare graduate students for research in quantum devices (optical, superconducting, electronic, spin, etc), quantum computing, or quantum communication. Focuses on quantum measurements in the real world vs the idealized world of projective measurements taught in introductory courses.
6.881 Tissue vs Silicon in Machine Learning
Level: G
Prereqs: none
Units: 3-0-9
Satisfies: AAGS, Artificial Intelligence concentration
Instructors: N.Shavit
This subject qualifies as an Artificial Intelligence concentration subject. Studies the relation between machine learning and neural tissue, the models and computational approaches of each and what can be deduced from one about the other. Topics will include biological constructs such as neurons, connectome graphs, scaling in neural tissue, associative memory, and pruning, versus neural network training and inference hardware and software designs, scaling laws, and optimization techniques.
6.887 Machine Learning for Systems
Level: G
Prereqs:
Units: 3-0-9
Satisfies: AAGS, Computer Systems concentration
Instructors: T. Kraska, M. Alizadeh
This subject counts as a subject in the Computer Systems concentration. Machine learning is poised to change how people design, operate, and analyze computer systems. This course introduces the emerging area of learning-based systems, with the goal to provide working experience in applying learning to system design and to prepare students for research in this field. Topics include automatic optimization of system parameters, learning-enhanced data structures and algorithms (e.g., indexes, sketches, compression, caching, scheduling), core techniques (e.g., reinforcement learning, bandit algorithms, deep learning) and their applications to systems and networking.  The course will include lectures, invited talks by experts, a semester-long project and paper, and hands-on labs designed to give experience with topics covered. Prerequisites:
6.890 Graph and Matrix Algorithms
Level: G
Prereqs: 6.006, 6.046
Units: 3-0-9
Satisfies: AAGS, Theoretical Computer Science concentration
Instructors: V. Williams
This subject will qualify as a Theoretical Computer Science concentration subject. Due to the surprisingly fast algorithms for the problem, matrix multiplication is routinely used as a basic building block for algorithms beating the brute-force approach. This course explores a variety of problems, mostly within graph algorithms, and discusses how they can be solved faster using a fast matrix multiplication algorithm. We will also see that although many of these problems provably require the use of matrix multiplication to be solved exactly, sometimes matrix multiplication can be avoided by computing answers approximately, leading to very fast algorithms. Finally, we will discuss most of the known algorithms for matrix multiplication including the Coppersmith-Winograd algorithm and its relatives. Topics include: Graph Transitive Closure, All Pairs Shortest Paths, Perfect Matching, distance oracles, graph spanners, matrix multiplication algorithms, and a variety of equivalences between problems involving matrix multiplication. Prerequisites: 6.046 or the equivalent mathematical maturity.
6.S057 Computer Systems and Society
Level: U
Prereqs: 6.033
Units: 3-0-9
Satisfies: II
Instructors: K. LaCurts
Explores the impact of computer systems on individual humans, society, and the environment. Examines large- and small-scale power structures that stem from technical design decisions, the consequences of those structures on people and the environment, and how they can limit or provide access to certain technologies. Students learn to assess technical design decisions within an ethical framework and consider the impact of their decisions on non-users. Case studies of working systems and readings from the current literature provide comparisons and contrasts. Possible topics include include the implications of hierarchical designs (e.g., DNS) for scale; how layered models influence what parts of a network have the power to take certain actions; the environmental impact of proof-of-work-based systems such as Bitcoin; etc.
6.S058 Representation and Inference in Artificial Intelligence
Level: U
Prereqs: 6.006 and (6.008 or 6.041) and 6.009
Units: 3-0-9
Satisfies: 6.034 alternative
Instructors: T. Lozano-Perez, L. Kaelbling
Meets with 16.420. An introduction to representations and algorithms for artificial intelligence, exclusive of machine learning.  Topics covered include: constraint satisfaction in discrete and continuous problems, logical representation and inference, Monte Carlo tree search, probabilistic graphical models and inference, planning in discrete and continuous deterministic and probabilistic models, basic decentralized and game-theoretic models.
6.S059 Nanotechnology - Design from Atoms to Everything
Level: U
Prereqs: 8.02 Physics II
Units: 2-3-7
Satisfies: DLAB2, AUS2
Instructors: F. Niroui, R. Ram
Introduces the fundamentals of applied quantum mechanics, materials science and fabrication skills needed to design, engineer and build emerging nanotechnologies with diverse applications in energy, computing, display and sensing. In this class, studies are motivated by the technology, its application and desired performance, then the full progression from the fundamentals to the implemented device and functional systems will be outlined. By completing open-ended, goal-driven laboratory modules, students will gain hands-on design experience with this interplay between science and engineering, and use their skills towards developing and implementing their own technologies through a final project.
6.S060 Foundations of Computer Security
Level: U
Prereqs: 6.006 and 6.033, or permission of instructor
Units: 4-0-8
Satisfies: AUS2
Instructors: S. Devadas, H. Corrigan-Gibbs, Y. Kalai, N. Zeldovich
Fundamental notions and big ideas in cryptography and computer security including: pseudorandomness, cryptographic hash functions, symmetric cryptography, authentication codes, key exchange, public-key cryptography, principle of least privilege, isolation and non-interference. Students will be encouraged to think like adversaries of systems and will learn about network attacks, man-in-the-middle attacks, attacks that exploit software vulnerabilities, timing attacks, and side channel attacks.
6.S061 Introduction to Computer Science and Programming for Non-Programmers
Level: U
Prereqs: None
Units: 3-0-6
Satisfies: substitute for 6.0001
Instructors: A. Bell, J. Guttag
Introduction to computer science and programming for students with no programming experience. The course is similar to 6.0001, but it runs over an entire semester. Students develop skills to program and use computational techniques to solve problems. Topics include the notion of computation, Python, simple algorithms and data structures, testing and debugging, and algorithmic complexity.
6.S078 Engineering the Internet (meets with 6.450)
Level: U
Prereqs: 6.02, 6.041, 6.042, or equivalent
Units: 3-0-9
Satisfies: AUS2, DLAB2
Instructors: M. Medard
This course will meet with graduate subject 6.450 combining the basics of signal processing, communications, networking and information theory. By relying on ample examples from current networking and communications, and by providing simplified proofs, accessible to students with only an introductory knowledge of probability, the course will seek to provide an integrated, systems-level view of current networking, including storage, while laying the foundations of analysis and design. Topics include areas of network security, cloud computing and evolution of fifth-generation (5G) wireless systems. Combines themes from both EE and CS in a naturally integrated fashion.
6.S081 Introduction to Operating Systems
Level: U
Prereqs: 6.004
Units: 3-6-3
Satisfies: AUS2
Instructor: A. Belay
The topics covered in 6.S081 include: virtual memory; file systems; threads; context switches; kernels; interrupts; system calls; interprocess communication; coordination, and interaction between software and hardware. A multi-processor operating system for RISC-V is used to illustrate these topics. Individual laboratory assignments involve extending an operating system kernel, for example to support sophisticated virtual memory features and network protocols. Programming experience is a prerequisite, ideally in the C language.
6.S084 Linear Algebra and Optimization
Level: U
Prereqs: 18.02
Units: 5-0-7
Satisfies: can be substituted for 18.06 requirement
Instructors: A. Moitra, P. Parrilo
Joint with 18.061. Unified introduction to linear algebra and optimization, their interconnections, and applications throughout science and engineering. Specific topics include vectors, matrices, eigenvalues, singular values, least-squares, convex optimization, linear/quadratic programming, gradient descent, Newton’s method.  Viewpoint will emphasize conceptual, geometric, and computational aspects. Applications from many domains, including networks, signal processing, and machine learning. Relation to 18.06: This course will count towards the linear algebra requirement for math majors! Also, since the material will overlap substantially with 18.06 it is strongly advised that you do not take it if you have already taken 18.06. They are not classified by the registrar as classes with essentially similar content, but individual majors (e.g. math and eecs) may treat them as such
6.S897 Academic Job Search
Level: G
Prereqs: permission of instructor
Units: 2-0-4
Satisfies: none
Instructors: S. Amarasinghe
This seminar is intended for EECS senior graduate students and post-docs who plan to enter the academic job market this Fall.  The seminar will explore what it is like to be a junior faculty member and what it takes to get a faculty job. You will hear from multiple junior faculty how they managed to successfully navigate the job search and from the MIT EECS search committee members on how the search process works internally.  We are also inviting search committee members from multiple universities for an “Academic Career Fair Day”. You’ll get to hear from them and possibly have short one-on-one “pre-interview” meetings with some. The EECS Communication Lab will conduct interactive workshops on the components of a faculty application. You will be required to complete multiple projects including writing a CV, research and teaching statements, giving oral presentations on your research, and participating in other academic job market-related activities.
6.S898 Deep Learning
Level: G
Prereqs: 6.036, 6.041 or 6.042; 18.06
Units: 3-0-3
Satisfies: None
Instructors: P. Isola
Fundamentals of deep learning, including both theory and applications. Topics include neural net architectures (MLPs, CNNs, RNNs, transformers), backpropagation and automatic differentiation, learning theory and generalization in high-dimensions, and applications to computer vision, natural language processing, and robotics. Each lecture will be from a different invited expert in the field.
6.S899 Brain Algorithms
Level: G
Prereqs: Analysis of algorithms, at the level of 6.046.  Probability.  Desirable
Units: 3-0-9
Satisfies: AAGS in the Theoretical CS concentration
Instructors: N. Lynch
Understanding computation in biological neural networks like the human brain is a central challenge of modern neuroscience and AI. This problem has been studied from many perspectives; this course will approach the problem using algorithmic methods from theoretical computer science. Specifically the course will rely on synchronous, stochastic Spiking Neural Network (SNN) models. It will identify abstract problems to be solved by SNNs, including problems of focus and attention, similarity and clustering, representation, and learning. It will study algorithms  (networks) that solve the problems, and analyze them in terms of costs such as network size and convergence time.  Major emphasis will be on how concepts (both logical and physical) are represented in the brain, how these representations satisfy algorithmic goals, and how they are learned. Other emphasis will be on understanding how noise and uncertainty affect the costs of solving problems, and on how networks that solve simple problems can be combined into larger networks that solve more complex problems.
6.S975 Seminar on Learning and Data-Driven Algorithms in Geometry
Level: G
Prereqs: knowledge of Linear Algebra, Calculus, and basic programming skills
Units: 2-0-7
Satisfies: none
Instructors: T. Shnitzer-Dery, J. Solomon, O. Stein
In this class, we will read papers on geometry and simulation, and track the history of the subject from classical papers all the way to the current time, where machine learning and data-driven algorithms are employed to enhance classical methods. This seminar has a unique structure: every week, each participant plays a different role and prepares a small presentation of the paper from their point of view. There will be a wide variety of roles, such as peer reviewer, programmer, graphic designer, PhD student, private investigator, historian, and more.
Spring 2021
6.002 Circuits and Electronics (Lab edition)
Prereqs:
Units: 3-2-7 (6.002); 0-2-1 (6.S078)
If you are interested in electronics, and have not taken 6.002 before, please considering taking the class this term. It will be a lot of fun and it will provide you with the right foundation to get started in this exciting discipline. We will send a USB-instrumentation kit to each student for you to have access to a 2-channel oscilloscope, 2 signal generators, a power supply and many more key electronics tools from home. This will be complemented with a large parts kit with lots of interesting chips and electronic modules. As the logistics for this are more involved than in regular years, we would appreciate if you could register/pre-register as soon as possible. , you can register this term for 6.S078, a 3 unit lab-only class, which will allow you to receive the instrumentation kit and do the 6.002 labs during the regular 6.002 lab schedule on Fridays. We will make sure to have enough office hours to accommodate different time zones and classes. Prereq: ; U (Fall, Spring) 3-2-7 units. REST Fundamentals of linear systems and abstraction modeling through lumped electronic circuits. Linear networks involving independent and dependent sources, resistors, capacitors and inductors. Extensions to include nonlinear resistors, switches, transistors, operational amplifiers and transducers. Dynamics of first- and second-order networks; design in the time and frequency domains; signal and energy processing applications. Design exercises. Weekly laboratory with microcontroller and transducers.
6.246 Reinforcement Learning: Foundations and Methods
Units: 4-0-8
This subject counts as a Control concentration subject.  Reinforcement learning (RL) as a methodology for approximately solving sequential decision-making under uncertainty, with foundations in optimal control and machine learning. Finite horizon and infinite horizon dynamic programming, focusing on discounted Markov decision processes. Value and policy iteration. Monte Carlo, temporal differences, Q-learning, and stochastic approximation. Approximate dynamic programming, including value-based methods and policy space methods. Special topics at the boundary of theory and practice in RL. Applications and examples drawn from diverse domains. While an analysis prerequisite is not required, mathematical maturity is necessary. Enrollment limited. : There is a large class participation component. In terms of prerequisites, students should be comfortable at the level of receiving an A grade in probability (6.041 or equivalent), machine learning (6.867 or equivalent), convex optimization (from 6.255 / 6.036 / 6.867 or equivalent), linear algebra (18.06 or equivalent), and programming (Python). Mathematical maturity is required. This is not a Deep RL course. This class is most suitable for PhD students who have already been exposed to the basics of reinforcement learning and deep learning (as in 6.036 / 6.867 / 1.041 / 1.200), and are conducting or have conducted research in these topics. : This course will be half theoretical foundations of RL, and half spending time exploring the boundary between theory and practice. This experimental course is meant to be an advanced graduate course, to explore possible alternative ways and perspectives on studying reinforcement learning.
6.247 Principles of Modeling, Simulations and Control for Electric Energy Systems (meets with 6.247)
Prereqs:
Units: 4-0-8
The graduate version counts as a subject in the Control Concentration. This course offers modeling principles of modern electric power systems starting from a brief review of their structure and their physical components. In particular, a novel unified modeling in energy/power dynamical space  is  introduced  to  conceptualize dynamics of interactions of complex multi-physicals components. No specialized knowledge of physical components is required.  This modeling sets a basis for  analysis, computation, sensing, control, power electronics, optimization and market design concepts. The course  prepares students for working on applying many novel methods and technologies, ranging from computer methods,  power electronics control,  for designing and operating more reliable, secure, and efficient electric energy systems. Students interested in both applied physics and signals and systems should consider taking this subject. Once the fundamentals of today's power systems are understood, it becomes possible to consider the role of smart electric power grids and power electronics-control  in enabling evolution of future electric energy systems. Integration of intermittent energy resources into the existing grid by deploying distributed sensors and actuators at the key locations throughout the system (network, energy sources, consumers) and changes in today's Supervisory Control and Data Acquisition (SCADA) for better performance become well-posed problems of modeling, sensing and controlling complex dynamic systems. This opens opportunities to many innovations toward advanced sensing and actuation for enabling better physical performance. Modeling, sensing and control fundamentals for possible next generation SCADA in support of highly distributed operations and design are introduced. Most of the concepts will be illustrated using homegrown Scalable Electric Power System Simulator (SEPSS).
6.401 Introduction to Statistical Data Analysis (NEW)
Prereqs: 6.0001 and (6.008, 6.041, or 18.600)
Units: 4-0-8
This subject qualifies as an Artificial Intelligence concentration subject. Introduction to the central concepts and methods of data science with an emphasis on statistical grounding and modern computational capabilities. Covers principles involved in extracting information from data for the purpose of making predictions or decisions, including data exploration, feature selection, model fitting, and performance assessment. Topics include learning of distributions, hypothesis testing (including multiple comparison procedures), linear and nonlinear regression and prediction, classification, time series, uncertainty quantification, model validation, causal inference, optimization, and decisions. Computational case studies and projects drawn from applications in finance, sports, engineering, and machine learning life sciences. Students taking graduate version complete additional assignments. Recommended prerequisite: 18.06.
6.402 Modeling with Machine Learning: from Algorithms to Applications (NEW)
Prereqs: Calc II (GIR) and 6.0001; Coreq
Units: 3-0-3
Focuses on modeling with machine learning methods with an eye towards applications in engineering and sciences. Introduction to modern machine learning methods, from supervised to unsupervised models, with an emphasis on newer neural approaches. Emphasis on the understanding of how and why the methods work from the point of view of modeling, and when they are applicable. Using concrete examples, covers formulation of machine learning tasks, adapting and extending methods to given problems, and how the methods can and should be evaluated. Students taking graduate version complete additional assignments. . Enrollment may be limited.
6.481 Introduction to Statistical Data Analysis (NEW)
Prereqs: 6.0001 and (6.008, 6.041, or 18.600)
Units: 4-0-8
This subject qualifies as an Artificial Intelligence concentration subject. Introduction to the central concepts and methods of data science with an emphasis on statistical grounding and modern computational capabilities. Covers principles involved in extracting information from data for the purpose of making predictions or decisions, including data exploration, feature selection, model fitting, and performance assessment. Topics include learning of distributions, hypothesis testing (including multiple comparison procedures), linear and nonlinear regression and prediction, classification, time series, uncertainty quantification, model validation, causal inference, optimization, and decisions. Computational case studies and projects drawn from applications in finance, sports, engineering, and machine learning life sciences. Students taking graduate version complete additional assignments. Recommended prerequisite: 18.06.
6.482 Modeling with Machine Learning: from Algorithms to Applications (NEW)
Prereqs: Calc II (GIR) and 6.0001; Coreq
Units: 3-0-3
Focuses on modeling with machine learning methods with an eye towards applications in engineering and sciences. Introduction to modern machine learning methods, from supervised to unsupervised models, with an emphasis on newer neural approaches. Emphasis on the understanding of how and why the methods work from the point of view of modeling, and when they are applicable. Using concrete examples, covers formulation of machine learning tasks, adapting and extending methods to given problems, and how the methods can and should be evaluated. Students taking graduate version complete additional assignments. . Enrollment may be limited.
6.644 Principles and Applications of Quantum Optics: Fundamentals and Emerging Technologies
Prereqs: 8.04 or 8.05, 6.013 or 6.007 or 8.07 or 8.03 or 2.71
Units: 3-0-9
This subject qualifies as either an Applied Physics or Materials, Devices and Nanotechnology concentration subject, but not both. This course covers fundamental concepts of quantum optics and quantum electrodynamics, with an emphasis on quantum information technologies – computing, precision measurement, and communications – as well as applications in nanophotonic devices. Topics include the quantization of the electromagnetic field; quantum states of light including coherent and squeezed states; interaction between light an atoms / quantum electrodynamics (QED); optical resonators and cavity QED; quantum theory of lasers; and applications including low-threshold, ultrafast lasers, quantum key distribution, precision measurement, and quantum computing. A project component includes designing a photonic integrated circuit – and for top designs to be taped out at a leading silicon photonics foundry!
6.645 Physics and Engineering of Superconducting Qubits (meets with 8.582)
Prereqs: 6.728 or 8.06 or equivalent
Units: 3-0-9
This subject qualifies as an Applied Physics engineering concentration subject. This course introduces the physics and engineering of superconducting qubits for quantum information processing for graduate and upper-level undergraduate students. Topics will include (1) an introduction to superconductivity and Hamiltonian engineering; (2) superconducting qubits, cavities, and microwave cavity quantum electrodynamics; (3) the theory and microwave engineering of qubit control and measurement; (4) noise, decoherence, dynamical error mitigation; (5) microwave photons, squeezing, and quantum-limited amplification; (6) survey of other solid-state qubit modalities, including semiconductor quantum dots and majorana zero modes; and (7) experimental fault tolerance and quantum error detection. The course will include both classroom lectures, tutorials, homework sets, and hands-on lab practicum with superconducting qubits.
6.802 Computational Systems Biology: Deep Learning in the Life Sciences
Prereqs: (7.05 and (6.0002 or 6.01)) or permission of instructor
Units: 3-0-9
Presents innovative approaches to computational problems in the life sciences, focusing on deep learning-based approaches with comparisons to conventional methods. Topics include protein-DNA interaction, chromatin accessibility, regulatory variant interpretation, medical image understanding, medical record understanding, therapeutic design, and experiment design (the choice and interpretation of interventions). Focuses on machine learning model selection, robustness, and interpretation. Teams complete a multidisciplinary final research project using TensorFlow or other framework. Provides a comprehensive introduction to each life sciences problem, but relies upon students understanding probabilistic problem formulations. Students taking graduate version complete additional assignments.
6.859 Interactive Data Visualization (NEW Previously 6.894)
Prereqs: 6.031
Units: 3-0-9
This subject qualifies as Graphics and HCI concentration subject. Interactive visualization provides a means of making sense of a world awash in data. Covers the techniques and algorithms for creating effective visualizations, using principles from graphic design, perceptual psychology, and cognitive science. Short assignments build familiarity with the data analysis and visualization design process, and a final project provides experience designing, implementing, and deploying an explanatory narrative visualization or visual analysis tool to address a concrete challenge.
6.874 Computational Systems Biology: Deep Learning in the Life Sciences
Prereqs: (7.05 and (6.0002 or 6.01)) or permission of instructor
Units: 3-0-9
Presents innovative approaches to computational problems in the life sciences, focusing on deep learning-based approaches with comparisons to conventional methods. Topics include protein-DNA interaction, chromatin accessibility, regulatory variant interpretation, medical image understanding, medical record understanding, therapeutic design, and experiment design (the choice and interpretation of interventions). Focuses on machine learning model selection, robustness, and interpretation. Teams complete a multidisciplinary final research project using TensorFlow or other framework. Provides a comprehensive introduction to each life sciences problem, but relies upon students understanding probabilistic problem formulations. Students taking graduate version complete additional assignments.
6.881 Optimization for Machine Learning
Prereqs: 18.06, 6.036; 6.041; 6.255
Units: 3-0-9
This subject qualifies as an Artificial Intelligence concentration subject. Covers topics in optimization inspired by machine learning. Particular emphasis is laid on large-scale optimization as well as non-convex optimization models, theory, and algorithms. The focus is on theory with an eye for practical value. Exposes students to research questions in the area of optimization.
6.883 Data-Driven Decision Making and Society
Prereqs: Mathematical background at the level of 6.042/18.062 or equivalent; Machine learning background at the level of 6.036 or equivalent
Units: 3-0-9
This subject qualifies as an Artificial Intelligence concentration subject. Discusses how the broad deployment of the data-driven decision-making techniques impacts society. Surveys some of the key challenges, non-obvious interactions, undesirable feedback loops and unintended consequences that arise in this context. Topics covered will include data-driven approaches to criminal justice and predictive policing, use of data-driven decision making in social media, and the importance of the data provenance and dataset ecology. The class will involve extensive student-led in-class discussions and reading of the related research literature.
6.884 Learning for Control / Computational Sensorimotor Learning
Prereqs: 6.036, 6.867, or permission of instructor
Units: 3-0-9
This subjects qualifies as an Artificial Intelligence concentration subject. Introduces the fundamental algorithmic approaches for constructing agents that learn to act in their environment from raw sensory observations. Topics include imitation learning, observation learning, self-supervised learning, reinforcement learning, inverse reinforcement learning, model learning from raw sensory observations. The course will also provide an overview of practical learning based approached used for navigation and robotic manipulation. A significant portion of the course will be devoted to reading research papers.
6.886 Algorithm Engineering
Prereqs: 6.046, 6.172
Units: 3-0-9
This subject counts as a Computer Systems concentration subject. This is a research-oriented course on algorithm engineering, which will cover both the theory and practice of algorithms and data structures. Students will learn about models of computation, algorithm design and analysis, and performance engineering of algorithm implementations. We will study the design and implementation of sequential, parallel, cache-efficient, external-memory, and write-efficient algorithms for fundamental problems in computing. Many of the principles of algorithm engineering will be illustrated in the context of parallel algorithms and graph problems. Students will read and present research papers, write paper reviews, complete assignments that involve both theory and implementation, participate in classroom discussions, and complete a semester-long research project. Class time will consist of lectures, student presentations, and group project meetings. This course is suitable for graduate students or advanced undergraduates who have taken 6.046 and 6.172. Mathematical maturity and familiarity with algorithm analysis and performance engineering will be assumed.
6.S00 Introduction to Programming, Computer Science, and Computational Modeling
Prereqs: None
Units: 3-0-9
Combines the material in 6.0001 and 6.0002. The first half is an introduction to computer science and programming for students with limited programming experience. Students develop skills to program and use computational techniques to solve problems. Topics include the notion of computation, Python, simple algorithms and data structures, testing and debugging, and algorithmic complexity. The second half provides an introduction to using computation to understand real-world phenomena. Topics include plotting, stochastic programs, probability and statistics, random walks, Monte Carlo simulations, modeling data, optimization problems, and clustering.
6.S062 Fundamentals of Music Processing (meets with 21M.387)
Prereqs: 6.003, 6.01, and 21M.051
Units: 3-0-9
Analyzes recorded music in digital audio form using advanced signal processing and optimization techniques to understand higher-level musical meaning. Covers fundamental tools like windowing, feature extraction, discrete and short-time Fourier transforms, chromagrams, and onset detection. Addresses analysis methods including dynamic time warping, dynamic programming, self-similarity matrices, and matrix factorization. Explores a variety of applications, such as event classification, audio alignment, chord recognition, structural analysis, tempo and beat tracking, content-based audio retrieval, and audio decomposition. Enrollment limited.
6.S063 Principles and Applications of Quantum Optics: Fundamentals and Emerging Technologies
Prereqs: 8.04 or 8.05, 6.013 or 6.007 or 8.07 or 8.03 or 2.71
Units: 3-0-9
This subject qualifies as either an Applied Physics or Materials, Devices and Nanotechnology concentration subject, but not both. This course covers fundamental concepts of quantum optics and quantum electrodynamics, with an emphasis on quantum information technologies – computing, precision measurement, and communications – as well as applications in nanophotonic devices. Topics include the quantization of the electromagnetic field; quantum states of light including coherent and squeezed states; interaction between light an atoms / quantum electrodynamics (QED); optical resonators and cavity QED; quantum theory of lasers; and applications including low-threshold, ultrafast lasers, quantum key distribution, precision measurement, and quantum computing. A project component includes designing a photonic integrated circuit – and for top designs to be taped out at a leading silicon photonics foundry!
6.S078 Circuits and Electronics (Lab edition)
Prereqs:
Units: 3-2-7 (6.002); 0-2-1 (6.S078)
If you are interested in electronics, and have not taken 6.002 before, please considering taking the class this term. It will be a lot of fun and it will provide you with the right foundation to get started in this exciting discipline. We will send a USB-instrumentation kit to each student for you to have access to a 2-channel oscilloscope, 2 signal generators, a power supply and many more key electronics tools from home. This will be complemented with a large parts kit with lots of interesting chips and electronic modules. As the logistics for this are more involved than in regular years, we would appreciate if you could register/pre-register as soon as possible. , you can register this term for 6.S078, a 3 unit lab-only class, which will allow you to receive the instrumentation kit and do the 6.002 labs during the regular 6.002 lab schedule on Fridays. We will make sure to have enough office hours to accommodate different time zones and classes. Prereq: ; U (Fall, Spring) 3-2-7 units. REST Fundamentals of linear systems and abstraction modeling through lumped electronic circuits. Linear networks involving independent and dependent sources, resistors, capacitors and inductors. Extensions to include nonlinear resistors, switches, transistors, operational amplifiers and transducers. Dynamics of first- and second-order networks; design in the time and frequency domains; signal and energy processing applications. Design exercises. Weekly laboratory with microcontroller and transducers.
6.S079 Superconducting Classical and Quantum Circuits -CANCELED.
Prereqs: 6.002 and 6.0001 or equivalent (6.013 highly recommended)
Units: 9
Introduction to quantum mechanics using circuits for students with no background knowledge. Students will learn quantum theory in the context of electrical circuits. Topics will include wavefunctions, operators and quantum measurement, the uncertainty principle, the Schrodinger equation, qubits, and quantization of the electromagnetic field.  To support teaching of quantum theory, superconducting circuits will be taught, including flux quantization and the Josephson junction.  Python will be used extensively.
6.S080 Principles of Modeling, Simulations and Control for Electric Energy Systems (meets with 6.247)
Prereqs:
Units: 4-0-8
The graduate version counts as a subject in the Control Concentration. This course offers modeling principles of modern electric power systems starting from a brief review of their structure and their physical components. In particular, a novel unified modeling in energy/power dynamical space  is  introduced  to  conceptualize dynamics of interactions of complex multi-physicals components. No specialized knowledge of physical components is required.  This modeling sets a basis for  analysis, computation, sensing, control, power electronics, optimization and market design concepts. The course  prepares students for working on applying many novel methods and technologies, ranging from computer methods,  power electronics control,  for designing and operating more reliable, secure, and efficient electric energy systems. Students interested in both applied physics and signals and systems should consider taking this subject. Once the fundamentals of today's power systems are understood, it becomes possible to consider the role of smart electric power grids and power electronics-control  in enabling evolution of future electric energy systems. Integration of intermittent energy resources into the existing grid by deploying distributed sensors and actuators at the key locations throughout the system (network, energy sources, consumers) and changes in today's Supervisory Control and Data Acquisition (SCADA) for better performance become well-posed problems of modeling, sensing and controlling complex dynamic systems. This opens opportunities to many innovations toward advanced sensing and actuation for enabling better physical performance. Modeling, sensing and control fundamentals for possible next generation SCADA in support of highly distributed operations and design are introduced. Most of the concepts will be illustrated using homegrown Scalable Electric Power System Simulator (SEPSS).
6.S082 Introduction to Computational Science and Engineering (also under 16.901, 18.S190)
Prereqs: 6.0001 or permission of instructor
Units: 3-0-3
Provides an introduction to computational algorithms for understanding of scientific phenomena and designing of engineering systems. Topics include computational algorithms to: simulate time-dependent phenomena;  optimize and control applications from science and engineering; and quantify uncertainty in problems involving randomness, including an introduction to probability and statistics. Credit cannot also be given for 6.0002. Combination of 6.0001 and this subject counts as a REST subject.
6.S083 Computational Thinking (meets with 18.S191)
Prereqs: 6.0001 or programming experience,
Units: 3-0-9
This class serves as an introduction to computational thinking, weaving the skills needed to participate in modern undergraduate open source research.  We use the to approach real-world problems in varied areas applying data analysis, computational and mathematical modeling. In this class you will learn computer science, software, algorithms, applications, and mathematics as an integrated whole.    Past applications have included image processing, epidemic modelling, and climate science.  Successful students often go on to UROP positions and apply computational thinking skills to classes where computation is not part of the curriculum. Class will build upon the . Guest Lectures may include: Grant Sanderson (3-Blue-1-Brown), James Schloss, John Urschel, Huda Nassar, Henri Drake
6.S911 Software Construction in Typescript: Course Development
Prereqs: 6.009 and prior Java programming experience
Units: 5-0-10
This course substitutes for 6.031 in EECS degree requirements and EECS course prerequisites. This special subject, taught in tandem with 6.031, uses Typescript as the language of the course, where 6.031 is taught with Java.  Typescript is a statically-typed version of Javascript, which is widely used for web programming. This "6.031 Typescript" pilot course will share the same course topics as the 6.031 Java course, and move at the same pace with similar problem sets, quizzes, and group project. The essential difference will be the programming language used.  See the course description for 6.031 for the concepts covered by both 6.031 Typescript and 6.031 Java: Like 6.031, this course has required class meetings, including nanoquizzes and small-group exercises, at the scheduled MWF 11am-12:30 time.  The two courses will generally meet in separate online spaces, but will sometimes meet together when the topic is language-independent.  There will be an accommodation for students living in distant incompatible time zones.
6.S975 Global Business of Quantum Computing (meets with 15.S20)
Units: 2-0-1
Quantum Computing (QC) offers the potential to solve certain types of problems for human kind; problems that are today, prohibitive for traditional computing. It could lead to exciting breakthroughs in areas such as improved efficiency in logistics chains, increased battery performance for cars or helping to find new pharmaceutical treatments. But what is hype and what is realistic given the development of the field in recent years and its current trajectory? What role do scientists, engineers, managers, entrepreneurs, policy makers and other stakeholders play? This course provides multiple viewpoints including academic, industry and governmental. You will hear from leading MIT faculty and pioneering practitioners in the field. We will demystify topics such as trapped ion and superconducting qubits.
6.S979 Multi-Stakeholder Negotiation for Technical Experts
Prereqs: Permission of Instructor
Units: 2-0-4
Engineering requires negotiating with many stakeholders: internally and externally. All technical innovators, leaders, and members of diverse teams, need to align efforts and overcome differences. Learn experientially the strategies and proven techniques that improve communications, relationships, and decision-making in groups - using simulations, role-plays, case studies and video analysis. Targeted to graduate students in engineering and joint engineering-business program such as SDM, IDM, and LGO. No prior education or experience in negotiation is required.
Fall 2020
6.881 Intelligent Robot Manipulation
Prereqs: 6.006 and 6.041 and (18.06 or 2.087)
Units: 3-0-9
This subject counts as an Artificial Intelligence concentration subject. Introduces the fundamental algorithmic approaches for creating robot systems that can autonomously manipulate physical objects in unstructured environments such as homes and warehouses.  Topics include robot kinematics and trajectory generation, collision-free motion planning, sensing and estimation, and planning in the presence of uncertainty.
6.882 Structured Models for Artificial Intelligence: Course Development
Prereqs: 6.036 and 6.006 and (6.034 or 6.008) and (6.008 or 6.041)   or equivalent
Units: 3-0-9
This subject counts as an Artificial Intelligence concentration subject. We will study structured models, including first-order logic, graphical models, action-planning models (geometric, probabilistic, and symbolic), and syntactic and semantic models for natural language.  For each of these model classes, we will study the basic representation and inference algorithms as well as techniques for learning them from data.  An objective is to develop a simulation environment and a series of student assignments that implement and experiment with the techniques we study in the context of controlling an autonomous intelligent agent. These assignments will form the basis of a curriculum for a new advanced undergraduate subject in artificial intelligence. Attendance required at synchronous meetings, but timing may be adjusted to accommodate time zones of participants. Please see and fill out form to apply for a place.
6.883 Meta Learning
Prereqs: 6.036 or 6.867
Units: 3-0-9
This subject counts as an Aritificial Intelligence concentration subject. Traditionally, humans develop new machine learning algorithms and learn topics by reading, watching videos, and taking courses. Meta learning or learning to learn, has allowed machines to learn to learn new algorithms; discover physics formulas or symbolic expressions that match data; develop systems for automatic model discovery; teach machines to read, learn and reason; ace science exams at the high school level; and solve the SAT. In this graduate level course students develop components of a program that participates in an undergraduate course as an AI. The course covers advanced deep learning topics used for  learning to learn, including: automated machine learning, meta-learning, deep learning on graphs, transformers, knowledge graphs, symbolic regression, program induction, Bayesian learning, and deep reinforcement learning. The highlight of the course is participating in building a system that passes 6.036 Introduction to Machine Learning as a virtual student: teaching a machine how to learn machine learning. The system will solve very specialized tasks: learning 6.036 from course material: notes, exercises, exams, solutions, labs, etc., and will participate in 6.036 by solving exercises, quizzes, labs, exams, and ultimately pass the course as a virtual online student, or 6.036AI.
6.884 Neurosymbolic Models for Natural Language Processing
Prereqs: 6.864 or 9.19
Units: 2-0-10
This subject qualifies as an Artificial Intelligent concentration subject. Deep neural networks have become the dominant modeling tool in most language processing applications, outperforming symbolic approaches based on learned grammars and state machines at many tasks. However, human language users (and, by design, symbolic models) exhibit a capacity for systematic generalization that remains out of reach of standard neural models. This seminar will survey neurosymbolic approaches to language processing, aiming to understand how we can build neural models with latent or implicit symbolic structure that combine the advantages of both modeling frameworks.
6.888 Secure Hardware Design
Prereqs: 6.004 or equivalent; 6.823 is recommended
Units: 3-0-9
This subject counts as a Computer Systems concentration subject. The course aims to provide an introduction to hardware system design with security as the primary goal. Topics include micro-architecture side channels, speculative execution attacks and defenses, enclave system design, architecture support for memory safety, RowHammer attacks, attacks on GPU and accelerators, physical side channel attacks and defenses, etc. Students are required to complete a lab assignment to design and implement a cache-based covert channel attack, and an open-ended design project. Attendance required at synchronous meetings.
6.893 Protecting Privacy with Cryptographic Systems
Prereqs: 6.033 and 6.857 or 6.875, or equivalent introductory cryptography subject
Units: 3-0-9
This subject counts as a Theoretical Computer Science concentration subject. This course will focus on using cryptographic techniques to build privacy-preserving computer systems. We will cover both recent developments in cryptographic protocols (for private information retrieval, private set intersection, and multiparty computation), and state-of-the-art deployed systems for private web browsing, private advertising, and privacy-preserving machine learning. Throughout the semseter, invited speakers from civil society, industry, and government will share their experiences with deploying and using privacy technology in practice.
6.S00 Introduction to Programming, Computer Science, and Computational Modeling
Prereqs: None
Units: 3-0-9
Combines the material in 6.0001 and 6.0002. The first half is an introduction to computer science and programming for students with limited programming experience. Students develop skills to program and use computational techniques to solve problems. Topics include the notion of computation, Python, simple algorithms and data structures, testing and debugging, and algorithmic complexity. The second half provides an introduction to using computation to understand real-world phenomena. Topics include plotting, stochastic programs, probability and statistics, random walks, Monte Carlo simulations, modeling data, optimization problems, and clustering.
6.S062 Applied Quantum and Statistical Physics (meets with 6.728)
Prereqs: 18.06
Units: 4-0-8
Elementary quantum mechanics and statistical physics. Introduces applied quantum physics. Emphasizes experimental basis for quantum mechanics. Applies Schrodinger's equation to the free particle, tunneling, the harmonic oscillator, and hydrogen atom. Variational methods. Elementary statistical physics; Fermi-Dirac, Bose-Einstein, and Boltzmann distribution functions. Simple models for metals, semiconductors, and devices such as electron microscopes, scanning tunneling microscope, thermonic emitters, atomic force microscope, and more. Some familiarity with continuous time Fourier transforms recommended.
6.S063 Sports Technology: Engineering & Innovation (meets with 2.98/2.980)
Prereqs: None
Provides an intense project-based learning experience sponsored and mentored by leaders in the sports industry. Projects explore and potentially kickoff larger research and/or entrepreneurial initiatives. Includes visits by leaders in the field to discuss various industries, career pathways, and opportunities for innovation in the field. Projects explore and potentially kickoff larger research and/or entrepreneurial initiatives.
6.S076 Neural Circuits for Cognition (meets with 9.49)
Prereqs: 9.40, 18.06, or permission of instructor
Units: 3-0-9
Takes a computational approach to examine circuits in the brain that perform elemental cognitive tasks: tasks that are neither directly sensory nor directly motor in function, but are essential to bridging from perception to action. Covers circuits and circuit motifs in the brain that underlie computations like integration, decision-making, spatial navigation, inference, and other cognitive elements. Students study empirical results, build dynamical models of neural circuits, and examine the mathematical theory of representations and computation in such circuits. Considers noise, stability, plasticity, and learning rules for these systems. Students taking graduate version complete additional assignments.
6.S077 Entrepreneurship for Collaborative Machine Intelligence
Units: 2-0-1
We believe that in the future, humans and machines (robots, computers, etc.) do not need to be in competition with one another. To the contrary, we envision a world in which humans and intelligent machines work together collaboratively to achieve what neither can do alone.  The class will be held in conjunction with the new MIT Collaborative Intelligence Entrepreneurship Competition, which will bring together students from multiple disciplines across the Institute to advance innovative ideas that leverage artificial intelligence and computational capabilities with the explicit aim of empowering humankind. The overarching goal of the competition is to launch products/new ventures ready for investment and commercialization.
6.S078 Fixed Parameter and Fine-grained Computation
Prereqs: 6.006, 6.042 and one of 6.045 or 6.046, or permission of instructor
Units: 3-0-9
An overview of the theory of parameterized algorithms and the emergent "problem-centric" theory of fine-grained complexity, both of which reconsider how to measure the difficulty and feasibility of solving computational problems. Topics include: fixed-parameter tractability (FPT) and its characterizations, the W-hierarchy (W[1], W[2], W[P], etc), 3SUM-hardness, APSP-equivalences, SETH hardness of problems, as well as connections to circuit complexity and other aspects of computing. Extended description follows: This course consists of two parts, both of which are intensively active research areas in theoretical computer science. The first part deals with problem parameterizations. Many problems we want to solve are often NP-hard or worse, but they need to be solved anyway. Over the years, multiple paradigms for coping with NP-hardness have been introduced by either relaxing the problem or strengthening the computational model. Within the last 20 years, a new paradigm arose where one measures the time complexity of an algorithm not just in terms of the but also a small side . A priori, the parameter can be anything, but the interesting case is when complex instances of the problem still have relatively small parameter values. The goal is to identify interesting parameterizations of hard problems where we can design algorithms running in time polynomial in the input length but possibly exponential (or worse) in the small parameter. Such an algorithm is called "fixed-parameter tractable". The first part of the course will develop techniques for designing efficient fixed-parameter algorithms, and for showing that for various problems such algorithms are unlikely to exist. The second part of the course focuses not on "hard" problems but rather problems that have already been deemed "easy", i.e. those that are known to have polynomial time algorithms and thus for which NP-hardness says nothing. The best known algorithms for many easy problems have high runtimes and are rarely used in practice. Improving these running times has been a longstanding open problem, with little to no progress. It is thus completely plausible that these algorithms are optimal. However, developing unconditional lower bounds seems nearly impossible with current techniques. A new, conditional theory of hardness has recently been developed, based around several plausible conjectures. The theory develops  interesting reductions between seemingly very different problems, showing that the reason why the known algorithms have been difficult to improve is likely the same, even though the known runtimes of the problems of interest might be very different. The second part of the course will deal with this “fine-grained complexity” theory. We will see many reductions, and also connections to classical circuit complexity theory. The course will be heavily research-oriented with lots of open problems, and it will introduce you to new ways of thinking about existing theory.
6.S079 Superconducting Classical and Quantum Circuits
Prereqs: 6.002 and 6.0001 or equivalent (6.013 highly recommended)
Units: 9
Introduction to quantum mechanics using circuits for students with no background knowledge. Students will learn quantum theory in the context of electrical circuits. Topics will include wavefunctions, operators and quantum measurement, the uncertainty principle, the Schrodinger equation, qubits, and quantization of the electromagnetic field.  To support teaching of quantum theory, superconducting circuits will be taught, including flux quantization and the Josephson junction.  Python will be used extensively.
6.S080 Hacking the Future: The Fall of COVID (also 15.S19, 2.S19)
Prereqs: None
Units: 3-6-3
Hacking the Future (“HF”) is a new, cross-disciplinary, project-based course open to all students at MIT, as well as at Wellesley and Harvard. HF has been co-founded by faculty from Engineering, Global Economics and Management, Entrepreneurship and Political Science to help students prepare for a future of increasingly rapid change and associated social disruption. It is a hands-on course that embodies – a practical application of proven frameworks and processes to help solve or ameliorate the most intractable problems in the world today. In this course, students will learn how to help address the aforementioned problems. They will do this by applying a proven disciplined entrepreneurial framework and process combined with engineering tools and thinking. Students will also learn how to integrate public policy considerations to ensure that their efforts have maximum impact. In this inaugural semester of the course, students will identify problems they want to solve related to COVID-19, in all of its dimensions.
6.S081 Introduction to Operating Systems
Prereqs: 6.004
Units: 3-6-3
This fall 6.S081 will be taught as a stand-alone AUS subject, separately from 6.828 (Operating System Engineering).  6.S081 will provide an introduction to operating systems, while 6.828 will be offered as a graduate-level seminar-style class.  6.828 will assume you have taken 6.S081 or an equivalent class. The topics covered in 6.S081 include: virtual memory; file systems; threads; context switches; kernels; interrupts; system calls; interprocess communication; coordination, and interaction between software and hardware. A multi-processor operating system for RISC-V is used to illustrate these topics. Individual laboratory assignments involve extending an operating system kernel, for example to support sophisticated virtual memory features and network protocols. Programming experience is a prerequisite, ideally in the C language. 6.S081 was offered last year for the first time and received positive reviews. Prof. Kaashoek and Morris are looking forward to teaching it this fall!
6.S082 Introduction to Computational Science and Engineering (also under 16.901, 18.S190)
Prereqs: 6.0001 or permission of instructor
Units: 3-0-3
Provides an introduction to computational algorithms for understanding of scientific phenomena and designing of engineering systems. Topics include computational algorithms to: simulate time-dependent phenomena;  optimize and control applications from science and engineering; and quantify uncertainty in problems involving randomness, including an introduction to probability and statistics. Credit cannot also be given for 6.0002.
6.S084 Linear Algebra and Optimization
Prereqs: 18.02
Units: 5-0-7 (updated)
Joint with 18.S096. Pilot offering. Unified introduction to linear algebra and optimization, their interconnections, and applications throughout science and engineering. Specific topics include vectors, matrices, eigenvalues, singular values, least-squares, convex optimization, linear/quadratic programming, gradient descent, Newton’s method.  Viewpoint will emphasize conceptual, geometric, and computational aspects. Applications from many domains, including networks, signal processing, and machine learning. Relation to 18.06: This course will count towards the linear algebra requirement for math majors! Also, since the material will overlap substantially with 18.06 it is strongly advised that you do not take it if you have already taken 18.06. They are not classified by the registrar as classes with essentially similar content, but individual majors (e.g. math and eecs) may treat them as such
6.S899 Academic Job Search Seminar
Prereqs: Permission of Instructor
Units: 2-0-4
This seminar is intended for EECS senior graduate students and post-docs who plan to enter the academic job market this Fall.  The seminar will explore what it is like to be a junior faculty member and what it takes to get a faculty job. You will hear from multiple junior faculty how they managed to successfully navigate the job search and from the MIT EECS search committee members on how the search process works internally.  We are also inviting search committee members from multiple universities for an “Academic Career Fair Day”. You’ll get to hear from them and possibly have short one-on-one “pre-interview” meetings with some. The EECS Communication Lab will conduct interactive workshops on the components of a faculty application. You will be required to complete multiple projects including writing a CV, research and teaching statements, giving oral presentations on your research, and participating in other academic job market-related activities.
6.S974 Entrepreneurship for Collaborative Machine Intelligence
Units: 2-0-1
We believe that in the future, humans and machines (robots, computers, etc.) do not need to be in competition with one another. To the contrary, we envision a world in which humans and intelligent machines work together collaboratively to achieve what neither can do alone.  The class will be held in conjunction with the new MIT Collaborative Intelligence Entrepreneurship Competition, which will bring together students from multiple disciplines across the Institute to advance innovative ideas that leverage artificial intelligence and computational capabilities with the explicit aim of empowering humankind. The overarching goal of the competition is to launch products/new ventures ready for investment and commercialization.
6.S977 Sports Technology: Engineering & Innovation (meets with 2.98/2.980)
Prereqs: None
Provides an intense project-based learning experience sponsored and mentored by leaders in the sports industry. Projects explore and potentially kickoff larger research and/or entrepreneurial initiatives. Includes visits by leaders in the field to discuss various industries, career pathways, and opportunities for innovation in the field. Projects explore and potentially kickoff larger research and/or entrepreneurial initiatives.
6.S978 Negotiation and Influenced Skills for Technical Leaders
Prereqs: none
Units: 2-0-4
The course is designed around the premise that the ability to negotiate is essential to being an effective leader in technology and engineering environments. The overall goal of this course is to provide graduate engineering students with a repertoire of negotiation strategies and practices that pertain to the problems and conflict situations faced by technical leaders who tend to be lead without formal authority. We will introduce research-based approaches and analytical frameworks with a learning design will enable students to develop negotiation skills experientially and reflectively through simulations, role plays, and case studies.
6.S979 Quantum Nonlocality
Prereqs: 2.111, 8.371, or equivalent
Units: 3-0-9
Explores the phenomenon of nonlocality, one of the unique features distinguishing quantum mechanics from classical physics, and its applications to quantum (and classical) computation. Topics include Bell inequalities, hidden variable theories and contextuality, the convex geometry of quantum correlations, nonlocal games and interactive proofs, and applications of super-quantum correlations to classical cryptography. Will assume basic knowledge of quantum computing (states, measurements, and quantum circuits) at the level of 2.111.
ES.S40 How Science Can Enable a More Cooperative Future
Prereqs: none
Units: 3-0-6
This is a "big think" course about the future of technology and society.  It has the unifying theme of the tradeoff between cooperation and competition. The course covers a variety of topics in computer science, biology, psychology, philosophy, mathematics, economics, political science, and more. We present our thesis that technological advancements like artificial intelligence and personal manufacturing will shift the tradeoff, increasing the value of cooperation and reducing the value of competition. That will provide an unprecedented opportunity to redesign our social structures in a more cooperative and sustainable way. We provide concrete proposals for how this might be done for the central institutions of the economy, government, justice, and education. We welcome alternative proposals, as well as critiques and disagreements.  We see this course as a "design workshop" for a future society.
Spring 2020
6.246 Reinforcement Learning: Foundations and Methods
Units: 4-0-8
This subject counts as a Control concentration subject.  Reinforcement learning (RL) as a methodology for approximately solving sequential decision-making under uncertainty, with foundations in optimal control and machine learning. Finite horizon and infinite horizon dynamic programming, focusing on discounted Markov decision processes. Value and policy iteration. Monte Carlo, temporal differences, Q-learning, and stochastic approximation. Approximate dynamic programming, including value-based methods and policy space methods. Special topics at the boundary of theory and practice in RL. Applications and examples drawn from diverse domains. While an analysis prerequisite is not required, mathematical maturity is necessary. Enrollment limited : There is a large class participation component. In terms of prerequisites, students should be comfortable at the level of receiving an A grade in probability (6.041 or equivalent), machine learning (6.867 or equivalent), convex optimization (from 6.255 / 6.036 / 6.867 or equivalent), linear algebra (18.06 or equivalent), and programming (Python). Mathematical maturity is required. This is NOT a deep RL course. This class is most suitable for PhD students who have already been exposed to the basics of reinforcement learning and deep learning (as in 6.036 / 6.867 / 1.041), and are conducting or have conducted research in these topics. : This course will be half theoretical foundations of RL, and half spending time exploring the boundary between theory and practice. This new course is meant to be an advanced and experimental graduate course, to explore possible alternative ways and perspectives on studying reinforcement learning.
6.347 Advanced Topics in Signal and Systems: Information Acquisition and Processing
Units: 3-0-9
6.876 Graduate Topics in Cryptography and Privacy
Prereqs: 6.875
Units: 3-0-9
A graduate seminar on advanced topics in cryptography research today, including updatable cryptography, basing cryptography on fine-grained complexity, information theoretical security, delegation of computation with application to machine learning, topics at the intersection of cryptography and quantum computing, formalizing privacy policy and regulations. The course will be streamed live at both MIT and Berkeley.
6.881 Optimization for Machine Learning
Prereqs: 18.06, 6.036; 6.041; 6.255
Units: 3-0-9
This subject qualifies as an Artificial Intelligence concentration subject. Covers topics in optimization inspired by machine learning. Particular emphasis is laid on large-scale optimization as well as non-convex optimization models, theory, and algorithms. The focus is on theory with an eye for practical value. Exposes students to research questions in the area of optimization.
6.882 Embodied Intelligence
Prereqs: Required
Units: 3-0-9
This subject counts as an Artificial Intelligence concentration subject. The goal is to address the broad problem of designing a general-purpose intelligent robot. To address this question, a very broad background is required. We propose to spend the first 4 weeks covering important background topics: each week will combine a foundational tutorial reading with one or two state-of-the-art research results. In the subsequent weeks, we will address topics that cut across the basic disciplinary boundaries, typically combining two or more areas, with the work focused on studying and discussing current research in the relevant area.
6.883 Modeling with Machine Learning: From Algorithms to Applications
Prereqs: 18.02, 6.006 or equivalent; permission of instructors; limited enrollment
Units: 3-0-9
This subject counts as an Artificial Intelligence subject. The course focuses on modeling with machine learning methods with an eye towards applications in engineering and sciences. Students will be introduced to modern machine learning methods, from supervised to unsupervised models, with an emphasis on newer neural approaches. The course focuses on the understanding of how and why the methods work from the point of view of modeling, and when they are applicable. Using concrete examples, the course covers formulation of machine learning tasks, adapting and extending methods to given problems, and how the methods can and should be evaluated
6.884 Computational Sensorimotor Learning
Prereqs: Permission of Instructor
Units: 3-0-9
This subject qualifies as an Artificial Intelligence concentration subject. Introduces the fundamental algorithmic approaches for constructing agents that learn to act in their environment from raw sensory observations. Topics include imitation learning, observation learning, self-supervised learning, reinforcement learning, inverse reinforcement learning, model learning from raw sensory observations. The course will also provide an overview of practical learning based approached used for navigation and robotic manipulation. A significant portion of the course will be devoted to reading research papers and working on a project. Previous work with Machine Learning and Deep Learning is recommended.
6.885 Probabilistic Programming and Artificial Intelligence
Prereqs: Familiarity with programming and probability theory, plus permission of instructors
Units: 3-0-9
This subject qualifies as a Computer Systems concentration subject for PhD students. It is an AAGS for MEng students (fulfilling either the computer systems or AI concentrations), and can be used as an AUS2 or an EECS elective for undergrads in 6-1, 6-2, and 6-3. Project-based introduction to probabilistic programming, an emerging field at the intersection of programming languages, probability theory, and artificial intelligence. Shows how to use probabilistic programs to implement and integrate models and inference algorithms from multiple paradigms. Modeling approaches include generative models, neural networks, symbolic programs, hierarchical Bayesian models, causal Bayesian networks, graphics engines, and physics simulators. Inference approaches include Markov chain and sequential Monte Carlo methods, optimization, variational inference, and deep learning. Hands-on projects, supported via a flipped classroom, teach students the fundamentals of probabilistic programming, as well as how to use probabilistic programming to solve problems in data analysis and computer vision, such as forecasting time series, exploring and cleaning multivariate data, and real-time visual SLAM using depth cameras. Also shows how to write probabilistic programs that learn the structure and parameters of probabilistic programs from data, and introduces new probabilistic programming-based AI architectures for expert systems that help people analyze and curate data and for common-sense scene understanding.
6.886 Algorithm Engineering
Prereqs: 6.046, 6.172
Units: 3-0-9
This subject counts as a Computer Systems concentration subject. This is a research-oriented course on algorithm engineering, which will cover both the theory and practice of algorithms and data structures. Students will learn about models of computation, algorithm design and analysis, and performance engineering of algorithm implementations. We will study the design and implementation of sequential, parallel, cache-efficient, external-memory, and write-efficient algorithms for fundamental problems in computing. Many of the principles of algorithm engineering will be illustrated in the context of parallel algorithms and graph problems. Students will read and present research papers, write paper reviews, complete assignments that involve both theory and implementation, participate in classroom discussions, and complete a semester-long research project. Class time will consist of lectures, student presentations, and group project meetings. This course is suitable for graduate students or advanced undergraduates who have taken 6.046 and 6.172. Mathematical maturity and familiarity with algorithm analysis and performance engineering will be assumed.
6.887 Introduction to Program Synthesis
Prereqs: 6.009, 6.042
Units: 3-0-9
This subjects counts as an Independent Inquiry subject. The graduate version counts as a Computer Systems concentration subject. The goal of this course is to provide a comprehensive introduction to the field of Software synthesis, an emerging field that sits at the intersection of programming systems, formal methods and artificial intelligence. The course will be divided into three major sections: the first will focus on program induction from examples and will cover a variety of techniques to search large program spaces. The second section will focus on synthesis from expressive specifications and the interaction between synthesis and verification. Finally, the third unit will focus on synthesis with quantitative specifications and the intersection between program synthesis and machine learning. The course will be graded on the basis of three homework assignments and an open ended final project.
6.890 Graph and Matrix Algorithms
Prereqs: Graph Transitive Closure, All Pairs Shortest Paths, Perfect Matching, distance oracles, graph spanners, matrix multiplication algorithms, and a variety of equivalences between problems involving matrix multiplication. Prerequisites
Units: 3-0-9
Description: This subject will qualify as a Theoretical Computer Science concentration subject. Due to the surprisingly fast algorithms for the problem, matrix multiplication is routinely used as a basic building block for algorithms beating the brute-force approach. This course explores a variety of problems, mostly within graph algorithms, and discusses how they can be solved faster using a fast matrix multiplication algorithm. We will also see that although many of these problems provably require the use of matrix multiplication to be solved exactly, sometimes matrix multiplication can be avoided by computing answers approximately, leading to very fast algorithms. Finally, we will discuss most of the known algorithms for matrix multiplication including the Coppersmith-Winograd algorithm and its relatives. Topics include: Graph Transitive Closure, All Pairs Shortest Paths, Perfect Matching, distance oracles, graph spanners, matrix multiplication algorithms, and a variety of equivalences between problems involving matrix multiplication. Prerequisites: 6.046 or the equivalent mathematical maturity.
6.894 Interactive Data Visualization
Prereqs: 6.031
Units: 3-0-9
This subject counts as a Human-Computer Interfaces concentration subject. Interactive visualization provides a means of making sense of a world awash in data. This course covers the techniques and algorithms for creating effective visualizations, using principles from graphic design, perceptual psychology, and cognitive science. Short assignments will build familiarity with the data analysis and visualization design process, and a final project will provide experience designing, implementing, and deploying an explanatory narrative visualization or visual analysis tool to address a concrete challenge.
6.S076 Modeling with Machine Learning: From Algorithms to Applications
Prereqs: 18.02, 6.006 or equivalent; permission of instructors; limited enrollment
Units: 3-0-9
This subject counts as an Artificial Intelligence subject. The course focuses on modeling with machine learning methods with an eye towards applications in engineering and sciences. Students will be introduced to modern machine learning methods, from supervised to unsupervised models, with an emphasis on newer neural approaches. The course focuses on the understanding of how and why the methods work from the point of view of modeling, and when they are applicable. Using concrete examples, the course covers formulation of machine learning tasks, adapting and extending methods to given problems, and how the methods can and should be evaluated
6.S077 Introduction to Data Science
Prereqs: 6.041A
Units: 4-0-8
Introduction to the methodological foundations of data science, emphasizing basic concepts, but also modern methodologies. Learning of distributions and their parameters. Testing of multiple hypotheses. Linear and nonlinear regression and prediction. Classification. Learning of dynamical models. Uncertainty quantification. Model validation. Causal inference. Applications and case studies drawn from electrical engineering, computer science, the life sciences, finance, and social networks
6.S082 Design for the Web: Languages and User Interfaces
Prereqs: 6.009
Units: 3-0-9
Designing and implementing good user interfaces focused on web applications.  Principles and methods of human-computer interaction including human capabilities, design principles, prototyping techniques, and evaluation techniques.  The programming languages of the web---HTML, CSS, and Javascript---their different roles, and the rationales for their widely varying designs. is
6.S083 Introduction to Computational Thinking (Common Ground)
Prereqs: 6.0001
Units: 3-0-3
Provides a unifying introduction to computational thinking for technical and general-purpose applications.  The class is intended to break down traditional walls between computation in science, engineering and computer science with applications from these disciplines. As an example, we will see how to apply differentiable programming to machine learning. The class uses Julia to provide students with a complementary programming language, with an emphasis on modifiable codes and performance. We assume no prior Julia experience, but we will build on Python from 6.0001. Fall 2019 pilot class limited to 20 students, preference for students who did well in 6.0001. Begins October 21.
6.S083 Introduction to Computational Thinking (Common Ground)
Prereqs: 6.0001
Units: 3-0-3
Provides a unifying introduction to computational thinking for technical and general-purpose applications.  The class is intended to break down traditional walls between computation in science, engineering and computer science with applications from these disciplines. As an example, we will see how to apply differentiable programming to machine learning. The class uses Julia to provide students with a complementary programming language, with an emphasis on modifiable codes and performance. We assume no prior Julia experience, but we will build on Python from 6.0001. Preference for students who did well in 6.0001. Begins March 30.
6.S084 Introduction to Program Synthesis
Prereqs: 6.009, 6.042
Units: 3-0-9
This subjects counts as an Independent Inquiry subject. The graduate version counts as a Computer Systems concentration subject. The goal of this course is to provide a comprehensive introduction to the field of Software synthesis, an emerging field that sits at the intersection of programming systems, formal methods and artificial intelligence. The course will be divided into three major sections: the first will focus on program induction from examples and will cover a variety of techniques to search large program spaces. The second section will focus on synthesis from expressive specifications and the interaction between synthesis and verification. Finally, the third unit will focus on synthesis with quantitative specifications and the intersection between program synthesis and machine learning. The course will be graded on the basis of three homework assignments and an open ended final project.
6.S897 Classics of CS
Prereqs: none
Units: 3-0-9
This subject examines papers every computer scientist should have  read, with an emphasis on the period from the 1930s to the 1980s. It  is meant to be a synthesizing experience for advanced students in  computer science: a way for them to see the field as a whole, not  through a survey, but by reliving the experience of its creation,  relating the original work to the field as it exists today. The aim is  to create a unified view of the field by replaying its entire  evolution at an accelerated rate, giving students the opportunity to become sophisticated generalists. Learning occurs mainly through reading and discussion. For a typical class day, students will read two papers (possibly in excerpted form)  and prepare a short diary entry summarizing points they wish to  remember, discuss, or clarify. Class meetings begin with brief remarks from the instructor, followed by structured small group discussions, with students taking turns leading and documenting the discussions,  ending with a full class discussion. We expect that no student will be familiar in advance with all the material, but every student will know some of it, so that by the end of the term everyone will have learned  from everyone else. Some of the authors may visit the class to discuss the circumstances surrounding their early work. Assessment is based on class participation and a final video project in which students will argue for the importance of a paper that was not included in the readings. Harry Lewis is spending sabbatical at MIT Spring Term 2020.   Professor Lewis is known for textbooks in theoretical computer science, and writings on computing, higher education, and technology. He is the Gordon McKay Professor of Computer Science at Harvard University, and was Dean of Harvard College from 1995 to 2003.
6.S899 Democratizing AI through K-12 AI Education for All<
Prereqs: Permission of Instructor
Units: 2-3-7
How can we prepare students with knowledge, skills, and attitudes for future careers that increasingly rely on AI technologies? Otherwise, we risk leaving far too many people behind in the emerging AI-economy -- causing significant societal stress and divisiveness rather than enabling transformative opportunity where everyone can participate in, benefit from, influence our future with
AI.

Inequity of education remains a key barrier to future opportunities and jobs where success depends increasingly on intellect, creativity, and the right skills. While AI is already entering the education system to support students, teachers, or school administration -- it is not currently offered as a topic to be learned until the university level. Just as learning to code has become recognized as a new literacy for the 21st century, students need to also learn about AI given its growing prevalence across industries, institutions, and society on
a global scale.

This weekly project-based class explores the question of “how do we empower middle-school students to learn about AI in a collaborative, hands-on way?” Students taking this course will work in teams to develop constructionist tools and activities to introduce 6th-8th grade learners to important concepts, practices and design principles of artificial intelligence – i.e., how machines think and learn and how to design them in an ethical way. Homework will involve critiques of existing project-based learning curriculum and design of new curriculum modules. Fieldwork will involve working with middle-school students in afterschool programs to evaluate hands-on projects in an iterative cycle of development and refinement with stakeholder input. An important objective of class projects is to effectively integrate ethical design concepts and practices into proposed activities and curriculum in grade-appropriate ways so that students appreciate these issues in the AI-enabled projects they
create.

Example class projects can take the form of developing an AI curriculum module that covers a core AI concept through hands-on projects based on Scratch or App Inventor with integrated services (machine learning, computer vision,
natural language understanding, etc.).

Existing research projects could be translated into compelling hands-on projects that introduce students to exciting AI methods and abilities. Other projects could explore include developing new AI capabilities for mobile devices, training teachers and mentors to support students as they learn about AI, and developing AI-based mentoring
agents to help scale this knowledge and training.

9.S917 Probabilistic Programming and Artificial Intelligence
Prereqs: Familiarity with programming and probability theory, plus permission of instructors
Units: 3-0-9
This subject qualifies as a Computer Systems concentration subject for PhD students. It is an AAGS for MEng students (fulfilling either the computer systems or AI concentrations), and can be used as an AUS2 or an EECS elective for undergrads in 6-1, 6-2, and 6-3. Project-based introduction to probabilistic programming, an emerging field at the intersection of programming languages, probability theory, and artificial intelligence. Shows how to use probabilistic programs to implement and integrate models and inference algorithms from multiple paradigms. Modeling approaches include generative models, neural networks, symbolic programs, hierarchical Bayesian models, causal Bayesian networks, graphics engines, and physics simulators. Inference approaches include Markov chain and sequential Monte Carlo methods, optimization, variational inference, and deep learning. Hands-on projects, supported via a flipped classroom, teach students the fundamentals of probabilistic programming, as well as how to use probabilistic programming to solve problems in data analysis and computer vision, such as forecasting time series, exploring and cleaning multivariate data, and real-time visual SLAM using depth cameras. Also shows how to write probabilistic programs that learn the structure and parameters of probabilistic programs from data, and introduces new probabilistic programming-based AI architectures for expert systems that help people analyze and curate data and for common-sense scene understanding.
6.S975 Seminar Series: Advanced Topics in Signal Processing
Prereqs: 6.341
Units: 3-0-3
This seminar based class is aimed at graduate students interested in the theory and application of Signal Processing in research. Meeting once a week, we will invite researchers from various institutions to present novel and exciting results, while the first hour will be a student-driven review of seminal results related to the talk.
6.S978 Privacy Legislation in Practice: Law and Technology
Prereqs: Permission of Instructor
Units: 2-0-10
This course will be taught jointly by faculty from MIT and Georgetown University Law School and classes will meet via videoconference. The aim of the course is to have law students and engineering students jointly explore in-depth current issues in privacy policy and to propose policy solutions in the form of legislation that could be adopted by state governments. The course will pair law students at Georgetown Law with engineering students at MIT to form interdisciplinary teams, each consisting of two law students and two MIT students. Each team will be assigned a specific question of public policy, and over the course of the semester the team will be responsible for preparing a detailed legal assessment of the policy question, the technological frameworks and challenges associated with the policy question, and formulating policy and technological recommendations to address the question in the form of draft state legislation.
6.S979 Multi-Stakeholder Negotiation for Technical Experts
Prereqs: Permission of Instructor
Units: 2-0-4
Engineering requires negotiating with many stakeholders: internally and externally. All technical innovators, leaders, and members of diverse teams, need to align efforts and overcome differences. Learn experientially the strategies and proven techniques that improve communications, relationships, and decision-making in groups - using simulations, role-plays, case studies and video analysis. Targeted to graduate students in engineering and joint engineering-business program such as SDM, IDM, and LGO. No prior education or experience in negotiation is required.
Fall 2019
6.247 Principles of Modeling, Simulations and Control for Electric Energy Systems
Prereqs:
Units: 4-0-8
The graduate version counts as a subject in the Control Concentration. This course offers modeling principles of modern electric power systems starting from a brief review of their structure and their physical components. In particular, a novel unified modeling in energy/power dynamical space  is  introduced  to  conceptualize dynamics of interactions of complex multi-physicals components. No specialized knowledge of physical components is required.  This modeling sets a basis for  analysis, computation, sensing, control, power electronics, optimization and market design concepts. The course  prepares students for working on applying many novel methods and technologies, ranging from computer methods,  power electronics control,  for designing and operating more reliable, secure, and efficient electric energy systems. Students interested in both applied physics and signals and systems should consider taking this subject. Once the fundamentals of today's power systems are understood, it becomes possible to consider the role of smart electric power grids and power electronics-control  in enabling evolution of future electric energy systems. Integration of intermittent energy resources into the existing grid by deploying distributed sensors and actuators at the key locations throughout the system (network, energy sources, consumers) and changes in today's Supervisory Control and Data Acquisition (SCADA) for better performance become well-posed problems of modeling, sensing and controlling complex dynamic systems. This opens opportunities to many innovations toward advanced sensing and actuation for enabling better physical performance. Modeling, sensing and control fundamentals for possible next generation SCADA in support of highly distributed operations and design are introduced. Most of the concepts will be illustrated using homegrown Scalable Electric Power System Simulator (SEPSS).
6.333 Graduate Power Electronics Laboratory (meets with 6.131)
Prereqs: Permission of Instructor
Units: 3-9-3
This subject counts as a Circuits concentration subject. Hands-on introduction to the design and construction of power electronic circuits and motor drives. Laboratory exercises (shared with 6.131) include the construction of drive circuitry for an electric go-cart, flash strobes, computer power supplies, three-phase inverters for AC motors, and resonant drives for lamp ballasts and induction heating. Basic electric machines introduced including DC, induction, and permanent magnet motors, with drive considerations. Graduate students complete three additional readings on Tellegens theorem, switched capacitor power supplies, and energy-based control. Two additional lectures are added over 6.131, and the extended final project makes use of the additional readings.
6.881 Intelligent Robot Manipulation
Prereqs: 6.006 and 6.041 and (18.06 or 2.087)
Units: 3-0-9
This subject counts as an Artificial Intelligence concentration subject. Introduces the fundamental algorithmic approaches for creating robot systems that can autonomously manipulate physical objects in unstructured environments such as homes and warehouses.  Topics include robot kinematics and trajectory generation, collision-free motion planning, sensing and estimation, and planning in the presence of uncertainty.
6.884 Computational Aspects of Therapeutic Design
Prereqs: 6.036 or 6.802
Units: 3-0-9
This subject qualifies as an Artificial Intelligence concentration subject. Computational methods in the design and analysis of therapeutics, including small molecules, biologics, and synthetic biology approaches.   Lectures will present essential computational methods on molecular design and optimization drawing upon recent results in machine learning. Classes will include presentations by students on recent research results related to the computational design of therapeutics and efficacy.   Problem sets will explore computational methods for therapeutic design.  Topics include protein design, antibody optimization, small molecule design and characterization, and the engineering of viruses and cell lines for therapeutic effect. Experts from industry will present on their views of the promise of computational approaches, what is working, and what is needed.
6.S077 Entrepreneurship for Collaborative Machine Intelligence
Units: 2-0-1
We believe that in the future, humans and machines (robots, computers, etc.) do not need to be in competition with one another. To the contrary, we envision a world in which humans and intelligent machines work together collaboratively to achieve what neither can do alone.  The class will be held in conjunction with the new MIT Collaborative Intelligence Entrepreneurship Competition, which will bring together students from multiple disciplines across the Institute to advance innovative ideas that leverage artificial intelligence and computational capabilities with the explicit aim of empowering humankind. The overarching goal of the competition is to launch products/new ventures ready for investment and commercialization.
6.S078 Engineering the Internet (meets with 6.450)
Prereqs: 6.02, 6.041, 6.042, or equivalent
Units: 3-0-9
This course wil meet with graduate subject 6.450 combining the basics of communications, networking and information theory. By relying on ample examples from current networking and communications, and by providing simplified proofs, accessible to students with only an introductory knowledge of probability, the course will seek to provide an integrated, systems-level view of current networking, including storage, while laying the foundations of analysis and design. Topics include areas of network security, cloud computing and evolution of fifth-generation (5G) wireless systems. Combines themes from both EE and CS in a naturally integrated fashion. The flow of the course will follow, for didactic purposes, the course of data from generation, storage, transport, to reception and reconstruction. It will include guest lectures from academics at sister institutions, and practitioners in industry. It will include timely, yet accessible, readings.
6.S080 Software Systems for Data Science
Prereqs: 6.00, 6.0001, 6.006
Units: 3-0-9
This class will survey techniques and systems for ingesting, efficiently processing, analyzing, and visualizing large data sets. Topics will include data cleaning, data integration, scalable systems (relational databases, NoSQL, Spark, etc.), analytics (data cubes, scalable statistics and machine learning), fundamental statistics and machine learning and scalable visualization of large data sets. The goal of the class is to gain working experience along with in-depth discussions of the topics covered. Students should have a background in programming and algorithms. There will be a semester-long project and paper, and hands-on labs designed to give experience with state of the are data processing tools.
6.S081 Introduction to Operating Systems (meets with 6.828)
Prereqs: 6.004, 6.033
Units: 3-6-3
Design and implementation of operating systems, and their use as a foundation for systems programming. Topics include virtual memory; file systems; threads; context switches; kernels; interrupts; system calls; interprocess communication; coordination, and interaction between software and hardware. A multi-processor operating system for RISC-V is used to illustrate these topics. Individual laboratory assignments involve extending an operating system kernel, for example to support sophisticated virtual memory features and network protocols. Programming experience is a prerequisite, ideally in the C language.
6.S082 Principles of Modeling, Simulations and Control for Electric Energy Systems
Prereqs:
Units: 4-0-8
The graduate version counts as a subject in the Control Concentration. This course offers modeling principles of modern electric power systems starting from a brief review of their structure and their physical components. In particular, a novel unified modeling in energy/power dynamical space  is  introduced  to  conceptualize dynamics of interactions of complex multi-physicals components. No specialized knowledge of physical components is required.  This modeling sets a basis for  analysis, computation, sensing, control, power electronics, optimization and market design concepts. The course  prepares students for working on applying many novel methods and technologies, ranging from computer methods,  power electronics control,  for designing and operating more reliable, secure, and efficient electric energy systems. Students interested in both applied physics and signals and systems should consider taking this subject. Once the fundamentals of today's power systems are understood, it becomes possible to consider the role of smart electric power grids and power electronics-control  in enabling evolution of future electric energy systems. Integration of intermittent energy resources into the existing grid by deploying distributed sensors and actuators at the key locations throughout the system (network, energy sources, consumers) and changes in today's Supervisory Control and Data Acquisition (SCADA) for better performance become well-posed problems of modeling, sensing and controlling complex dynamic systems. This opens opportunities to many innovations toward advanced sensing and actuation for enabling better physical performance. Modeling, sensing and control fundamentals for possible next generation SCADA in support of highly distributed operations and design are introduced. Most of the concepts will be illustrated using homegrown Scalable Electric Power System Simulator (SEPSS).
6.S083 Introduction to Computational Thinking (Common Ground)
Prereqs: 6.0001
Units: 3-0-3
Provides a unifying introduction to computational thinking for technical and general-purpose applications.  The class is intended to break down traditional walls between computation in science, engineering and computer science with applications from these disciplines. As an example, we will see how to apply differentiable programming to machine learning. The class uses Julia to provide students with a complementary programming language, with an emphasis on modifiable codes and performance. We assume no prior Julia experience, but we will build on Python from 6.0001. Fall 2019 pilot class limited to 20 students, preference for students who did well in 6.0001. Begins October 21.
6.S084 Computational Aspects of Therapeutic Design
Prereqs: 6.036 or 6.802
Units: 3-0-9
This subject qualifies as an Artificial Intelligence concentration subject. Computational methods in the design and analysis of therapeutics, including small molecules, biologics, and synthetic biology approaches.   Lectures will present essential computational methods on molecular design and optimization drawing upon recent results in machine learning. Classes will include presentations by students on recent research results related to the computational design of therapeutics and efficacy.   Problem sets will explore computational methods for therapeutic design.  Topics include protein design, antibody optimization, small molecule design and characterization, and the engineering of viruses and cell lines for therapeutic effect. Experts from industry will present on their views of the promise of computational approaches, what is working, and what is needed.
6.S898 Climate Change Seminar (also under 12.S992)
Prereqs: Permission of Instructor
Units: 3-0-9
Provides a broad overview of issues related to climate change, with an emphasis on those aspects most relevant to computer scientists. Topics include climate science, climate models and simulations, decision-making under uncertainty, economics, mitigation strategies, adaptation strategies, geoengineering, policy-making, messaging, and politics.  Course includes reading and discussion of recent publications and attending guest lectures. Involves project formulation, culminating in a presentation of a research project which might include a paper, a blog, or software. Enrollment limited.
6.S899 Academic Job Search Seminar
Units: 6
This seminar is intended for EECS senior graduate students and post-docs who plan to enter in the academic job market this Fall.  The seminar will explore what it is like to be a junior faculty member and what it takes to get a faculty job. The students will be required to complete multiple projects including writing a CV, research and teaching statements, giving oral presentations on their research, and participating in other academic job market related activities.
6.S976 Engineering Leadership in the Age of AI
Prereqs: none
Units: 3-0-9
This course will prepare MIT graduate engineering students to lead, develop, and deploy AI systems in ways that deliver positive benefits to people and society. It will teach at the intersection of engineering leadership and artificial intelligence and deliver learning experiences in ways that are informed by research but applied to engineering products or services.
6.S977 Entrepreneurship for Collaborative Machine Intelligence
Units: 2-0-1
We believe that in the future, humans and machines (robots, computers, etc.) do not need to be in competition with one another. To the contrary, we envision a world in which humans and intelligent machines work together collaboratively to achieve what neither can do alone.  The class will be held in conjunction with the new MIT Collaborative Intelligence Entrepreneurship Competition, which will bring together students from multiple disciplines across the Institute to advance innovative ideas that leverage artificial intelligence and computational capabilities with the explicit aim of empowering humankind. The overarching goal of the competition is to launch products/new ventures ready for investment and commercialization.
6.S978 Negotiation and Influence Skills for Technical Leaders
Prereqs: none
Units: 2-0-4*
The course is designed around the premise that the ability to negotiate is essential to being an effective leader in technology and engineering environments. The overall goal of this course is to provide graduate engineering students with a repertoire of negotiation strategies and practices that pertain to the problems and conflict situations faced by technical leaders who tend to be lead without formal authority. We will introduce research-based approaches and analytical frameworks with a learning design will enable students to develop negotiation skills experientially and reflectively through simulations, role plays, and case studies *Companion 6 unit subject, 6.S979, will be offered ST20
6.S979 Topics in Deployable Machine Learning
Prereqs: 6.867, or solid grasp of machine learning
Units: 3-0-9
Today’s ML solutions can achieve impressive—sometimes super-human—performance that suggests that a broad deployment of ML will revolutionize almost every aspect of our lives. However, much of its development so far has been focused on clean and controlled/simulated settings and has had an average-case/“proof of concept” perspective in mind. And this mindset, despite being very useful up until now, turns out to be grossly inadequate for the—often high-stakes—nature of real-world deployment of ML. Here, the chief design goal is robustness to the variety of corruptions that abound in real-world contexts, whether benign or malicious in nature. It is also necessary to have a fine-grained grasp of the biases learned by our models and the impact of employing them in decision making. Finally, to be truly useful, our ML tools need to be understandable to humans and easy to work with even for users with no ML expertise. The current ML toolkit tends to fail catastrophically with respect to the above criteria. As such, we need a new, multi-pronged effort that will revisit all the tenets of the existing ML framework and build the next generation of machine learning that can be deployed in the real world in a safe, secure and responsible manner. This course will begin with background lectures, and then shift into a series of lectures (given by co-instructors) about fundamental ideas and phenomena that are relevant to building a truly deployable ML. Class projects will then require the students to explore these topics in more depth and present them in a form of a presentation and report.
Spring 2019
6.645 Physics and Engineering of Superconducting Qubits
Prereqs: 6.728 or 8.06 or equivalent
Units: 3-0-9
This subject qualifies as an Applied Physics engineering concentration subject. This course introduces the physics and engineering of superconducting qubits for quantum information processing for graduate and upper-level undergraduate students. Topics will include (1) an introduction to superconductivity and Hamiltonian engineering; (2) superconducting qubits, cavities, and microwave cavity quantum electrodynamics; (3) the theory and microwave engineering of qubit control and measurement; (4) noise, decoherence, dynamical error mitigation; (5) microwave photons, squeezing, and quantum-limited amplification; (6) survey of other solid-state qubit modalities, including semiconductor quantum dots and majorana zero modes; and (7) experimental fault tolerance and quantum error detection. The course will include both classroom lectures, tutorials, homework sets, and hands-on lab practicum with superconducting qubits.
6.882 Embodied Intelligence
Prereqs: Required
Units: 3-0-9
This subject counts as an Artificial Intelligence concentration subject. The goal is to address the broad problem of designing a general-purpose intelligent robot. To address this question, a very broad background is required. We propose to spend the first 4 weeks covering important background topics: each week will combine a foundational tutorial reading with one or two state-of-the-art research results. In the subsequent weeks, we will address topics that cut across the basic disciplinary boundaries, typically combining two or more areas, with the work focused on studying and discussing current research in the relevant area.
6.883 Modeling with machine learning: from algorithms to applications
Prereqs: 18.02, 6.006 or equivalent; permission of instructors; limited enrollment
Units: 12 units (3-0-9)
This subject counts as an Artificial Intelligence subject. The course focuses on modeling with machine learning methods with an eye towards applications in engineering and sciences. Students will be introduced to modern machine learning methods, from supervised to unsupervised models, with an emphasis on newer neural approaches. The course focuses on the understanding of how and why the methods work from the point of view of modeling, and when they are applicable. Using concrete examples, the course covers formulation of machine learning tasks, adapting and extending methods to given problems, and how the methods can and should be evaluated.
6.885 Probabilistic Programming and Artificial Intelligence
Units: 3-0-9
This subject counts as a Computer Systems concetration subject. Introduces probabilistic programming, an emerging field at the intersection of programming languages, probability theory, and artificial intelligence. Shows how to define models and inference algorithms using executable code in new probabilistic programming languages, and how to use technical ideas from programming languages to formalize, generalize, and integrate modeling and inference approaches from multiple eras of AI. Example modeling formalisms include generative models, neural networks, symbolic programs, hierarchical Bayesian models, and causal Bayesian networks. Example inference approaches include Monte Carlo, numerical optimization, and neural network techniques. Includes hands-on exercises in probabilistic programming fundamentals plus applications to computer vision and data analysis, using two new open-source probabilistic programming platforms recently prototyped at MIT.
6.886 Algorithm Engineering
Prereqs: 6.046, 6.172
Units: 3-0-9
This subject counts as a Computer Systems concentration subject. This is a research-oriented course on algorithm engineering, which will cover both the theory and practice of algorithms and data structures. Students will learn about models of computation, algorithm design and analysis, and performance engineering of algorithm implementations. We will study the design and implementation of sequential, parallel, cache-efficient, external-memory, and write-efficient algorithms for fundamental problems in computing. Many of the principles of algorithm engineering will be illustrated in the context of parallel algorithms and graph problems. Students will read and present research papers, complete assignments that involve both theory and implementation, and also complete a research project. Class time will consist of lectures, student presentations, and group project meetings. This course is suitable for graduate students or advanced undergraduates who have taken 6.046 and 6.172. Mathematical maturity and familiarity with performance engineering will be assumed.
6.888 Hardware Architecture for Deep Learning
Units: 3-3-6
This subject will count as an AUS subject and for the graduate level as a Computer Systems concentration subject. Introduction to the design and implementation of hardware architectures for efficient processing of  deep learning algorithms in AI systems. Topics include basics of deep learning, deep learning on programmable platforms, deep learning accelerators, co-optimization of deep learning algorithms and hardware, training for deep learning, support for complex deep learning networks, applications of advanced technologies for deep learning. Includes labs involving modeling and analyzing deep learning hardware architectures, building systems using popular deep learning tools and platforms (CPU, GPU, FPGA) and an open-ended design project.
6.889 Sublinear Time Algorithms
Prereqs: 6.046 or equivalent
Units: 3-0-9
This subject counts as a Theoretical Computer Systems concentration subject. When processing large data sets, it can be crucial to understand properties of the data after viewing only a miniscule fraction of it.  The study of sublinear time algorithms combines emerging tools from mathematics, Computer Science and statistics.    In this course we will cover the following topics: 1. Testing and estimating properties of functions, graphs, strings and other combinatorial objects 2. Sublinear time approximations of combinatorial optimization problems 3. Testing and estimating global properties of distributions:  including similarity to other distributions (variants of hypothesis testing), information theoretic and shape properties. We introduce many of the beautiful techniques that have been applied to analyzing such algorithms, including  Fourier Analysis on the Boolean cube, Szemeredis regularity lemma, and other tools from number theory, combinatorics, linear algebra, optimization theory, distributed algorithms, statistical tools and probability theory.
6.890 Learning-Augmented Algorithms
Prereqs: 6.036 or equivalent, 6.046 or equivalent
Units: 3-0-9
This subjects counts as a Theoretical Computer Science concentration subject. The course focuses on recent developments in using machine learning to improve the performance of "classical" algorithms, by adapting their behavior to the properties of the input distribution. This reduces their running time or space use, increases the accuracy, etc. Specific topics include: learning-augmented data structures, streaming and sketching algorithms, on-line algorithms, compressive sensing and recovery, error-correcting codes, scheduling algorithms, satisfiability solvers and approximation algorithms.
6.892 Algorithmic Lower Bounds: Fun with Hardness Proofs
Prereqs: 6.046 or 6.006
Units: 3-0-9
6.894 Interactive Data Visualization
Prereqs: 6.031
Units: 3-0-9
This subject counts as a Human-Computer Interfaces concentration subject. Interactive visualization provides a means of making sense of a world awash in data. This course covers the techniques and algorithms for creating effective visualizations, using principles from graphic design, perceptual psychology, and cognitive science. Short assignments will build familiarity with the data analysis and visualization design process, and a final project will provide experience designing, implementing, and deploying an explanatory narrative visualization or visual analysis tool to address a concrete challenge.
6.S077 Introduction to Data Science
Prereqs: 6.041A
Units: 4-0-8
Introduction to the methodological foundations of data science, emphasizing basic concepts, but also modern methodologies. Learning of distributions and their parameters. Testing of multiple hypotheses. Linear and nonlinear regression and prediction. Classification. Learning of dynamical models. Uncertainty quantification. Model validation. Causal inference. Applications and case studies drawn from electrical engineering, computer science, the life sciences, finance, and social networks.
6.S081 Dynamic Computer Language Engineering
Prereqs: 6.004, 6.031
Units: 4-4-4
This subject would satisfy the AUS2 and II requirement. Studies the design and implementation of modern, dynamic programming languages. Topics include fundamental approaches for parsing, semantics and interpretation, virtual machines, garbage collection, just-in-time machine code generation, and optimization. Course will include a semester-long, multi-person project that delivers a virtual machine that spans all of the above topics.
6.S082 Hardware Architecture for Deep Learning
Units: 3-3-6
This subject will count as an AUS subject and for the graduate level as a Computer Systems concentration subject. Introduction to the design and implementation of hardware architectures for efficient processing of  deep learning algorithms in AI systems. Topics include basics of deep learning, deep learning on programmable platforms, deep learning accelerators, co-optimization of deep learning algorithms and hardware, training for deep learning, support for complex deep learning networks, applications of advanced technologies for deep learning. Includes labs involving modeling and analyzing deep learning hardware architectures, building systems using popular deep learning tools and platforms (CPU, GPU, FPGA) and an open-ended design project.
6.S083 Modeling with machine learning: from algorithms to applications
Prereqs: 18.02, 6.006 or equivalent; permission of instructors; limited enrollment
Units: 12 units (3-0-9)
This subject counts as an Artificial Intelligence subject. The course focuses on modeling with machine learning methods with an eye towards applications in engineering and sciences. Students will be introduced to modern machine learning methods, from supervised to unsupervised models, with an emphasis on newer neural approaches. The course focuses on the understanding of how and why the methods work from the point of view of modeling, and when they are applicable. Using concrete examples, the course covers formulation of machine learning tasks, adapting and extending methods to given problems, and how the methods can and should be evaluated.
6.S897 Machine Learning for Healthcare
Prereqs:
Units: 3-0-9
Introduces students to machine learning in healthcare, including the nature of clinical data and the use of machine learning for risk stratification, disease progression modeling, precision medicine, diagnosis, subtype discovery, and improving clinical workflows. Topics include causality, interpretability, algorithmic fairness, time-series analysis, graphical models, deep learning and transfer learning. Guest lectures by clinicians from the Boston area, and projects with real clinical data, emphasize subtleties of working with clinical data and translating machine learning into clinical practice. Limited to 55.
6.S898 Democratizing AI through K-12 AI Education for All
Units: 2-0-7
How can we prepare non-university students with knowledge, skills, and attitudes for future careers that increasingly rely on AI technologies? Otherwise, we risk leaving far too many people behind in the emerging AI-economy -- causing significant societal stress and divisiveness rather than enabling transformative opportunity where everyone can participate in, benefit from, influence our future with AI. Inequity of education remains a key barrier to future opportunities and jobs where success depends increasingly on intellect, creativity, and the right skills.  While AI is already entering the education system to support students, teachers, or school administration -- it is not currently offered as a topic to be learned until the university level. Just as learning to code has become recognized as a new literacy for the 21st century, students need to also learn about AI given its growing prevalence across industries, institutions, and society on a global scale. This weekly project-based class explores the question of “how do we empower children, from preschool to high school, to learn about AI in a collaborative, hands-on way?” Students taking this course will collaborate in teams to develop constructionist tools and activities to introduce preK-12 learners to important concepts, practices and design principles of artificial intelligence – i.e., how machines think and learn and how to design them in an ethical way. An important objective of class projects is to effectively integrate ethical design concepts and practices into their proposed activities and curriculum so that preK-12 students appreciate issues in bias, fairness, transparency, etc. in the AI-enabled projects they create in an age appropriate way.   Example projects can take the form of developing an AI curriculum module that covers a core AI concept and associated practices through hands-on projects based on scratch, app inventor, Jupytr notebooks, etc. with integrated cognitive services or open source libraries (machine learning, computer vision, NLU, etc.). Existing research projects could be translated into compelling hands-on projects that introduce younger students to exciting AI methods and abilities. Other projects can explore how to effectively prepare and train mentors to support students as they learn about AI, including the development of personalized AI mentoring agents to help scale this knowledge and training. 40%     design reviews and critiques 20%     class attendance and participation 40%     final project (no exam)
6.S978 Privacy Legislation in Practice: Law and Technology
Prereqs: Permission of instructor
Units: 2-0-10
This course will be taught jointly by faculty from MIT and Georgetown University Law School and classes will meet via videoconference.  The aim of the course is to have law students and engineering students jointly explore in-depth current issues in privacy policy and to propose policy solutions in the form of legislation that could be adopted by state governments. The course will pair law students at Georgetown Law with engineering students at MIT to form interdisciplinary teams, each consisting of two law students and two MIT students.  Each team will be assigned a specific question of public policy, and over the course of the semester the team will be responsible for preparing a detailed legal assessment of the policy question, the technological frameworks and challenges associated with the policy question, and formulating policy and technological recommendations to address the question in the form of draft state legislation.
HST.956 Machine Learning for Healthcare
Prereqs:
Units: 3-0-9
Introduces students to machine learning in healthcare, including the nature of clinical data and the use of machine learning for risk stratification, disease progression modeling, precision medicine, diagnosis, subtype discovery, and improving clinical workflows. Topics include causality, interpretability, algorithmic fairness, time-series analysis, graphical models, deep learning and transfer learning. Guest lectures by clinicians from the Boston area, and projects with real clinical data, emphasize subtleties of working with clinical data and translating machine learning into clinical practice. Limited to 55.
MAS.S65 Democratizing AI through K-12 AI Education for All
Units: 2-0-7
How can we prepare non-university students with knowledge, skills, and attitudes for future careers that increasingly rely on AI technologies? Otherwise, we risk leaving far too many people behind in the emerging AI-economy -- causing significant societal stress and divisiveness rather than enabling transformative opportunity where everyone can participate in, benefit from, influence our future with AI. Inequity of education remains a key barrier to future opportunities and jobs where success depends increasingly on intellect, creativity, and the right skills.  While AI is already entering the education system to support students, teachers, or school administration -- it is not currently offered as a topic to be learned until the university level. Just as learning to code has become recognized as a new literacy for the 21st century, students need to also learn about AI given its growing prevalence across industries, institutions, and society on a global scale. This weekly project-based class explores the question of “how do we empower children, from preschool to high school, to learn about AI in a collaborative, hands-on way?” Students taking this course will collaborate in teams to develop constructionist tools and activities to introduce preK-12 learners to important concepts, practices and design principles of artificial intelligence – i.e., how machines think and learn and how to design them in an ethical way. An important objective of class projects is to effectively integrate ethical design concepts and practices into their proposed activities and curriculum so that preK-12 students appreciate issues in bias, fairness, transparency, etc. in the AI-enabled projects they create in an age appropriate way.   Example projects can take the form of developing an AI curriculum module that covers a core AI concept and associated practices through hands-on projects based on scratch, app inventor, Jupytr notebooks, etc. with integrated cognitive services or open source libraries (machine learning, computer vision, NLU, etc.). Existing research projects could be translated into compelling hands-on projects that introduce younger students to exciting AI methods and abilities. Other projects can explore how to effectively prepare and train mentors to support students as they learn about AI, including the development of personalized AI mentoring agents to help scale this knowledge and training. 40%     design reviews and critiques 20%     class attendance and participation 40%     final project (no exam)
Fall 2018
6.01 Introduction to EECS via Robotics
6.332 Advanced Topics in Power Electronics
Prereqs: 6.334 or permisison of instructor
Units: 3-5-4
This subject qualifies as a Circuits concentration subject. Advanced topics in analysis, design, manufacturing, and control of power electronics. Topics include: architectures and topologies for power electronics including soft-switched, resonant and switched-capacitor circuits; high-frequency power magnetics; advanced modeling and control methods; power components, devices, and materials;  manufacturing methods; electromagnetic interference, filtering, grounding, and shielding; circuit theory applications to power electronics; emerging technologies and applications in  power conversion.
6.644 Principles and Applications of Quantum Optics
Prereqs: 8.04 or 8.05, 6.013 or 6.007 or 8.07 or 8.03 or 2.71
Units: 3-0-9
This subject qualifies as either an Applied Physics or Materials, Devices and Nanotechnology concentration subject, but not both. This course introduces students to fundamental concepts of quantum technologies, with an emphasis on quantum communication, optical quantum sensing, and quantum computation. Topics include the quantization of the electromagnetic field; quantum states of light including coherent and squeezed states; interaction between light an atoms / quantum electrodynamics (QED); optical resonators and cavity QED; and quantum communication, photonic precision measurement, and quantum computing using photons and atomic memories.
6.807 Computational Fabrication will meet with 6.839
Prereqs:
Units: 3-0-9
6.881 Intelligent Robot Manipulation
Prereqs: 6.006 and 6.041 and (18.06 or 2.087)
Units: 3-0-9
This subject counts as an Artificial Intelligence concentration subject. Introduces the fundamental algorithmic approaches for creating robot systems that can autonomously manipulate physical objects in unstructured environments such as homes and warehouses.  Topics include robot kinematics and trajectory generation, collision-free motion planning, sensing and estimation, and planning in the presence of uncertainty.
6.S063 Principles and Applications of Quantum Optics
Prereqs: 8.04 or 8.05, 6.013 or 6.007 or 8.07 or 8.03 or 2.71
Units: 3-0-9
This subject qualifies as either an Applied Physics or Materials, Devices and Nanotechnology concentration subject, but not both. This course introduces students to fundamental concepts of quantum technologies, with an emphasis on quantum communication, optical quantum sensing, and quantum computation. Topics include the quantization of the electromagnetic field; quantum states of light including coherent and squeezed states; interaction between light an atoms / quantum electrodynamics (QED); optical resonators and cavity QED; and quantum communication, photonic precision measurement, and quantum computing using photons and atomic memories.
6.S081 Human Computational Intelligence
Units: 3-0-9
Considers from a computational and biological viewpoint what distinguishes human intelligence from that of other animals. Introduces representations, methods, and architectures that account for human intelligence, the issue of “small” vs. “big” data, the value of special-purpose machinery and the comparative computational and evolutionary study of insect, primate, and human intelligence in domains like numeracy, concept formation, and language.  Emphasis on discussion and critical written analysis of key papers in the field. Enrollment limited.
6.S198 Deep Learning Practicum
Prereqs: 6.034 or 6.036; Permission of instructor required
Units: 3-3-6
This course prepares students to carry out projects that use deep learning in such areas as language processing and image recognition.  In the first part of the course, we’ll survey basic-deep learning frameworks, including convolutional neural networks, embedding, recurrent neural networks, and generative adversarial networks.  For each framework, we’ll introduce the fundamental concepts, explore open-ended demo applications and carry out programming assignments that modify and extend the demos. For the second part of the course, students will work in teams to design and implement original projects that use these techniques.  Each project team will have a mentor who is a machine learning expert from industry. We’ll also discuss some policy and societal issues in deep learning, such as algorithmic fairness and interpretability. Programming work will be done in Javascript using a new (spring 2018) open-source platform called tensorflow.js, which is a version of Tensorflow that runs in the browser. 6.S198 counts as a course 6 advanced departmental lab (DLAB2) and an independent inquiry (II) subject. Suggested  prerequisites are a working knowledge of Javascript and some exposure to machine learning (e.g., as in 6.034 or 6.036). Enrollment is limited, permission of instructor required. See the course home page at for information on how to enroll.
6.S899 Artificial Intelligence (meets with 6.034)
Prereqs: 6.0001
Units: 4-3-5
Introduces representations, methods, and architectures used to build applications and to account for human intelligence from a computational point of view. Covers applications of rule chaining, constraint propagation, constrained search, inheritance, statistical inference, and other problem-solving paradigms. Also addresses applications of identification trees, neural nets, genetic algorithms, support-vector machines, boosting, and other learning paradigms. Considers what separates human intelligence from that of other animals.  Students taking graduate version complete additional assignments.
6.S974 Decentralized Applications
Prereqs: 6.033; programing experience; or permission of instructor
Units: 3-0-9
This class is a seminar exploring infrastructure for Internet "decentralized applications": systems designed to give users privacy and control over their own data by moving functionality from centralized servers to users own computers. Topics include decentralized mechanisms for naming, storage, retrieval and queries, authenticity, access control and privacy, user identity and authentication, infrastructure powerful enough to enable complex applications, and case studies of decentralized applications. Class meetings will involve students presenting research papers and discussing them. Students will work on a project of their choice during the semester: designing and building a system, writing a draft research paper, and presenting their work to the class. Projects could focus on components such as secure naming, or applications such as messaging, news aggregation, social networks, etc.
Spring 2018
6.003 Signal Processing (new version)
Prereqs: elementary programming (6.0001 or 6.S080) AND
Units:
Fundamentals of signal processing, focusing on the use of Fourier and related transforms to analyze and process music, images, and video. Applications include filtering, convolution, noise reduction, compression, and feature extraction.  Includes substantial hands-on exercises and laboratory experiments.
6.645 Physics and Engineering of Superconducting Qubits
Prereqs: 6.728 or 8.06 or equivalent
Units: 3-0-9
This subject qualifies as an Applied Physics engineering concentration subject. This course introduces the physics and engineering of superconducting qubits for quantum information processing for graduate and upper-level undergraduate students. Topics will include (1) an introduction to superconductivity and Hamiltonian engineering; (2) superconducting qubits, cavities, and microwave cavity quantum electrodynamics; (3) the theory and microwave engineering of qubit control and measurement; (4) noise, decoherence, dynamical error mitigation; (5) microwave photons, squeezing, and quantum-limited amplification; (6) survey of other solid-state qubit modalities, including semiconductor quantum dots and majorana zero modes; and (7) experimental fault tolerance and quantum error detection. The course will include both classroom lectures, tutorials, homework sets, and hands-on lab practicum with superconducting qubits.
6.802 Foundations of Computational and Systems Biology
6.874 Foundations of Computational and Systems Biology
6.881 Computational Personal Genomics: Making sense of complete genomes
Prereqs: 6.047, or permission of instructor
Units: 2-0-10
6.882 Bayesian Modeling and Inference
Prereqs: 6.867, 6.041B, or 6.436, 18.06
Units: 3-0-9
This subject counts as an Artificial Intelligence concentration subject. This course will cover Bayesian modeling and inference at an advanced graduate level. Topics include de Finettis theorem, decision theory, approximate inference (modern approaches and analysis of Monte Carlo, variational inference, etc), hierarchical modeling, (continuous and discrete) nonparametric Bayesian approaches, sensitivity and robustness, and evaluation.
6.883 Supervised Learning: Bridging Theory and Practice
Prereqs: 6.046 or equivalent; 6.042/6.041/6.008 or equivalent; 6.867 or equivalent
Units: 3-0-9
This subject qualifies as an Artificial Intelligence concentration subject.
6.884 Telemedicine and Telehealth for Enhancing Global Health
Units: 3-0-9
This subject qualifies as an Artificial Intelligence concentration subject. Telehealth is poised for double digit growth and widespread adoption within the next decade. The remote delivery of healthcare services, fueled by advances in communication and mobile health technologies, has been shown to provide improved outcomes and quality at a reduced per-capita cost. In the wake of the Affordable Care Act, this shift motivates research into both technical and non-technical aspects of telemedicine from the first stage of the patient/physician connection to the later stages of nationwide telehealth data systems. Based on the background and interest of the students who enroll for this subject, specific topics that are envisaged to be covered in this course include: (i) interoperability, security, privacy, and data analytics issues related to telemedicine and digital health; (ii) delineation of different niches of this evolving industry; (iii) evolution of telehealth concepts in the US and the impact of divergent and patchwork regulations in US states; (iv) strategies for surmounting the challenge of integrating and analyzing medical data from heterogeneous systems and formats; (v) licensing and credentialing issues in the context of developing new approaches for nationwide telehealth data systems; (vi) identifying technical solutions to current barriers in evolving telemedicine concepts; (vii) assessing telemedicine prototype systems that have been deployed in other parts of the world and the funding models used to sustain them; (vii) issues and opportunities related to establishing telemedicine startups. Detailed information related to the previous instance of this course can be accessed via: learning-modules.mit.edu/class/index.html?uuid=/course/HST/sp17/HST.S58#info and learning-modules.mit.edu/materials/index.html?uuid=/course/HST/sp17/HST.S58#materials
6.886 Graph Analytics
Prereqs: 6.046, 6.172
Units: 3-0-9
This subject qualifies as a Computer Systems concentration subject. Graph analytics have applications in a variety of domains, such as social network and Web analysis, computational biology, machine learning, and computer networking. This course will cover research topics in graph analytics including algorithms, optimizations, frameworks, and applications. Students will learn about both the theory and practice of designing efficient graph algorithms (parallel, cache-efficient, external-memory, etc.). We will also study design choices in high-level graph processing frameworks. Students will read and present research papers, and also complete a research project. This course is suitable for graduate students or advanced undergraduates who have taken 6.046 and 6.172/6.871.
6.S062 Mobile and Sensor Computing
Prereqs: 6.033 or equivalent, or permission of instructor
Units: 3-0-9
The ubiquity of sensor-equipped smartphones, combined with the widespread availability of low-power wireless communication and sensing modules, has led to a renewed interest in sensor computing, aka the “Internet of Things” (IoT). The proposed course is an advanced undergraduate course designed to study the fundamental sensing, computing, and communication software technologies at the core of the recent flurry of activity on IoT. In addition to exposure to fundamental technologies (power management, positioning, ranging, wireless radios, inertial sensors, etc), students will learn how to design and implement (1) libraries and applications on mobile devices that interact with internal and external sensors, (2) server-side modules for computation and storage, and (3) embedded software. Key topics covered in the class include positioning technologies (GPS, WiFi and cellular localization), wireless networks (including BLE, WiFi, Zigbee, multi-hop and delay-tolerant networks), resource constraints (including power, bandwidth, and storage), inertial sensing (accelerometers, gyroscopes, IMUs, dead-reckoning), other types of sensors (e.g., microphones and cameras), application studies (e.g., shooter localization, object recognition, acoustic habitat monitoring), embedded hardware and software architecture, and mobile APIs to sensors. The course includes hands-on labs to develop software on iOS to acquire, process, and analyze sensor data, and open-ended term projects in which the students have developed and prototyped many creative ideas. This course has been offered twice so far (Spring 2016 and 2017), obtaining overall ratings of 6.1 and 6.5 (out of 7). The registration has been limited to around 25-30 thus far.
6.S076 Network Engineering -CANCELLED ST18
Prereqs: 6.02, 6.041 or 6.042 or  18.440
Units: 3-0-9
The course will rely mostly on course notes. There will be additional required readings . The papers will range from foundational, classical papers, to quite recent advances. The students will have labs, done online, to illustrate some of the main ideas of the course. This sequence of labs will culminate in a final lab or a project, at the discretion of each student. Students may do the project in a group if they desire. These labs will align with problem sets. The course design incorporates, thus, the main elements of a classical engineering curricular structure with critical reading of technical literature.
6.S077 Introduction to Data Science
Prereqs: 6.041A
Units: 4-0-8
Introduction to the methodological foundations of data science, emphasizing basic concepts, but also modern methodologies. Learning of distributions and their parameters. Testing of multiple hypotheses. Linear and nonlinear regression and prediction. Classification. Learning of dynamical models. Uncertainty quantification. Model validation. Causal inference. Applications and case studies drawn from electrical engineering, computer science, the life sciences, finance, and social networks.
6.S078 Fixed Parameter and Fine-grained Computation
Prereqs: 6.006, 6.042 and one of 6.045 or 6.046, or permission of instructor
Units: 3-0-9
An overview of the theory of parameterized algorithms and the emergent "problem-centric" theory of fine-grained complexity, both of which reconsider how to measure the difficulty and feasibility of solving computational problems. Topics include: fixed-parameter tractability (FPT) and its characterizations, the W-hierarchy (W[1], W[2], W[P], etc), 3SUM-hardness, APSP-equivalences, SETH hardness of problems, as well as connections to circuit complexity and other aspects of computing. Extended description follows: This course consists of two parts, both of which are intensively active research areas in theoretical computer science. The first part deals with problem parameterizations. Many problems we want to solve are often NP-hard or worse, but they need to be solved anyway. Over the years, multiple paradigms for coping with NP-hardness have been introduced by either relaxing the problem or strengthening the computational model. Within the last 20 years, a new paradigm arose where one measures the time complexity of an algorithm not just in terms of the but also a small side . A priori, the parameter can be anything, but the interesting case is when complex instances of the problem still have relatively small parameter values. The goal is to identify interesting parameterizations of hard problems where we can design algorithms running in time polynomial in the input length but possibly exponential (or worse) in the small parameter. Such an algorithm is called "fixed-parameter tractable". The first part of the course will develop techniques for designing efficient fixed-parameter algorithms, and for showing that for various problems such algorithms are unlikely to exist. The second part of the course focuses not on "hard" problems but rather problems that have already been deemed "easy", i.e. those that are known to have polynomial time algorithms and thus for which NP-hardness says nothing. The best known algorithms for many easy problems have high runtimes and are rarely used in practice. Improving these running times has been a longstanding open problem, with little to no progress. It is thus completely plausible that these algorithms are optimal. However, developing unconditional lower bounds seems nearly impossible with current techniques. A new, conditional theory of hardness has recently been developed, based around several plausible conjectures. The theory develops  interesting reductions between seemingly very different problems, showing that the reason why the known algorithms have been difficult to improve is likely the same, even though the known runtimes of the problems of interest might be very different. The second part of the course will deal with this “fine-grained complexity” theory. We will see many reductions, and also connections to classical circuit complexity theory. The course will be heavily research-oriented with lots of open problems, and it will introduce you to new ways of thinking about existing theory.
6.S079 Computational Accounts of Human Intelligence
Prereqs: 6.034 or permission of instructor
Units: 4-0-8
Analyzes seminal work directed at the development of a computational understanding of human intelligence, such as work on learning, language, vision, event representation, commonsense reasoning, self reflection, story understanding, and analogy. Reviews visionary ideas of Turing, Minsky, and other influential thinkers. Examines the implications of work on brain scanning, developmental psychology, and cognitive psychology. Emphasis on discussion and analysis of original papers. Students taking graduate version complete additional assignments.
6.S081 Dynamic Computer Language Engineering
Prereqs: 6.004, 6.031
Units: 4-4-4
This subject would satisfy the AUS2 and II requirement. Studies the design and implementation of modern, dynamic programming languages. Topics include fundamental approaches for parsing, semantics and interpretation, virtual machines, garbage collection, just-in-time machine code generation, and optimization. Course will include a semester-long, multi-person project that delivers a virtual machine that spans all of the above topics.
6.S084 Computation Structures (Special)
Prereqs: none
Units: 4-0-8
Introduction to the design of digital systems and computer architecture. Emphasizes hardware structures common to a wide range of technologies 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.S198 Deep Learning Practicum
Prereqs: 6.034 or 6.036, or permission of instructor
Units: 3-3-6
This subject counts as a department laboratory subject. This course prepares students to carry out projects that use deep learning.  In the first part of the course,  we’ll survey basic techniques, including convolutional neural networks, recurrent neural networks, generative adversarial networks, and embedding.  For each technique, we’ll begin by studying the fundamental concepts, explore open-ended demo applications that use the tool and carry out programming assignments to modify and extend the demo.  For the second part of the course, students will work in teams to design and implement original projects that use these techniques.  Each project team will have a mentor who is a machine learning expert from industry.  We’ll also discuss some policy and social related issues in deep learning, such as algorithmic fairness  and interpretability. Programming exercises will be done in Javascript and Typescript (a variant of Javascript), using a new open source platform called deeplearn.js, which is a simplified version of Tensorflow that runs in the browser. 6.S198 counts as a course 6 advanced departmental lab (DLAB2). Suggested  prerequisites are a working knowledge of Javascript (e.g., as in 6.170) and some exposure to machine learning (e.g., as in 6.034 or 6.036) or permission of instructor. Enrollment is limited, permission of instructor required.  To apply for permission to enroll in 6.S198 for the spring, you fill out the web form at: .
6.S897 Computational Accounts of Human Intelligence
Prereqs: 6.034 or permission of instructor
Units: 4-0-8
Analyzes seminal work directed at the development of a computational understanding of human intelligence, such as work on learning, language, vision, event representation, commonsense reasoning, self reflection, story understanding, and analogy. Reviews visionary ideas of Turing, Minsky, and other influential thinkers. Examines the implications of work on brain scanning, developmental psychology, and cognitive psychology. Emphasis on discussion and analysis of original papers. Students taking graduate version complete additional assignments.
6.S899 Science of Deep Learning: State of the Art and Challenges CANCELLED ST18
Prereqs: 6.867
Units: 3-0-9
6.S978 Privacy Legislation in Practice: Law and Technology
Prereqs: Permission of instructor
Units: 2-0-10
This course will be taught jointly by faculty from MIT and Georgetown University Law School and classes will meet via videoconference.  The aim of the course is to have law students and engineering students jointly explore in-depth current issues in privacy policy and to propose policy solutions in the form of legislation that could be adopted by state governments. The course will pair law students at Georgetown Law with engineering students at MIT to form interdisciplinary teams, each consisting of two law students and two MIT students.  Each team will be assigned a specific question of public policy, and over the course of the semester the team will be responsible for preparing a detailed legal assessment of the policy question, the technological frameworks and challenges associated with the policy question, and formulating policy and technological recommendations to address the question in the form of draft state legislation.
6.S979 Seminar in Electric Power Systems
Prereqs: 6.061 or equivalent
Units: 3-0-9
This subject qualifies as a Signals and System Concentration Subject. A seminar on planning and operation of modern electric power systems. Content varies with current interests of instructor and class; emphasis on engineering aspects, but economic issues may be examined too. Core topics include: overview of power system structure and operation; representation of components, including transmission lines, transformers, generating plants, loads; power flow analysis, dynamics and control of multimachine systems, steady-state and transient stability, system protection; economic dispatch; mobil and isolated power systems; computation and simulation.
Fall 2017
6.007 Electromagnetic Energy: From Motors to Solar Cells
6.885 Multicore Programming in DEF
Prereqs: 6.172 or 6.816 or 6.836, or graduate work experience in concurrent programming
Units: 3-0-9
This subject counts as a Computer Systems concentration subject. Design high performance multicore code using DEF, a next generation C style language, with emphasis on concurrent data structures, memory management, and managing atomicity.
6.888 Hardware Architecture for Deep Learning
Units: 3-3-6
This subject will count as an AUS subject and for the graduate level as a Computer Systems concentration subject. Introduction to the design and implementation of hardware architectures for efficient processing of  deep learning algorithms in AI systems. Topics include basics of deep learning, deep learning on programmable platforms, deep learning accelerators, co-optimization of deep learning algorithms and hardware, training for deep learning, support for complex deep learning networks, applications of advanced technologies for deep learning. Includes labs involving modeling and analyzing deep learning hardware architectures, building systems using popular deep learning tools and platforms (CPU, GPU, FPGA) and an open-ended design project.
6.889 Sketching and Streaming Algorithms for Big Data
Prereqs: 6.046J (good understanding of linear algebra and probability)
Units: 3-0-9
This subject qualifies as a Theoretical Computer Science concentration subject. Big data is data so large that it does not fit in the main memory of a single machine. The need to process big data by space-efficient algorithms arises in Internet search, machine learning, network traffic monitoring, scientific computing, signal processing, and other areas. This course will cover mathematically rigorous models for developing such algorithms, as well as some provable limitations of algorithms operating in those models. Some topics covered include streaming algorithms, dimensionality reduction and sketching, randomized algorithms for numerical linear algebra, sparse recovery and Sparse Fourier Transform.  The course will also cover applications of these methods, including wireless information transmission and neural network compression.
6.S063 Engineering Interactive Technologies
Prereqs: 6.005, 6.031, 6.111, 6.115 or permission of instructor
Units: 3-3-6
Teaches how to build cutting edge interactive technologies, explains the underlying engineering concepts, and shows how those technologies evolved over time. Most of the class uses a studio format, i.e., extended periods of time for constructing software and hardware prototypes under the supervision of the teaching team. Every week, we will cover a different type of interactive technology, including multi-touch, augmented reality, haptics, wearables, shape-changing interfaces, and more. Enrollment limited to 30 students.
6.S082 Hardware Architecture for Deep Learning
Units: 3-3-6
This subject will count as an AUS subject and for the graduate level as a Computer Systems concentration subject. Introduction to the design and implementation of hardware architectures for efficient processing of  deep learning algorithms in AI systems. Topics include basics of deep learning, deep learning on programmable platforms, deep learning accelerators, co-optimization of deep learning algorithms and hardware, training for deep learning, support for complex deep learning networks, applications of advanced technologies for deep learning. Includes labs involving modeling and analyzing deep learning hardware architectures, building systems using popular deep learning tools and platforms (CPU, GPU, FPGA) and an open-ended design project.
6.S084 Electromagnetic Fields, Forces and Motion
Prereqs: 8.02, 18.03
Units: 3-0-9
This subject will count as an EE header subject. Electric and magnetic static and quasistatic systems in multiple dimensions and over multiple regions.  Materials exhibiting polarization, magnetization and conduction, and motion.  Charge relaxation and magnetic diffusion.  Energy storage, energy conservation, forces and force densities, and stress tensors.  Examples of macro-, micro- and nano-scale electromechanical sensors and actuators.
6.S197 Software Project Laboratory
Prereqs: 6.005 or 6.009, or permission of instructor
Units: 2-1-9
This subject will design, develop and implement an individualized project of students’ own choosing. This will involve iterating through several milestones and getting feedback from actual users. Students will practice their project design, planning, management and software engineering skills. By the end of the course, students will have built a tangible and useful software artifact.
6.S966 Artificial Intelligence - Graduate Version 6.034
Prereqs: 6.0001
Units: 4-0-8
This term I will experimentally run a graduate section of 6.034, the Introduction to Artificial Intelligence taught by Patrick Henry Winston.  You will receive graduate credit if you sign up for 6.S966.  However, if you sign up for 6.S966 you will be required to do a bit more work: in addition to attending the three lectures and one recitation of 6.034 each week and doing the 6.034 homework and quizzes, you will be required to attend an extra section led by me.  This section will be on Fridays from 11:00AM to noon, just after the Friday lecture, in room 34-303. While the final details for this extra section are not yet determined, each week you will be required to read a research paper selected to elaborate on the material presented in 6.034 for that week and write a one-page review of that paper to be handed in (on printed paper, not by email!) at the start of the Friday meeting.  With that preparation we will have a discussion of the material of the week elaborated by the paper you have read and commented on. Your weekly review should not be longer than one page.  Your review should be readable by someone who has not read the paper that is being reviewed.  The ability to write such a review is an important skill for you to develop.  It is not helpful to include a pile of mathematical formulas or lots of code in your review.  What I want is for you to learn to extract the essential take-away message of the paper: 1. What is the author trying to accomplish? 2. What technical methods is the author bringing to bear? 3. How successful was the resulting work? 4. Is there some lesson for us in the paper? If you need graduate credit, you can drop 6.034 and sign up for 6.S966 (12 units) on registration day.  If you are unsure about whether you want to take 6.S966, you can decide later.  Either way, attend the first session, this Friday, 8 September.  I will say more about what will be involved and answer questions.
Spring 2017
6.S897 Machine Learning for Healthcare (also HST.S53)
Prereqs: 6.036/6.862, 6.867, 9.520/6.860, 6.806/6.864, 6.438, or 6.034; or
Units: 2-0-4
This subjects counts as an AAGS subject. Explores machine learning methods for clinical and healthcare applications. Covers concepts of algorithmic fairness, interpretability, and causality. Discusses application of time-series analysis, graphical models, deep learning and transfer learning methods to solving problems in healthcare. Considers how newly emerging machine learning techniques will shape healthcare policy and personalized medicine.
6.248 Graphical Models: A Geometric, Algebraic, and Combinatorial Perspective
Prereqs: linear algebra and probability (e.g. 18.06/18.700 and 6.041/6.431)
Units: 3-0-9
This subject will qualify as a Numerical Methods concentration subject. In this research-oriented course we will introduce graphical models in the framework of exponential families.  We will see that polynomial equations and combinatorial constraints naturally arise and call for algebraic and combinatorial methods to advance the statistical methodology. In particular, we will highlight the role of conic duality for Gaussian graphical models and polyhedral geometry for discrete graphical models.  We will also develop methods for causal inference making use of the inherent combinatorial and algebraic structure in directed graphical models.  Finally, we will discuss graphical models with hidden variables by highlighting the connections to tensor decompositions. The overarching goal of this course is to provide an overview of the interplay of techniques from combinatorics, and applied algebraic geometry, with problems arising in statistics, in particular in graphical models.  Specific topics include exponential families, Grobner bases, conditional independence ideals, Bayesian networks, determinantal varieties, and hyperbolic polynomials.
6.347 Advanced Topics in Signals and Systems: Information Aquisition and Processing
Units: 3-0-9
Modern signal and information acquisition systems employ a large variety of methods to acquire signals, and extract and represent the desired information. The increasing availability of computation enables the combination of signal and acquisition models with powerful computational methods to significantly improve the capabilities of such systems. This course explores fundamental principles as well as recent advances in the area. Topics include: Signal acquisition as a linear measurement. Basis and frame expansions for signal representations. Redundancy using overcomplete representations. Wavelets and filterbanks. Non-linear signal models. Sparse and structured representations. Compressive sensing and sub-Nyquist methods. Signal and information embeddings. Non-linear acquisition, time encoding, and signal-dependent sampling. Scalar and Sigma-Delta quantization. Universal quantization. Embeddings and quantization.
6.838 Advanced Topics in Computer Graphics: Shape Analysis
Prereqs: 18.02, 18.06; 6.837 or 6.869 recommended
Units: 3-0-9
Introduces mathematical, algorithmic, and statistical tools needed to analyze geometric data, with applications to computer graphics, computer vision, medical imaging, machine learning, architecture, and other fields.  Potential topics include:  applied introduction to differential geometry; discrete notions of curvature; PDE on geometric domains via the finite element method (FEM) and discrete exterior calculus (DEC); computational spectral geometry; correspondence and mapping; metric geometry; level set methods; descriptors; shape collections; and vector field design.
6.853 Topics on Algorithmic Game Theory and Data Science
Prereqs: 6.006 or equivalent
Units: 3-0-9
The course will present topics at the interface of Game Theory, Economics, Algorithms and Learning. We will study this interface from three angles: (i) We will present the foundations of Game Theory and their intimate connection to duality theory and online learning; (ii) We will present the fundamentals of auctions and of mechanism design, studying the learnability of good auctions and mechanisms from data through the perspective of provably-approximately-correct (PAC) learning; and (iii) We will present the basics of Econometrics through the prism of density estimation. Thrust (i) will cover the basics of strategic behavior, equilibria, duality theory, online learning, and price of anarchy. Thrust (ii) will present the basics of mechanism design, revenue optimization, and PAC learning, turning to the study of simplicity, learnability, and approximation tradeoffs in mechanism design. Thrust (iii) will present the basics of Econometrics and Statistics, turning to inference in games and auctions. The running examples in this course will be motivated by applications in online advertising and online market design.
6.881 Computational Personal Genomics: Making sense of complete genomes CANCELLED ST17
Prereqs: 6.047, or permission of instructor
Units: 2-0-10
6.882 Bayesian Modeling and Inference
Prereqs: 6.867, 6.041B, or 6.436, 18.06
Units: 3-0-9
This subject counts as an Artificial Intelligence concentration subject. This course will cover Bayesian modeling and inference at an advanced graduate level. Topics include de Finetti's theorem, decision theory, approximate inference (modern approaches and analysis of Monte Carlo, variational inference, etc), hierarchical modeling, (continuous and discrete) nonparametric Bayesian approaches, sensitivity and robustness, and evaluation.
6.887 Formal Reasoning About Programs
Prereqs: 6.042, 6.005, or equivalent experience with rigorous proofs and programming
Units: 3-0-9
This subject counts as a Computer Systems concentration subject. An introduction to a spectrum of techniques for rigorous mathematical reasoning about correctness of software, emphasizing commonalities across approaches.  The most explicit commonality is formalization of all the different correctness approaches with the Coq proof assistant, a popular software platform for authoring and checking proofs.  The beginning of the class will introduce Coq, with the majority of content continuing that introduction in parallel to learning about classic techniques in semantics and program proof.  This class is being positioned as a potential future "alternative flavor" of 6.820 and will overlap in coverage of such subjects as operational semantics, basic model checking & abstract interpretation, type systems, and program logics (including separation logic).  However, those subjects will take on a different hue viewed through problem sets done fully in Coq, with all grading done automatically by the Coq proof checker.  Additional topics will include a variety of approaches to reasoning about concurrency, including through type systems, program logics, and behavioral refinement of interacting modules.
6.889 Sublinear Time Algorithms
Prereqs: 6.045J, 6.046J
Units: 3-0-9
This subject qualifies as a Theoretical Computer Science Engineering Concentration subject. The study of sublinear time algorithms has been applied to problems from a wide range of areas, including algebra, graph theory, geometry, string and set operations, optimization and probability theory. Principal topics include: 1. Testing and estimating properties of functions, graphs, strings and other combinatorial objects 2. Sublinear time approximations of optimization problems 3. Testing global properties of distributions This course will introduce many of the beautiful techniques that have been applied to analyzing such algorithms, including Fourier Analysis on the Boolean cube, Szemeredi's regularity lemma, and other tools from number theory, combinatorics, linear algebra, optimization theory and probability theory.
6.890 Graph and Matrix Algorithms
Prereqs: Graph Transitive Closure, All Pairs Shortest Paths, Perfect Matching, distance oracles, graph spanners, matrix multiplication algorithms, and a variety of equivalences between problems involving matrix multiplication. Prerequisites
Units: 3-0-9
This subject will qualify as a Theoretical Computer Science concentration subject. Due to the surprisingly fast algorithms for the problem, matrix multiplication is routinely used as a basic building block for algorithms beating the brute-force approach. This course explores a variety of problems, mostly within graph algorithms, and discusses how they can be solved faster using a fast matrix multiplication algorithm. We will also see that although many of these problems provably require the use of matrix multiplication to be solved exactly, sometimes matrix multiplication can be avoided by computing answers approximately, leading to very fast algorithms. Finally, we will discuss most of the known algorithms for matrix multiplication including the Coppersmith-Winograd algorithm and its relatives. Topics include: Graph Transitive Closure, All Pairs Shortest Paths, Perfect Matching, distance oracles, graph spanners, matrix multiplication algorithms, and a variety of equivalences between problems involving matrix multiplication. Prerequisites: 6.046 or the equivalent mathematical maturity.
6.892 Shared public ledgers, cryptocurrencies (and Other Marvels)
Units: 3-0-9
This subject qualifies as a Theoretical Computer Science subject. Principles and core techniques of shared public ledgers, with an emphasis on distributed consensus.  Topics include Byzantine agreement, authenticated data structures, Bitcoin, Lightning networks, proof of stake, and new techniques to implement a shared public ledger.
6.S062 Mobile and Sensor Computing
Prereqs: 6.005, or equivalent, 6.033 or 6.02
Units: 3-0-9
The ubiquity of sensor-equipped smartphones, combined with the widespread availability of low-power wireless communication and sensing modules, has led to a renewed interest in sensor computing, aka the “Internet of Things” (IoT). 6.S062 is an advanced undergraduate course designed to study the fundamental sensing, computing, and communication software technologies at the core of the recent flurry of activity on IoT. This course will involve a significant programming and software development component, with weekly programming exercises and a team-based term project.  In addition to exposure to fundamental technologies, students will learn how to design and implement (1) libraries and applications on mobile devices that interact with external sensors and use cloud servers for computation and storage, an (2) software on an embedded sensor platform
6.S064 Circuits and Electronics (6.002x)
Prereqs:
Units: 0-0-12
Fundamentals of the lumped circuit abstraction. Resistive elements and networks, independent and dependent sources, switches and MOS devices, digital abstraction, amplifiers, and energy storage elements. Dynamics of first- and second-order networks; design in the time and frequency domains; analog and digital circuits and applications. Design exercises. Online laboratory. The content of this course is the same as the traditional offering of 6.002 on campus, and students will be graded using the similar standards.  In this experimental course, students will learn the content online using the edX platform through video lectures, online exercises, homeworks, labs, and exams.  Prof. Sussman and a TA will be available to answer questions and to monitor student progress. The enrollment will be limited to 30 students. Experimental version of 6.002 approved by the Committee on the Undergraduate Program, effective Fall 2016-Spring 2018. Offered entirely online. See description of 6.002. Licensed as a REST by the Committee on Curricula, effective Spring 2017-Spring 2018.
6.S080 Brief Introduction to Python
Prereqs: None
Units: 0-1-2
Three-week introduction to programming in Python for students with little or no prior experience. Designed to be taken prior to or concurrently with 6.01. Provides experience with the basics of programming in Python through online materials and laboratory exercises.
6.S194 Open Source Entrepreneurship
Prereqs: 6.005, 6.006, preference given to 6.170 and 6.172 alums
Units: 2-5-5
Working in small teams, students will expand existing personal or MIT software systems from an unsupported “code dump” on GitHub to a full open-source project suitable for actual collaboration and use.  We expect students to perform a substantial amount of programming to bring the project up to a usable status to support real use cases and the code quality to an industry standard. Beyond just programming, students will experience the full project management lifecycle, including requirements gathering, usability testing, documentation and technical writing, prioritization and risk management, project coordination, community support and outreach.  Students are expected to take leadership roles in their project, supported by a graduate student, postdoc or faculty mentor to bootstrap project-specific knowledge.  Course meetings will be split between studio sessions, during which teams can coordinate and work together, and lectures on software engineering and project management topics relevant to the projects.
6.S198 Making Mobile Apps -CANCELLED ST17
Prereqs: 6.005 or experience with Java
Units: 2-3-7
This subject counts as a department laboratory subject. The goal of this subject is to provide a foundation in mobile app creation.   In the first part of the course, you’ll use , a development platform makes it easy to build apps with a “program blocks” drag-and-drop interface.  You’ll start the semester by immediately creating projects based on your own original apps. Class discussions will focus on what kinds of apps are worth making and how to create projects that have social and economic value.   Once you’ve gotten experience building apps, you’ll switch to full-scale app development with Android Studio, Java and the Android SDK.   With this behind you, you’ll have the tools to create rapid prototypes, assess their potential value, and flesh out these prototypes to create apps of professional quality.   This course covers Android development only.  Students who do not have Android devices can work with Android emulators. Enrollment is limited and by permission of instructor only.  To apply for permission to enroll in 6.S198 for the spring, you fill out the web form at:
6.S898 Advanced Performance-Engineering for Multicore Applications
Prereqs: 6.172 or at least two of 6.046J, 6.035, and 6.823 or permission of instructor
Units: 6-8-4
This subject qualifies as a Computer Systems concentration subject. This project-based subject will provide students a foundation in advanced software performance engineering.  As Moore’s Law comes to an end, the importance of performance engineering is rising, and the need for performance-engineering technology is growing.  Lab work involves two term projects.  Students performance-engineer a multicore application or library and develop or enhance a performance-engineering tool, both of their own choosing and either in small teams or individually.  Students present their work in design and code reviews, as well as present topical material.  Although not mandatory for either of the two projects, the focus of the course will be on C/C++, Cilk, and LLVM.  Some of the projects may serve as the basis for or a component of a graduate thesis or conference publication.  Topics include parallelism and scalability analysis, work-stealing schedulers, compiler and runtime support for parallelism, memory hierarchy and cache simulators, cache-efficient algorithms, race detectors, performance profiling, vectorization, compiler instrumentation, data-graph computations, task-graph execution, pipeline parallelism, performance-testing infrastructure, hyperobjects, autotuning, domain-specific compilers, and metaprogramming for performance.
6.S978 Privacy Legislation in Practice: Law and Technology
Prereqs: permission of instructor
Units: 2-0-10
This course will be taught jointly at MIT at Georgetown University Law School and classes will meet via videoconference.  The aim of the course is to have law students and technology students jointly explore in-depth current issues in privacy policy and to propose policy solutions in the form of legislation that could be adopted by state governments. The course will pair law students at Georgetown Law with technology students at MIT to form at least five interdisciplinary teams, each consisting of two law students and two MIT students.  Each team will be assigned a specific question of public policy, and over the course of the semester the team will be responsible for preparing a detailed legal assessment of the policy question, the technological frameworks and challenges associated with the policy question, and formulating policy and technological recommendations to address the question in the form of draft state legislation. No listeners.
Fall 2016
6.645 Principles and Applications of Quantum Optics
Prereqs: 8.04 or 8.05, 6.013 or 6.007 or 8.07 or 8.03 or 2.71
Units: 2-0-10
This subject qualifies as either an Applied Physics or Materials, Devices and Nanotechnology concentration subject, but not both. This course introduces students to fundamental concepts of quantum optics and quantum electrodynamics with an emphasis on applications in nanophotonic devices. Topics include the quantization of the electromagnetic field; quantum states of light including coherent and squeezed states; interaction between light an atoms / quantum electrodynamics (QED); optical resonators and cavity QED; quantum theory of lasers; and applications including low-threshold, ultrafast lasers, quantum key distribution, precision measurement, and quantum computing.
6.889 Advanced Topics in the Theory of Cryptography
Prereqs: 6.875J or permission of instructor
Units: 3-0-9
this subject qualifies as an Advanced Topics in Theoretical Computer Science concentration subject. This course will cover a variety of topics in cryptography that are often not included in an introductory course. Topics will include multi-party computation, delegation of computation, homomorphic encryption, functional encryption, and obfuscation, in addition to a number of topics in the foundations of cryptography. Though in some respects a sequel to 6.875, this course will be self contained and should be accessible to a student with a background in theoretical computer science or sufficient mathematical maturity.
6.S062 Ethics and EECS
Units: 2-0-4
Integrates classical readings that provide an overview of ethics with a survey of case studies that focus on ethical problems arising in the practice of electrical engineering and computer science. Readings taken from a variety of sources, such as Aristotle, Machiavelli, Bacon, Hobbes, Locke, the Founding Fathers, and the Bible. Case studies include written analyses and films that address the place of computers and electronics in society, entrepreneurial EECS activities, potential engineering disasters, court cases, ethical codes, and the ultimate scope and aims of engineering. Enrollment limited to 15 student.
6.S064 Circuits and Electronics (6.002x)
Prereqs:
Units: 4-1-7
Fundamentals of the lumped circuit abstraction. Resistive elements and networks, independent and dependent sources, switches and MOS devices, digital abstraction, amplifiers, and energy storage elements. Dynamics of first- and second-order networks; design in the time and frequency domains; analog and digital circuits and applications. Design exercises. Online laboratory. The content of this course is the same as the traditional offering of 6.002 on campus, and students will be graded using the similar standards.  In this experimental course, students will learn the content online using the edX platform through video lectures, online exercises, homeworks, labs, and exams.  Prof. Sussman and a TA will be available to answer questions and to monitor student progress. The enrollment will be limited to 30 students. This subject will not count as a REST subject.
6.S080 Brief Introduction to Python
Prereqs: None
Units: 0-1-2
Three-week introduction to programming in Python for students with little or no prior experience. Designed to be taken prior to or concurrently with 6.01. Provides experience with the basics of programming in Python through online materials and laboratory exercises.
6.S082 Principles and Applications of Quantum Optics
Prereqs: 8.04 or 8.05, 6.013 or 6.007 or 8.07 or 8.03 or 2.71
Units: 2-0-10
This subject qualifies as either an Applied Physics or Materials, Devices and Nanotechnology concentration subject, but not both. This course introduces students to fundamental concepts of quantum optics and quantum electrodynamics with an emphasis on applications in nanophotonic devices. Topics include the quantization of the electromagnetic field; quantum states of light including coherent and squeezed states; interaction between light an atoms / quantum electrodynamics (QED); optical resonators and cavity QED; quantum theory of lasers; and applications including low-threshold, ultrafast lasers, quantum key distribution, precision measurement, and quantum computing.
6.S084 Electromagnetic Fields, Forces and Motion
Prereqs: 8.02, 18.03
Units: 3-0-9
This subject will count as an EE header subject. Electric and magnetic static and quasistatic systems in multiple dimensions and over multiple regions.  Materials exhibiting polarization, magnetization and conduction, and motion.  Charge relaxation and magnetic diffusion.  Energy storage, energy conservation, forces and force densities, and stress tensors.  Examples of macro-, micro- and nano-scale electromechanical sensors and actuators.
6.S898 Proofs, beliefs and algorithms through the lens of Sum of Squares
Prereqs: Main requirements are a combination of algorithms (6.046/18.410 or equivalent), probability (6.041 or 18.600), discrete math (6.042 or 18.200), and/or mathematical optimization (6.251/6.255 or equivalent).
Units: 3-0-9
This graduate seminar will cover recent research on the use of mathematical programming for problems arising from optimization, machine learning, computational complexity and more, with a particular focus on the "Sum of Squares" semidefinite programming hierarchy. We will discuss both lower and upper bounds, as well as how such mathematical programs give rise to a general theory of computational difficulty, computation vs. sample size tradeoffs, and computational analogs of Bayesian probabilities.  The course location will alternate between Harvard and MIT.
Spring 2016
6.881 Computational Personal Genomics: Making sense of complete genomes
Prereqs: 6.047, or permission of instructor
Units: 2-0-10
6.882 Bayesian Modeling and Inference
Prereqs: 6.437, 6.438 or 6.867
Units: 3-0-9
This subject counts as an Artificial Intelligence concentration subject. This course will cover Bayesian modeling and inference at an advanced graduate level. Topics include approximate inference (modern approaches and analysis of Monte Carlo, variational inference, etc), hierarchical modeling, (continuous and discrete) nonparametric Bayesian approaches, sensitivity and robustness, and evaluation.
6.883 Online Methods in Machine Learning: Theory and Applications
Prereqs: 6.431, 18.06
Units: 3-0-9
This subject counts as an Artificial Intelligence concentration subject. In a growing number of machine learning applications---such as problems of advertisement placement, node and link prediction in evolving networks, movie recommendation---one must make online, real-time decisions and continuously improve performance with the sequential arrival of data. The course aims to provide a foundation for the development of such online learning methods and for their analysis. The course will have three interleaved components: (i) fundamental theoretical tools for analyzing online methods, (ii) algorithmic techniques for developing computationally efficient methods, and (iii) applications to real-world problems.
6.884 Introduction to Machine Learning
Prereqs: permission of instructor
Units: 4-0-8
The goal of this graduate-level class is to introduce students outside computer science to effective use of machine learning methods. The course is run alongside 6.036 and students must satisfy all the 6.036 requirements. In addition, students complete a semester long guided research project where they explore, formulate, implement, apply, and evaluate machine learning methods in the context of a problem in their research area. Registration is by permission of the instructors. Enrollment is limited.
6.887 Formal Reasoning About Programs
Prereqs: 6.042, 6.005, or equivalent experience with rigorous proofs and programming
Units: 3-0-9
This subject counts as a Computer Systems concentration subject. An introduction to a spectrum of techniques for rigorous mathematical reasoning about correctness of software, emphasizing commonalities across approaches.  The most explicit commonality is formalization of all the different correctness approaches with the Coq proof assistant, a popular software platform for authoring and checking proofs.  The beginning of the class will introduce Coq, with the majority of content continuing that introduction in parallel to learning about classic techniques in semantics and program proof.  This class is being positioned as a potential future "alternative flavor" of 6.820 and will overlap in coverage of such subjects as operational semantics, basic model checking & abstract interpretation, type systems, and program logics (including separation logic).  However, those subjects will take on a different hue viewed through problem sets done fully in Coq, with all grading done automatically by the Coq proof checker.  Additional topics will include a variety of approaches to reasoning about concurrency, including through type systems, program logics, and behavioral refinement of interacting modules.
6.888 Advanced Topics in Networking
Prereqs: 6.829 or equivalent. General background in computer networking preferred or permission of instructor.
Units: 3-0-9
This subject counts as an Advanced Topics in Computer Systems concentration subject. In the past decade, the computer networking landscape has changed significantly with the emergence of large-scale datacenters, the proliferation of mobile devices, and the move towards logically centralized control over networks with software-defined networking. This course is a graduate-level seminar on the latest developments in networking research. Students will read and discuss several papers each week and will conduct a semester-long project, culminating in a draft research paper and presentation. Topics include datacenter network architectures, modern transport protocols, SDN, programmable data planes, measurement, resource allocation and scheduling.
6.S04 Fundamentals of Programming
Prereqs: 6.0001 or 6.0001 Advanced Standing Exam or 6.01
Units: 2-4-6
6.S04 satisfies the 6.02 requirement in the current EECS curriculum.  It also serves as a 6.01 prerequisite for 6.005 and 6.006 so students can take 6.005 or 6.006 after taking 6.S04 even if they have not taken 6.01. 6.S04 is a class on programming basics, and should not be taken by students who have already taken 6.005 or 6.006 unless the student is in the Class of 2019. Introduces fundamental concepts of programming. Designed to develop skills in applying basic methods from programming languages to abstract problems. Topics include programming and Python basics, computational concepts, software engineering, algorithmic techniques, data types, and recursion and tail recursion. Lab component will consist of software design, construction and implementation of design. Students will write programs from scratch for a mini-Pandora music player, edge detector for images, Bacon number calculator, gas simulator, Auto-completer, No-Left-Turn pathfinder, Pong, and Breakout, among other things. Licensed for 2015-2016 by the Committee on Curricula.
6.S062 Mobile and Sensor Computing
Prereqs: 6.005, or equivalent, 6.033 or 6.02
Units: 3-0-9
The ubiquity of sensor-equipped smartphones, combined with the widespread availability of low-power wireless communication and sensing modules, has led to a renewed interest in sensor computing, aka the “Internet of Things” (IoT). 6.S062 is an advanced undergraduate course designed to study the fundamental sensing, computing, and communication software technologies at the core of the recent flurry of activity on IoT. This course will involve a significant programming and software development component, with weekly programming exercises and a team-based term project.  In addition to exposure to fundamental technologies, students will learn how to design and implement (1) libraries and applications on mobile devices that interact with external sensors and use cloud servers for computation and storage, an (2) software on an embedded sensor platform
6.S08 Interconnected Embedded Systems (new)
Prereqs: none
Units: 1-5-6
Satisfies current 6.01 requirement for EECS majors. Introduction to embedded systems in the context of connected devices, wearables and the "Internet of Things". Topics include microcontrollers, energy utilization, algorithmic efficiency, interfacing with sensors, networking, cryptography, local versus distributed computation, data analytics, and 3D printing. Students will design, make, and program an internet-connected wearable device. Final project where student teams will design and demo their own cloud-connected wearable system. Licensed for Spring 2016 by the Committee on Curricula. Enrollment limited; preference to first- and second-year students.
6.S194 Open Source Software Project
Prereqs: 6.005, 6.006, preference given to 6.170 and 6.172 alums
Units: 2-5-5
This subject counts as a department lab. An experiential course in real-world, large-scale software development. Students will be placed on small, global teams (in collaboration with other top-tier universities) and embedded in prominent open source projects participating with us. Each team will take charge of a new feature for the project and will be graded on their contribution. Students will learn aspects of software development as experienced in industry: contributing to large projects that span many years and developers and have real customers and dependencies to support.  Class time will be spent primarily on Agile-style development meetings and reflection on the software development process.
6.S197 Practical Magic
Prereqs: 8.01 (8.02 co-req)
Units: 2-5-2
Provides students with the opportunity to experience the magical aspects of applying physics and machining to electrical product design.  Students learn to use modern fabrication processes (laser cutting, thermoforming, and computer controlled machining) to construct systems using basic physics principles including resonance, conservation laws, and electromagnetic forces.  Projects vary bi-weekly, but include analysis and construction of systems like audio speakers, laser range finders, timed rocket igniters, and optical instruments.
6.S198 Making Mobile Apps
Prereqs: 6.005 or experience with Java
Units: 2-3-7
This subject counts as a department laboratory subject. The goal of this subject is to provide a foundation in mobile app creation.   In the first part of the course, you’ll use , a development platform makes it easy to build apps with a “program blocks” drag-and-drop interface.  You’ll start the semester by immediately creating projects based on your own original apps. Class discussions will focus on what kinds of apps are worth making and how to create projects that have social and economic value.   Once you’ve gotten experience building apps, you’ll switch to full-scale app development with Android Studio, Java and the Android SDK.   With this behind you, you’ll have the tools to create rapid prototypes, assess their potential value, and flesh out these prototypes to create apps of professional quality.   This course covers Android development only.  Students who do not have Android devices can work with Android emulators. Enrollment is limited and by permission of instructor only.  To apply for permission to enroll in 6.S198 for the spring, you fill out the web form at:
6.S898 Cybersecurity Policy
Prereqs: none
Units: 3-0-9
Introduces concepts and issues in cybersecurity policy and how to design and analyze potential solutions. Covers factors affecting cybersecurity policy, including but not limited to technology design, government policy and regulation, global Internet governance, private sector actors, and non-governmental organizations, and their interaction.  Topics include cybersecurity in national security, risk management, intellectual property theft, crime, Internet governance, and censorship and control from US and international perspectives.
6.S977 Technical Communication Skills for Graduate Students
Prereqs: none
Units: 3-0-3
6.S978 Privacy Legislation in Practice: Law and Technology
Prereqs: none
Units: 2-0-10
This course will be taught jointly by faculty from MIT and Georgetown University Law School and classes will meet via videoconference.  The aim of the course is to have law students and engineering students jointly explore in-depth current issues in privacy policy and to propose policy solutions in the form of legislation that could be adopted by state governments. The course will pair law students at Georgetown Law with engineering students at MIT to form interdisciplinary teams, each consisting of two law students and two MIT students.  Each team will be assigned a specific question of public policy, and over the course of the semester the team will be responsible for preparing a detailed legal assessment of the policy question, the technological frameworks and challenges associated with the policy question, and formulating policy and technological recommendations to address the question in the form of draft state legislation.
Fall 2015
6.261 Network Coding
Prereqs: Permission of instructor
Units: 3-0-9
This subjects qualifies as a Communications concentration subject This course covers the main theoretical foundations of network coding and presents several of its most pertinent recent applications. The first half of the course covers algebraic network coding, distributed random network code construction, optimization for multicast connections, construction of codes for non-multicast connections and network equivalence theory. The second part of the course investigates the applications of network coding in various areas, with an emphasis on network coding for security,  wireless mesh networks, TCP with network coding and distributed storage using random network codes. There are no prerequisites to this course, and the course is open to undergraduates, but a background in information theory is useful. There are problem sets, reading projects and a final project.
6.876J Advanced Topics in Crypotography: Lattices and Applications
Prereqs: 6.046 and 6.045 (or equivalent)
Units: 3-0-9
Integer lattices are powerful mathematical objects that have found applications in many diverse facets of computer science, most notably in the areas of cryptography and combinatorial optimization. This course gives an introduction to the theory of integer lattices -- algorithms and applications to combinatorial optimization, their recent use in cryptography culminating in the first construction of a fully homomorphic encryption scheme, and the fascinating complexity landscape associated with lattice problems.
6.883 Advanced Machine Learning
Prereqs: 6.437, 6.438 or 6.867
Units: 3-0-9
This subject qualifies as an Artificial Intelligence concentration subject. Fundamental and research-level topics around machine learning problems mostly with discrete and combinatorial structures. Example problems, mathematical models and representations (structured prediction, estimation with sparsity structure, graphs, negative correlations and diversity, etc.) and suitable algorithmic techniques using smooth and non-smooth convex optimization, decomposition techniques, submodular and combinatorial optimization. The course will show connections between different techniques, and connections beyond machine learning.
6.904 Ethics for Engineers
Prereqs: None
Units: 2-0-4
Integrates classical readings that provide an overview of ethics with a survey of case studies that focus on ethical problems arising in the practice of engineering. Readings taken from a variety of sources, such as Aristotle, Machiavelli, Bacon, Hobbes, Locke, the Founding Fathers, and the Bible. Case studies include written analyses and films that address engineering disasters, biotechnology, court cases, ethical codes, and the ultimate scope and aims of engineering.
6.S04 Special Subject: Fundamentals of Programming
Prereqs: 6.0001 or 6.01
Units: 4-4-4
Satisfies the 6.02 requirement. Introduces fundamental concepts of programming. Designed to develop skills in applying basic methods from programming languages to abstract problems. Topics include programming and Python basics, computational concepts, software engineering, algorithmic techniques, data types, and recursion and tail recursion. Lab component will consist of software design, construction and implementation of design. Licensed for 2015-2016 by the Committee on Curricula. 6 Engineering Design Points. Limited enrollment. This is an entry level programming class, if you have already taken 6.005 or 6.006 you will not be allowed to enroll in 6.S04.
6.S083 Computation and Linguistics
Prereqs: 6.034
Units: 3-0-9
Computational aspects of current linguistic theories of morphology, syntax, and semantics. Automata-theoretic models of syntax and morphology from the classical era to contemporary approaches. Formal models of contemporary minimalist theories of syntax. Computational complexity analysis of current linguistic theories and its import for natural language processing.  Formal learnability theory as applied to current linguistic theories.
6.S193 Introduction to EECS Prototyping
Prereqs: none
Units: 0-3-0
In this hands-on, project-based course, students will learn the foundations of project design and fabrication. Basic manual mechanical tools will be introduced to gain familiarity with mechanical construction techniques as commonly seen in EECS areas. Electrical fabrication will include learning to solder and debug circuits using a variety of electronic test and measurement equipment. Rapid mechanical prototyping tools will be heavily used as students are extensively trained on the safe use of laser cutters, thermoformers, 3D printers, and the requisite design software. Students will learn to design a circuit schematic and printed circuit board (PCB) to receive signcant practice with sourcing components and interconnects, and reading and producing technical documentation. This class will be taught in the Cypress Engineering Design Studio (EDS) and enrollment will be limited to 15.
6.S897 Large-Scale Systems
Prereqs: 6.824, 6.828 or 6.830
Units: 3-0-9
This graduate-level course will cover recent papers in large-scale systems, including big data processing and cloud computing. Students will discuss the key papers in this topic and complete a semester-long mini research project. The course is designed for graduate students or advanced undergraduates who have already taken graduate-level systems classes (e.g. 6.824 and 6.830).
6.S899 Seminar on Physics and Computation
Prereqs: 6.845 or 2.111
Units: 3-0-9
This is an advanced graduate course about recent connections between computational complexity and physics, going beyond the fundamental connection established by quantum computing.  Topics will include: quantum computing with bosons and fermions (e.g., BosonSampling and FermionSampling); computational aspects of the black-hole firewall problem and the AdS/CFT correspondence; complexity of quantum states and unitary transformations; universality of gates, cellular automata, and billiard-ball models; and quantum computing with closed timelike curves.  A major part of the course is to read a recent paper and give an in-class presentation about it.  The course is open to students who have taken a previous course on quantum computation, such as 6.845 or 2.111.
6.S978 Graphs, Linear Algebra, and Continuous Optimization
Prereqs: 18.06, 6.006, 6.046 recommended, 6.041 or 18.600
Units: 3-0-9
This subject offers a tour through the ideas and concepts that underlie the development of fast graph algorithms using tools of continuous optimization and linear algebra. Along the way, it will cover basics of continuous optimization (gradient descent, constrained optimization, interior-point methods), elements of spectral graph theory, as well as some more advanced graph algorithmic techniques (sparsification, graph partitioning).
9.520 Statistical Learning Theory and Applications
Prereqs: 6.867, 6.041, 18.06, or permission of instructor
Units: 3-0-9
This subject will count as an AI Concentration subject. Provides students with the knowledge needed to use and develop advanced machine learning solutions to challenging problems. Covers foundations and recent advances of machine learning in the framework of statistical learning theory. Focuses on regularization techniques key to high-dimensional supervised learning. Starting from classical methods such as regularization networks and support vector machines, addresses state-of-the-art techniques based on principles such as geometry or sparsity, and discusses a variety of algorithms for supervised learning, feature selection, structured prediction, and multitask learning. Also focuses on unsupervised learning of data representations, with an emphasis on hierarchical (deep) architectures.
9.523 Aspects of Computational Theory of Intelligence
Prereqs: Permission of instructor
Units: 3-0-9
Integrates neuroscience, cognitive and computer science to explore the nature of intelligence, how it is produced by the brain, and how it can be replicated in machines. Discusses an array of current research connected through an overarching theme of how it contributes to a computational account of how humans analyze dynamic visual imagery to understand objects and actions in the world.
Spring 2015
21M.359 Interactive Music Systems
Units: 3-0-9
Interactive Music Systems is a hands on programming and design course that explores audio synthesis, musical structure, HCI (human computer interfaces), and visual presentation as the ingredients for the creation of engaging real-time interactive musical experiences. Interactive musical experiences beckon users to dynamically connect to music in ways not generally available through passive listening. The most successful ones provide palpable control, musical insight, heightened sensation, and an emotional response for the user. Some examples include: • Games like Guitar Hero, , and (pictured above) • Performance rigs like . • for the iPhone • , released in 1997 - Harmonixs first interactive music product. Students will learn about the principles, design considerations, and aesthetic qualities of interactive music systems by exploring the following topics: • Music perception and audio synthesis • Dynamic multi-track audio mixing and looping • Programmatic MIDI and event sequencing • Generative composition systems including rhythmic, melodic, and chord-progression synthesis • Exploration of non-standard control devices such as joysticks, spatial sensors (Kinect), and motion sensors (Playstation Move / WiiMote) • Analysis and application of design elements in music games • Building graphics for UI, music visualization, and aesthetic cohesion. The course is taught using python (python proficiency is required). Weekly assignments consist of programming exercises and content creation that equally emphasize the development of technical skills and creativity. The class requires a final project where students propose, design, and build an original, dynamic, and engaging interactive music system. Eran Egozy is Co-Founder and CTO of Harmonix Music Systems, most famously known for the games Guitar Hero, Rock Band, and Dance Central. Eran graduated from MIT with an M.Eng. in EECS and also plays clarinet.
6.260 Theoretical Statistics
Prereqs: Linear algebra, 6.436 or equivalent (upper division probability/statistics)
Units: 3-0-9
This subject qualifies as a Communications concentration subject. A graduate-level introduction to theoretical statistics, covering both frequentist and Bayesian aspects of modeling, inference, and decision-making. Topics include statistical decision theory; point estimation; exponential families; Bayesian methods; empirical and hierarchical Bayes; hypothesis testing; confidence intervals; asymptotics; M-estimation; James-Stein theory; high-dimensional regression and covariance estimation. Pre-requisites include linear algebra, 6.436 or equivalent upper-division probability/statistics; real analysis is a plus.
6.885 Introduction to Principles and Practice of Software Synthesis
Prereqs: 6.035
Units: 3-0-9
This subject qualifies as a Computer Systems concentration subject. The goal of this course is to provide a comprehensive introduction to the field of Software synthesis, an emerging field that sits at the intersection of programming systems, formal methods and artificial intelligence. The course will cover classical work on automata-based synthesis of reactive systems, as well as recent advances in the use of SAT/SMT solvers to synthesize programs from sketches. It will also cover the use of heuristic search techniques to explore large spaces of candidate programs. The course will also discuss different approaches to address the specification problem, ranging from logic-based specification mechanisms to programming by demonstration. The course will be graded on the basis of three major homework assignments and a final project.
6.886 Advanced Performance-Engineering for Multicore Applications
Prereqs: 6.172 or at least two of 6.046, 6.035, and 6.823 or permission of instructor
Units: 4-6-2
This subject qualifies as a Computer Systems OR Theoretical Computer Science concentration subject. This project-based subject will provide students a foundation in advanced software performance engineering.  As Moore’s Law comes to an end, the importance of performance engineering will rise, and the need for performance-engineering technology will grow.  Lab work will involve two term projects. Students will performance-engineer a multicore application or library and develop or enhance a performance-engineering tool, both of their own choosing and either in small teams or individually.  Students will present their work in design and code reviews, as well as present topical material.  Although not mandatory for either of the two projects, the focus of the course will be on C/C++, Cilk, and LLVM.  Some of the projects may serve as the basis for or a component of a graduate thesis or conference publication.  Possible topics include parallelism and scalability analysis, work-stealing schedulers, compiler and runtime support for parallelism, memory hierarchy and cache simulators, cache-efficient algorithms, race detectors, performance profiling, vectorization, compiler instrumentation, data-graph computations, task-graph execution, pipeline parallelism, performance-testing infrastructure, hyperobjects, autotuning, domain-specific compilers, and metaprogramming for performance.
6.888 Certified Systems Software
Prereqs: permission of instructor
Units: 3-0-9
This subject qualifies as a Computer Systems concentration subject. 6.888 is a graduate seminar on research in certified systems software. The goal of the class is to get the students to build provably correct software.  The structure of the class will consist of students presenting research papers during lecture, and students working on a significant research project.  We expect students to start working on the project in the first week or two, and continue for the entire semester, culminating in a draft research paper.  Examples of project include building a certified file system, distributed key-value store, in-kernel interpreter, simple OS kernel, etc. Course web site:
6.891 Games, Decision, and Computation - Part A
Prereqs: 6.046 or equivalent, 6.042 or equivalent
Units: 3-0-9
This subject qualifies as a Theoretical Computer Science concentration subject. Many systems have components that are controlled by people (as in the Internet) or are people themselves (as in an auction). Engineering such a system is challenging because each user may try to game the system to his advantage. Things become even more challenging when the system is very large but the computational resources of the designer and all components are limited, and when the components may collude and may have privacy concerns about revealing information about themselves. This class, situated at the intersection of algorithms, cryptography, and game theory, is devoted to analyzing and engineering such systems. It is intended to be the first part of a two-class sequence. Topics include games, equilibria, auctions, and mechanism design.
6.S078 Entrepreneurship Project
Units: 12
6.S079 Computational Fabrication
Prereqs: Calculus II (GIR), 6.005, (6.837 desired), or permission of instructor
Units: 3-0-9
6.S194 Open Source Software Project
Prereqs: 6.005,6.006, preference given to 6.170 and 6.172 alums
Units: 2-5-5
An experiential course in real-world, large-scale software development. Students will be placed on small, global teams (in collaboration with other top-tier universities) and embedded in prominent open source projects participating with us. Each team will take charge of a new feature for the project and will be graded on their contribution. Students will learn aspects of software development as experienced in industry: contributing to large projects that span many years and developers and have real customers and dependencies to support.  Class time will be spent primarily on Agile-style development meetings and reflection on the software development process.
6.S198 Making Mobile Apps
Prereqs: 6.005 or experience with Java
Units: 2-3-7
This subject counts as a department laboratory subject. The goal of this subject is to provide a foundation in mobile app creation.   In the first part of the course, you’ll use , a development platform makes it easy to build apps with a “program blocks” drag-and-drop interface.  You’ll start the semester by immediately creating projects based on your own original apps. Class discussions will focus on what kinds of apps are worth making and how to create projects that have social and economic value.   Once you’ve gotten experience building apps, you’ll switch to full-scale app development with Android Studio, Java and the Android SDK, starting with the Udacity online video course .   With this behind you, you’ll have the tools to create rapid prototypes, assess their potential value, and flesh out these prototypes to create apps of professional quality. This course covers Android development only.  Students who do not have Android devices can work with Android emulators. Enrollment is limited and by permission of instructor only.  To apply for permission to enroll in 6.S198 for the spring, you fill out Applications are due December 20, 2014.
6.S897 Algebra and Computation
Prereqs: 6.840J and 6.046J and 18.073
Units: 3-0-9
6.S977 Entrepreneurship Project
Units: 12
6.S978 Privacy Legislation in Practice: Law and Technology
Prereqs: none
Units: 2-0-10
This course will be taught jointly at MIT at Georgetown University Law School and classes will meet via videoconference.  The aim of the course is to have law students and technology students jointly explore in-depth current issues in privacy policy and to propose policy solutions in the form of legislation that could be adopted by state governments. The course will pair law students at Georgetown Law with technology students at MIT to form at least five interdisciplinary teams, each consisting of two law students and two MIT students.  Each team will be assigned a specific question of public policy, and over the course of the semester the team will be responsible for preparing a detailed legal assessment of the policy question, the technological frameworks and challenges associated with the policy question, and formulating policy and technological recommendations to address the question in the form of draft state legislation.
Fall 2014
17.S952 Elections and Voting Technology
Prereqs: None
Units: 3-0-9
6.00 Introduction to Computer Science and Programming
6.0001 Introduction to Computer Science and Programming in Python
Prereqs: None
Units: 2-3-1
6.0002 Introduction to Computational Thinking and Data Science
Prereqs: None
Units: 2-3-1
6.348 Radar Systems and Signal Processing
Prereqs: 6.011
Units: 4-0-8
6.890 Algorithmic Lower Bounds: Fun with Hardness Proofs
Prereqs: 6.046 (or equivalent), or permission of instructor
Units: 3-0-9
6.893 Algorithms and Signal Processing
Prereqs: 6.046, 6.042 or 6.041; basic signal processing
Units: 3-0-9
This subject qualifies as a Theoretical Computer Science concentration subject.
6.S077 Fundamentals of Photonics
Prereqs: 6.013 or 6.007 or 8.07 or 8.03 or 2.71
Units: 2-0-10
This subject qualifies as an Advanced Undergraduate Subject. Graduate Version 6.S977 qualifies as an Applied Physics concentration subject. This course covers the fundamentals of optics and the interaction of light and matter, leading to devices including light emitting diodes, optical amplifiers, and lasers.  Topics include classical ray optics; wave optics; beam optics; Fourier optics; Maxwells electromagnetic waves; resonators; quantum theory of photons; light-matter interaction; laser amplification; lasers; and semiconductors optoelectronics. Graduate version requires the completion of additional assignments.
6.S078 Planning Algorithms
Prereqs: 6.006; Familiarity with probability, e.g. 6.041 or 18.05, is recommended
Units: 3-0-9
This subject qualifies as an Advanced Undergraduate Subject. Introduction to algorithms for planning action sequences with applications in artificial intelligence, robotics and computer games. The course covers a broad spectrum of representations and algorithms from ( a ) symbolic planning, ( b ) robot motion planning and ( c ) probabilistic planning . Topics include: state-space search,  heuristics, STRIPS planning, configuration-space representation, sampling-based motion planning, decision theory, Markov decision processes and partially observable Markov decision processes.
6.S897 Elections and Voting Technology
Prereqs: None
Units: 3-0-9
6.S898 Readings in Database Systems - A Revised Version of the "Red Book"
Prereqs: 6.830/6.814 or equivalent
Units: 2-0-6
6.S899 Distributed Graph Algorithms
Prereqs: Basic algorithms (6.046), Basic probability (6.042 or 6.041)
Units: 2-0-4
6.S974 Language, Computation, and Biology
Prereqs: none, permission of instructor
Units: 3-0-9
Examines the biology and evolution of human language from the perspective of current linguistic theory and evolutionary and computational modeling. Provides the interdisciplinary analytical background required in order to critically read the literature in this area.
6.S977 Fundamentals of Photonics
Prereqs: 6.013 or 6.007 or 8.07 or 8.03 or 2.71
Units: 2-0-10
This subject qualifies as an Advanced Undergraduate Subject. Graduate Version 6.S977 qualifies as an Applied Physics concentration subject. This course covers the fundamentals of optics and the interaction of light and matter, leading to devices including light emitting diodes, optical amplifiers, and lasers.  Topics include classical ray optics; wave optics; beam optics; Fourier optics; Maxwells electromagnetic waves; resonators; quantum theory of photons; light-matter interaction; laser amplification; lasers; and semiconductors optoelectronics. Graduate version requires the completion of additional assignments.