Who's Teaching What

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

Fall 2021
21M.387 Fundamentals of Music Processing (also 6.S197)
Prereqs: 6.003, 6.0002, and 21M.051
Units: 3-0-9
Satisfies: HASS-A, DLAB2
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
Prereqs: 8.04 or permission of instructor
Units: 3-0-9
Satisfies: AAGS, Applied Physics Concentration
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
Prereqs: none
Units: 3-0-9
Satisfies: AAGS, Artificial Intelligence concentration
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
Prereqs:
Units: 3-0-9
Satisfies: AAGS, Computer Systems concentration
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
Prereqs: 6.006, 6.046
Units: 3-0-9
Satisfies: AAGS, Theoretical Computer Science concentration
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
Prereqs: 6.033
Units: 3-0-9
Satisfies: II
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 (meets with 16.420)
Prereqs: 6.006 and (6.008 or 6.041) and 6.009
Units: 3-0-9
Satisfies: 6.034 alternative
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. ROLE IN CURRICULUM:
6.S059 Nanotechnology - Design from Atoms to Everything
Prereqs: 8.02 Physics II
Units: 2-3-7
Satisfies: DLAB2, AUS2
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
Prereqs: 6.006 and 6.033, or permission of instructor
Units: 4-0-8
Satisfies: AUS2
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
Prereqs: None
Units: 3-0-6
Satisfies: substitute for 6.0001
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)
Prereqs: 6.02, 6.041, 6.042, or equivalent
Units: 3-0-9
Satisfies: AUS2, DLAB2
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
Prereqs: 6.004
Units: 3-6-3
Satisfies: AUS2
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 (also 18.061)
Prereqs: 18.02
Units: 5-0-7
Satisfies: can be substituted for 18.06 requirement
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
Prereqs: permission of instructor
Units: 2-0-4
Satisfies: none
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
Prereqs: 6.036, 6.041 or 6.042; 18.06
Units: 3-0-3
Satisfies: None
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
Prereqs: Analysis of algorithms, at the level of 6.046.  Probability.  Desirable
Units: 3-0-9
Satisfies: none
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
Prereqs: knowledge of Linear Algebra, Calculus, and basic programming skills
Units: 2-0-7
Satisfies: none
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 (also 18.S096)
Prereqs: 18.02
Units: 5-0-7 (updated)
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 Tellegen's 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, Szemeredi's 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 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.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 - Harmonix's 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; Maxwell's 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; Maxwell's electromagnetic waves; resonators; quantum theory of photons; light-matter interaction; laser amplification; lasers; and semiconductors optoelectronics. Graduate version requires the completion of additional assignments.