6-1 6-2 (old) 6-2 (new) 6-3 (old) 6-3 (new)
6-4 6-7 6-9 6-14
MEng (6-1, 6-2, 6-3, 6-4) MEng (6-7) MEng (6-14)

Notes:

6-1 Electrical Science and Engineering

6-1/8-flex EE for double majors in Physics

6-2 (old) Electrical Engineering and Computer Science

6-2 (new) Electrical Engineering and Computer Science

6-3 (old) Computer Science and Engineering

6-3 (new) Computer Science and Engineering

6-4 Artificial Intelligence and Decision Making

6-7 Computer Science and Molecular Biology

6-9 Computation and Cognition

Course 6-9, Computation and Cognition, is administered by the Department of Brain and Cognitive Sciences. You can find the current degree requirements at

https://bcs.mit.edu/academic-program/course-6-9-degree-chart

6-14 Computer Science, Economics and Data Science

Masters of Engineering (6-1, 6-2, 6-3, 6-4)

Masters of Engineering (6-7)

Masters of Engineering (6-14)

Summary Table

The following table shows the requirements satisfied by each subject for each of the Fall and Spring terms. A row is grey if the subject is not offered this academic year.

SubjectFall 2023Spring 2024
AUS2CIM2DLAB2IIAUS2CIM2DLAB2II
18.404
18.404 Theory of Computation

()
Prereqs: 6.1200 or 18.200
Units: 4-0-8

A more extensive and theoretical treatment of the material in 6.1400J/18.400J, emphasizing computability and computational complexity theory. Regular and context-free languages. Decidable and undecidable problems, reducibility, recursive function theory. Time and space measures on computation, completeness, hierarchy theorems, inherently complex problems, oracles, probabilistic computation, and interactive proof systems.

X
6.10406.170
6.1040 Software Design

()
Prereqs: 6.1020 and 6.1200
Units: 4-0-14

Provides design-focused instruction on how to build complex software applications. Design topics include classic human-computer interaction (HCI) design tactics (need finding, heuristic evaluation, prototyping, user testing), conceptual design (inventing, modeling and evaluating constituent concepts), social and ethical implications, abstract data modeling, and visual design. Implementation topics include reactive front-ends, web services, and databases. Students work both on individual projects and a larger team project in which they design and build full-stack web applications.

X X X
6.10606.172
6.1060 Software Performance Engineering

()
Prereqs: 6.1020, 6.1210, and 6.1910
Units: 3-12-3

Project-based introduction to building efficient, high-performance and scalable software systems. Topics include performance analysis, algorithmic techniques for high performance, instruction-level optimizations, vectorization, cache and memory hierarchy optimization, and parallel programming.

X X X
6.11006.035
6.1100 Computer Language Engineering

()
Prereqs: 6.1020 and 6.1910
Units: 4-4-4

Analyzes issues associated with the implementation of higher-level programming languages. Fundamental concepts, functions, and structures of compilers. The interaction of theory and practice. Using tools in building software. Includes a multi-person project on compiler design and implementation.

X X X
6.11206.818
6.1120 Dynamic Computer Language Engineering

()
Prereqs: 6.1020 or 6.1910
Units: 4-4-4

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. Includes a semester-long, group project that delivers a virtual machine that spans all of these topics.

X X
6.14206.054
6.1420 Fixed Parameter and Fine-grained Computation

()
Prereqs: 6.1200, 6.1210, and (6.1220, 6.1400, or 18.404)
Units: 3-0-9

An overview of the theory of parameterized algorithms and the "problem-centric" theory of fine-grained complexity, both of which reconsider how to measure the difficulty and feasibility of solving computational problems. Topics include: fixed-parameter tractability (FPT) and its characterizations, the W-hierarchy (W[1], W[2], W[P], etc.), 3-sum-hardness, all-pairs shortest paths (APSP)-equivalences, strong exponential time hypothesis (SETH) hardness of problems, and the connections to circuit complexity and other aspects of computing.

X X
6.16006.053
6.1600 Foundations of Computer Security

()
Prereqs: 6.1210 and 6.1800
Units: 4-0-8

Fundamental notions and big ideas for achieving security in computer systems. Topics include cryptographic foundations (pseudorandomness, collision-resistant hash functions, authentication codes, signatures, authenticated encryption, public-key encryption), systems ideas (isolation, non-interference, authentication, access control, delegation, trust), and implementation techniques (privilege separation, fuzzing, symbolic execution, runtime defenses, side-channel attacks). Case studies of how these ideas are realized in deployed systems. Lab assignments apply ideas from lectures to learn how to build secure systems and how they can be attacked.

X
6.18006.033
6.1800 Computer Systems Engineering

()
Prereqs: 6.1910
Units: 5-1-6

Topics on the engineering of computer software and hardware systems: techniques for controlling complexity; strong modularity using client-server design, operating systems; performance, networks; naming; security and privacy; fault-tolerant systems, atomicity and coordination of concurrent activities, and recovery; impact of computer systems on society. Case studies of working systems and readings from the current literature provide comparisons and contrasts. Includes a single, semester-long design project. Students engage in extensive written communication exercises. Enrollment may be limited.

X
6.18106.039
6.1810 Operating System Engineering

()
Prereqs: 6.1910
Units: 3-0-9

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, xv6, is used to illustrate these topics. Individual laboratory assignments involve extending the xv6 operating system, for example to support sophisticated virtual memory features and networking.

X
6.18206.808
6.1820 Mobile and Sensor Computing

()
Prereqs: 6.1800 or permission of instructor
Units: 3-0-9

Focuses on "Internet of Things" (IoT) systems and technologies, sensing, computing, and communication. Explores fundamental design and implementation issues in the engineering of mobile and sensor computing systems. Topics include battery-free sensors, seeing through wall, robotic sensors, vital sign sensors (breathing, heartbeats, emotions), sensing in cars and autonomous vehicles, subsea IoT, sensor security, positioning technologies (including GPS and indoor WiFi), inertial sensing (accelerometers, gyroscopes, inertial measurement units, dead-reckoning), embedded and distributed system architectures, sensing with radio signals, sensing with microphones and cameras, wireless sensor networks, embedded and distributed system architectures, mobile libraries and APIs to sensors, and application case studies. Includes readings from research literature, as well as laboratory assignments and a significant term project.

X X X
6.18506.052
6.1850 Computer Systems and Society

()
Prereqs: 6.1800
Units: 3-0-9

Explores the impact of computer systems on individual humans, society, and the environment. Examines large- and small-scale power structures that stem from low-level technical design decisions, the consequences of those structures on society, and how they can limit or provide access to certain technologies. Students learn to assess 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 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; and the environmental impact of proof-of-work-based systems such as Bitcoin. Enrollment may be limited.

X X
6.19206.175
6.1920 Constructive Computer Architecture

()
Prereqs: 6.1910
Units: 3-8-1

Illustrates a constructive (as opposed to a descriptive) approach to computer architecture. Topics include combinational and pipelined arithmetic-logic units (ALU), in-order pipelined microarchitectures, branch prediction, blocking and unblocking caches, interrupts, virtual memory support, cache coherence and multicore architectures. Labs in a modern Hardware Design Language (HDL) illustrate various aspects of microprocessor design, culminating in a term project in which students present a multicore design running on an FPGA board.

X X
6.20406.101
6.2040 Analog Electronics Laboratory

()
Prereqs: 6.2000
Units: 2-9-1

Experimental laboratory explores the design, construction, and debugging of analog electronic circuits. Lectures and laboratory projects in the first half of the course investigate the performance characteristics of semiconductor devices (diodes, BJTs, and MOSFETs) and functional analog building blocks, including single-stage amplifiers, op amps, small audio amplifier, filters, converters, sensor circuits, and medical electronics (ECG, pulse-oximetry). Projects involve design, implementation, and presentation in an environment similar to that of industry engineering design teams. Instruction and practice in written and oral communication provided. Opportunity to simulate real-world problems and solutions that involve tradeoffs and the use of engineering judgment.

X X X X
6.20506.111
6.2050 Digital Systems Laboratory

()
Prereqs: 6.1910 or permission of instructor
Units: 3-7-2

Lab-intensive subject that investigates digital systems with a focus on FPGAs. Lectures and labs cover logic, flip flops, counters, timing, synchronization, finite-state machines, digital signal processing, communication protocols, and modern sensors. Prepares students for the design and implementation of a large-scale final project of their choice: games, music, digital filters, wireless communications, video, or graphics. Extensive use of System/Verilog for describing and implementing and verifying digital logic designs.

X X X X
6.20606.115
6.2060 Microcomputer Project Laboratory

()
Prereqs: 6.1910, 6.2000, or 6.3000
Units: 3-6-3

Introduces analysis and design of embedded systems. Microcontrollers provide adaptation, flexibility, and real-time control. Emphasizes construction of complete systems, including a five-axis robot arm, a fluorescent lamp ballast, a tomographic imaging station (e.g., a CAT scan), and a simple calculator. Presents a wide range of basic tools, including software and development tools, programmable system on chip, peripheral components such as A/D converters, communication schemes, signal processing techniques, closed-loop digital feedback control, interface and power electronics, and modeling of electromechanical systems. Includes a sequence of assigned projects, followed by a final project of the student's choice, emphasizing creativity and uniqueness. Provides instruction in written and oral communication. To satisfy the independent inquiry component of this subject, students expand the scope of their laboratory project.

X X X
6.20616.1151
6.2061 Microcomputer Project Laboratory - Independent Inquiry

()
Prereqs: 6.1910, 6.2000, or 6.3000
Units: 3-9-3

Introduces analysis and design of embedded systems. Microcontrollers provide adaptation, flexibility, and real-time control. Emphasizes construction of complete systems, including a five-axis robot arm, a fluorescent lamp ballast, a tomographic imaging station (e.g., a CAT scan), and a simple calculator. Presents a wide range of basic tools, including software and development tools, programmable system on chip, peripheral components such as A/D converters, communication schemes, signal processing techniques, closed-loop digital feedback control, interface and power electronics, and modeling of electromechanical systems. Includes a sequence of assigned projects, followed by a final project of the student's choice, emphasizing creativity and uniqueness. Provides instruction in written and oral communication. Students taking independent inquiry version 6.2061 expand the scope of their laboratory project.

X X X X
6.20806.300
6.2080 Semiconductor Electronic Circuits

()
Prereqs: 6.2000
Units: 3-2-7

Provides an introduction to basic circuit design, starting from basic semiconductor devices such as diodes and transistors, large and small signal models and analysis, to circuits such as basic amplifier and opamp circuits. Labs give students access to CAD/EDA tools to design, analyze, and layout analog circuits. At the end of the term, students have their chip design fabricated using a 22nm FinFET CMOS process.

X
6.20906.301
6.2090 Solid-State Circuits

()
Prereqs: 6.2040, 6.2080, or permission of instructor
Units: 3-2-7

Fosters deep understanding and intuition that is crucial in innovating analog circuits and optimizing the whole system in bipolar junction transistor (BJT) and metal oxide semiconductor (MOS) technologies. Covers both theory and real-world applications of basic amplifier structures, operational amplifiers, temperature sensors, bandgap references. Covers topics such as noise, linearity and stability. Homework and labs give students access to CAD/EDA tools to design and analyze analog circuits. Provides practical experience through lab exercises, including a broadband amplifier design and characterization. Students taking graduate version complete additional assignments.

X X
6.20926.321
6.2092 Solid-State Circuits

()
Prereqs: 6.2040, 6.2080, or permission of instructor
Units: 3-2-7

Fosters deep understanding and intuition that is crucial in innovating analog circuits and optimizing the whole system in bipolar junction transistor (BJT) and metal oxide semiconductor (MOS) technologies. Covers both theory and real-world applications of basic amplifier structures, operational amplifiers, temperature sensors, bandgap references. Covers topics such as noise, linearity and stability. Homework and labs give students access to CAD/EDA tools to design and analyze analog circuits. Provides practical experience through lab exercises, including a broadband amplifier design and characterization. Students taking graduate version complete additional assignments.

X X
6.22006.061
6.2200 Electric Energy Systems

()
Prereqs: 6.2000
Units: 4-0-8

Analysis and design of modern energy conversion and delivery systems. Develops a solid foundation in electromagnetic phenomena with a focus on electrical energy distribution, electro-mechanical energy conversion (motors and generators), and electrical-to-electrical energy conversion (DC-DC, DC-AC power conversion). Students apply the material covered to consider critical challenges associated with global energy systems, with particular examples related to the electrification of transport and decarbonization of the grid.

X
6.22206.131
6.2220 Power Electronics Laboratory

()
Prereqs: 6.2000 or 6.3100
Units: 3-6-3

Introduces the design and construction of power electronic circuits and motor drives. Laboratory exercises 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 include DC, induction, and permanent magnet motors, with drive considerations. Provides instruction in written and oral communication. Students taking independent inquiry version 6.2221 expand the scope of their laboratory project.

X X X
6.22216.1311
6.2221 Power Electronics Laboratory - Independent Inquiry

()
Prereqs: 6.2000 or 6.3000
Units: 3-9-3

Introduces the design and construction of power electronic circuits and motor drives. Laboratory exercises 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 include DC, induction, and permanent magnet motors, with drive considerations. Provides instruction in written and oral communication. To satisfy the independent inquiry component of this subject, students expand the scope of their laboratory project.

X X X X
6.23706.161
6.2370 Modern Optics Project Laboratory

()
Prereqs: 6.3000
Units: 3-5-4

Lectures, laboratory exercises and projects on optical signal generation, transmission, detection, storage, processing and display. Topics include polarization properties of light; reflection and refraction; coherence and interference; Fraunhofer and Fresnel diffraction; holography; Fourier optics; coherent and incoherent imaging and signal processing systems; optical properties of materials; lasers and LEDs; electro-optic and acousto-optic light modulators; photorefractive and liquid-crystal light modulation; display technologies; optical waveguides and fiber-optic communication systems; photodetectors. Students may use this subject to find an advanced undergraduate project. Students engage in extensive oral and written communication exercises. Recommended prerequisite: 8.03.

X X X
6.24006.051
6.2400 Introduction to Quantum Systems Engineering

()
Prereqs: 6.2300 and (18.06 or 18.C06)
Units: 4-2-6

Introduction to the quantum mechanics needed to engineer quantum systems for computation, communication, and sensing. Topics include: motivation for quantum engineering, qubits and quantum gates, rules of quantum mechanics, mathematical background, quantum electrical circuits and other physical quantum systems, harmonic and anharmonic oscillators, measurement, the Schrödinger equation, noise, entanglement, benchmarking, quantum communication, and quantum algorithms. No prior experience with quantum mechanics is assumed.

X
6.24106.157
6.2410 Quantum Engineering Platforms

()
Prereqs: 6.2400, 6.6400, 18.435, or (8.04 and 8.05)
Units: 1-5-6

Provides practical knowledge and quantum engineering experience with several physical platforms for quantum computation, communication, and sensing, including photonics, superconducting qubits, and trapped ions. Labs include both a hardware component — to gain experience with challenges, design, and non-idealities — and a cloud component to run algorithms on state of the art commercial systems. Use entangled photons to communicate securely (quantum key distribution). Run quantum algorithms on trapped ion and superconducting quantum computers. 

X X
6.25306.701
6.2530 Introduction to Nanoelectronics

()
Prereqs: 6.3000
Units: 4-0-8

Transistors at the nanoscale. Quantization, wavefunctions, and Schrodinger's equation. Introduction to electronic properties of molecules, carbon nanotubes, and crystals. Energy band formation and the origin of metals, insulators and semiconductors. Ballistic transport, Ohm's law, ballistic versus traditional MOSFETs, fundamental limits to computation.

X
6.25406.015
6.2540 Nanotechnology: From Atoms to Systems

()
Prereqs: GIR:PHY2
Units: 2-3-7

Introduces the fundamentals of applied quantum mechanics, materials science, and fabrication skills needed to design, engineer, and build emerging nanodevices with diverse applications in energy, memory, display, communications, and sensing. Focuses on the application and outlines the full progression from the fundamentals to the implemented device and functional technology. Closely integrates lectures with design-oriented laboratory modules. 

X
6.26006.152
6.2600 Micro/Nano Processing Technology

()
Prereqs: GIR:CAL2, GIR:CHEM, GIR:PHY2, or permission of instructor
Units: 3-4-5

Introduces the theory and technology of micro/nano fabrication. Includes lectures and laboratory sessions on processing techniques: wet and dry etching, chemical and physical deposition, lithography, thermal processes, packaging, and device and materials characterization. Homework uses process simulation tools to build intuition about higher order effects. Emphasizes interrelationships between material properties and processing, device structure, and the electrical, mechanical, optical, chemical or biological behavior of devices. Students fabricate solar cells, and a choice of MEMS cantilevers or microfluidic mixers. Students formulate their own device idea, either based on cantilevers or mixers, then implement and test their designs in the lab. Students engage in extensive written and oral communication exercises. Course provides background for research work related to micro/nano fabrication. Enrollment limited.

X X
6.31006.302
6.3100 Dynamical System Modeling and Control Design

(,)
Prereqs: GIR:PHY2 and (18.06 or 18.C06)
Units: 4-4-4

A learn-by-design introduction to modeling and control of discrete- and continuous-time systems, from intuition-building analytical techniques to more computational and data-centric strategies. Topics include: linear difference/differential equations (natural frequencies, transfer functions); controller metrics (stability, tracking, disturbance rejection); analytical techniques (PID, root-loci, lead-lag, phase margin); computational strategies (state-space, eigen-placement, LQR); and data-centric approaches (state estimation, regression, and identification). Concepts are introduced with lectures and online problems, and then mastered during weekly labs. In lab, students model, design, test, and explain systems and controllers involving sensors, actuators, and a microcontroller (e.g., optimizing thrust-driven positioners or stabilizing magnetic levitators). Students taking graduate version complete additional problems and labs.

X X X X
6.31026.320
6.3102 Dynamical System Modeling and Control Design

(,)
Prereqs: GIR:PHY2 and (18.06 or 18.C06)
Units: 4-4-4

A learn-by-design introduction to modeling and control of discrete- and continuous-time systems, from intuition-building analytical techniques to more computational and data-centric strategies. Topics include: linear difference/differential equations (natural frequencies, transfer functions); controller metrics (stability, tracking, disturbance rejection); analytical techniques (PID, root-loci, lead-lag, phase margin); computational strategies (state-space, eigen-placement, LQR); and data-centric approaches (state estimation, regression and identification). Concepts are introduced with lectures and on-line problems, and then mastered during weekly labs. In lab, students model, design, test and explain systems and controllers involving sensors, actuators, and a microcontroller (e.g. optimizing thrust-driven positioners or stabilizing magnetic levitators). Students in the graduate version complete additional problems and labs.

X X X X
6.32606.207
6.3260 Networks

()
Prereqs: 6.3700 or 14.30
Units: 4-0-8

Highlights common principles that permeate the functioning of diverse technological, economic and social networks. Utilizes three sets of tools for analyzing networks -- random graph models, optimization, and game theory -- to study informational and learning cascades; economic and financial networks; social influence networks; formation of social groups; communication networks and the Internet; consensus and gossiping; spread and control of epidemics; control and use of energy networks; and biological networks. Students taking graduate version complete additional assignments.

X
6.37206.401
6.3720 Introduction to Statistical Data Analysis

()
Prereqs: 6.100A and (6.3700, 6.3800, or 18.600)
Units: 4-0-8

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.

X
6.37306.419
6.3730 Statistics, Computation and Applications

()
Prereqs: (6.100B, (18.03, 18.06, or 18.C06), and (6.3700, 6.3800, 14.30, 16.09, or 18.05)) or permission of instructor
Units: 3-1-8

Hands-on analysis of data demonstrates the interplay between statistics and computation. Includes four modules, each centered on a specific data set, and introduced by a domain expert. Provides instruction in specific, relevant analysis methods and corresponding algorithmic aspects. Potential modules may include medical data, gene regulation, social networks, finance data (time series), traffic, transportation, weather forecasting, policy, or industrial web applications. Projects address a large-scale data analysis question. Students taking graduate version complete additional assignments. Enrollment limited; priority to Statistics and Data Science minors, and to juniors and seniors.

X X
6.41206.804
6.4120 Computational Cognitive Science

()
Prereqs: 6.3700, 6.3800, 9.40, 18.05, 6.3900, or permission of instructor
Units: 3-0-9

Introduction to computational theories of human cognition. Focus on principles of inductive learning and inference, and the representation of knowledge. Computational frameworks covered include Bayesian and hierarchical Bayesian models; probabilistic graphical models; nonparametric statistical models and the Bayesian Occam's razor; sampling algorithms for approximate learning and inference; and probabilistic models defined over structured representations such as first-order logic, grammars, or relational schemas. Applications to understanding core aspects of cognition, such as concept learning and categorization, causal reasoning, theory formation, language acquisition, and social inference. Graduate students complete a final project.

X
6.42006.141
6.4200 Robotics: Science and Systems

()
Prereqs: ((1.00 or 6.100A) and (2.003, 6.1010, 6.1210, or 16.06)) or permission of instructor
Units: 2-6-4

Presents concepts, principles, and algorithmic foundations for robots and autonomous vehicles operating in the physical world. Topics include sensing, kinematics and dynamics, state estimation, computer vision, perception, learning, control, motion planning, and embedded system development. Students design and implement advanced algorithms on complex robotic platforms capable of agile autonomous navigation and real-time interaction with the physical word. Students engage in extensive written and oral communication exercises. Enrollment limited.

X X X
6.42106.800
6.4210 Robotic Manipulation

()
Prereqs: (6.100A and 6.3900) or permission of instructor
Units: 4-2-9

Introduces the fundamental algorithmic approaches for creating robot systems that can autonomously manipulate physical objects in unstructured environments such as homes and restaurants. Topics include perception (including approaches based on deep learning and approaches based on 3D geometry), planning (robot kinematics and trajectory generation, collision-free motion planning, task-and-motion planning, and planning under uncertainty), as well as dynamics and control (both model-based and learning-based). Students taking graduate version complete additional assignments. Students engage in extensive written and oral communication exercises.

X X X
6.44006.837
6.4400 Computer Graphics

()
Prereqs: 6.1010 and (18.06 or 18.C06)
Units: 3-0-9

Introduction to computer graphics algorithms, software and hardware. Topics include ray tracing, the graphics pipeline, transformations, texture mapping, shadows, sampling, global illumination, splines, animation and color.

X X
6.44206.807
6.4420 Computational Design and Fabrication

()
Prereqs: GIR:CAL2 and (6.1010 or permission of instructor)
Units: 3-0-9

Introduces computational aspects of computer-aided design and manufacturing. Explores relevant methods in the context of additive manufacturing (e.g., 3D printing). Topics include computer graphics (geometry modeling, solid modeling, procedural modeling), physically-based simulation (kinematics, finite element method), 3D scanning/geometry processing, and an overview of 3D fabrication methods. Exposes students to the latest research in computational fabrication. Students taking the graduate version complete additional assignments.

X X X
6.45106.810
6.4510 Engineering Interactive Technologies

()
Prereqs: 6.1020, 6.2050, 6.2060, 6.9010, or permission of instructor
Units: 1-5-6

Provides instruction in building cutting-edge interactive technologies, explains the underlying engineering concepts, and shows how those technologies evolved over time. Students use a studio format (i.e., extended periods of time) for constructing software and hardware prototypes. Topics include interactive technologies, such as multi-touch, augmented reality, haptics, wearables, and shape-changing interfaces. In a group project, students build their own interactive hardware/software prototypes and present them in a live demo at the end of term. Enrollment may be limited.

X X
6.45306.811
6.4530 Principles and Practice of Assistive Technology

()
Prereqs: Permission of instructor
Units: 2-4-6

Students work closely with people with disabilities to develop assistive and adaptive technologies that help them live more independently. Covers design methods and problem-solving strategies; human factors; human-machine interfaces; community perspectives; social and ethical aspects; and assistive technology for motor, cognitive, perceptual, and age-related impairments. Prior knowledge of one or more of the following areas useful: software; electronics; human-computer interaction; cognitive science; mechanical engineering; control; or MIT hobby shop, MIT PSC, or other relevant independent project experience. Enrollment may be limited.

X
6.45506.185
6.4550 Interactive Music Systems

(,)
Prereqs: (6.1010 and 21M.301) or permission of instructor
Units: 3-0-9

Explores audio synthesis, musical structure, human computer interaction (HCI), and visual presentation for the creation of interactive musical experiences. Topics include audio synthesis; mixing and looping; MIDI sequencing; generative composition; motion sensors; music games; and graphics for UI, visualization, and aesthetics. Includes weekly programming assignments in python. Teams build an original, dynamic, and engaging interactive music system for their final project. Students taking graduate version complete different assignments. Limited to 36.

X X
6.45706.073
6.4570 Creating Video Games

()
Prereqs: 6.100A or CMS.301
Units: 3-3-6

Introduces students to the complexities of working in small, multidisciplinary teams to develop video games. Covers creative design and production methods, stressing design iteration and regular testing across all aspects of game development (design, visual arts, music, fiction, and programming). Assumes a familiarity with current video games, and the ability to discuss games critically. Previous experience in audio design, visual arts, or project management recommended. Limited to 36.

X
6.45906.805
6.4590 Foundations of Information Policy

()
Prereqs: Permission of instructor
Units: 3-0-9

Studies the growth of computer and communications technology and the new legal and ethical challenges that reflect tensions between individual rights and societal needs. Topics include computer crime; intellectual property restrictions on software; encryption, privacy, and national security; academic freedom and free speech. Students meet and question technologists, activists, law enforcement agents, journalists, and legal experts. Instruction and practice in oral and written communication provided. Students taking graduate version complete additional assignments. Enrollment limited.

X X
6.48306.023
6.4830 Fields, Forces and Flows in Biological Systems

()
Prereqs: GIR:BIOL, GIR:PHY2, and 18.03
Units: 4-0-8

Introduction to electric fields, fluid flows, transport phenomena and their application to biological systems. Flux and continuity laws, Maxwell's equations, electro-quasistatics, electro-chemical-mechanical driving forces, conservation of mass and momentum, Navier-Stokes flows, and electrokinetics. Applications include biomolecular transport in tissues, electrophoresis, and microfluidics.

X
6.48606.025
6.4860 Medical Device Design

()
Prereqs: 2.008, 6.2040, 6.2050, 6.2060, 22.071, or permission of instructor
Units: 3-3-6

Provides an intense project-based learning experience around the design of medical devices with foci ranging from mechanical to electro mechanical to electronics. Projects motivated by real-world clinical challenges provided by sponsors and clinicians who also help mentor teams. Covers the design process, project management, and fundamentals of mechanical and electrical circuit and sensor design. Students work in small teams to execute a substantial term project, with emphasis placed upon developing creative designs -- via a deterministic design process -- that are developed and optimized using analytical techniques. Includes mandatory lab. Instruction and practice in written and oral communication provided. Students taking graduate version complete additional assignments. Enrollment limited.

X X X
6.48806.129
6.4880 Biological Circuit Engineering Laboratory

()
Prereqs: GIR:BIOL and GIR:CAL2
Units: 2-8-2

Students assemble individual genes and regulatory elements into larger-scale circuits; they experimentally characterize these circuits in yeast cells using quantitative techniques, including flow cytometry, and model their results computationally. Emphasizes concepts and techniques to perform independent experimental and computational synthetic biology research. Discusses current literature and ongoing research in the field of synthetic biology. Instruction and practice in oral and written communication provided. Enrollment limited.

X X X
6.50816.816
6.5081 Multicore Programming

()
Prereqs: 6.1210
Units: 4-0-8

Introduces principles and core techniques for programming multicore machines. Topics include locking, scalability, concurrent data structures, multiprocessor scheduling, load balancing, and state-of-the-art synchronization techniques, such as transactional memory. Includes sequence of programming assignments on a large multicore machine, culminating with the design of a highly concurrent application. Students taking graduate version complete additional assignments.

X X
6.51516.905
6.5151 Large-scale Symbolic Systems

()
Prereqs: 6.4100 or permission of instructor
Units: 3-0-9

Concepts and techniques for the design and implementation of large software systems that can be adapted to uses not anticipated by the designer. Applications include compilers, computer-algebra systems, deductive systems, and some artificial intelligence applications. Covers means for decoupling goals from strategy, mechanisms for implementing additive data-directed invocation, work with partially-specified entities, and how to manage multiple viewpoints. Topics include combinators, generic operations, pattern matching, pattern-directed invocation, rule systems, backtracking, dependencies, indeterminacy, memoization, constraint propagation, and incremental refinement. Students taking graduate version complete additional assignments.

X X
6.58316.814
6.5831 Database Systems

()
Prereqs: (6.1800 and (6.1210 or 6.1220)) or permission of instructor
Units: 3-0-9

Topics related to the engineering and design of database systems, including data models; database and schema design; schema normalization and integrity constraints; query processing; query optimization and cost estimation; transactions; recovery; concurrency control; isolation and consistency; distributed, parallel and heterogeneous databases; adaptive databases; trigger systems; pub-sub systems; semi structured data and XML querying. Lecture and readings from original research papers. Semester-long project and paper. Students taking graduate version complete different assignments. Enrollment may be limited.

X
6.59316.812
6.5931 Hardware Architecture for Deep Learning

()
Prereqs: 6.1910 and (6.3000 or 6.3900)
Units: 3-3-6

Introduction to the design and implementation of hardware architectures for efficient processing of deep learning algorithms and tensor algebra in AI systems. Topics include basics of deep learning, optimization principles for programmable platforms, design principles of accelerator architectures, co-optimization of algorithms and hardware (including sparsity) and use of advanced technologies (including memristors and optical computing). Includes labs involving modeling and analysis of hardware architectures, architecting deep learning inference systems, and an open-ended design project. Students taking graduate version complete additional assignments.

X
6.5951
6.5951 Secure Hardware Design

()
Prereqs: 6.1910
Units: 3-0-9

Introduction to basic concepts, principles, and implementation issues in the designing of secure hardware systems. Through a mixture of lectures and paper discussions, covers state-of-the-art security attacks and defenses targeting the computer architecture, digital circuits, and physics layers of computer systems. Emphasizes both the conceptual and the practical aspects of security issues in modern hardware systems. Topics include microarchitectural timing side channels, speculative execution attacks, RowHammer, Trusted Execution Environment, physical attacks, hardware support for software security, and verification of digital systems. Students taking graduate version complete additional assignments.

X
6.63316.602
6.6331 Fundamentals of Photonics

()
Prereqs: 2.71, 6.2300, or 8.07
Units: 3-0-9

Covers the fundamentals of optics and the interaction of light and matter, leading to devices such as light emitting diodes, optical amplifiers, and lasers. Topics include classical ray, wave, beam, and Fourier optics; Maxwell's electromagnetic waves; resonators; quantum theory of photons; light-matter interaction; laser amplification; lasers; and semiconductors optoelectronics. Students taking graduate version complete additional assignments.

X
6.71206.247
6.7120 Principles of Modeling, Computing and Control for Decarbonized Electric Energy Systems

()
Prereqs: 6.2200, (6.2000 and 6.3100), or permission of instructor
Units: 4-0-8

Introduces fundamentals of electric energy systems as complex dynamical network systems. Topics include coordinated and distributed modeling and control methods for efficient and reliable power generation, delivery, and consumption; data-enabled algorithms for integrating clean intermittent resources, storage, and flexible demand, including electric vehicles; examples of network congestion management, frequency, and voltage control in electrical grids at various scales; and design and operation of supporting markets. Students taking graduate version complete additional assignments.

X
6.72016.215
6.7201 Optimization Methods

()
Prereqs: 18.06
Units: 4-0-8

Introduces the principal algorithms for linear, network, discrete, robust, nonlinear, and dynamic optimization. Emphasizes methodology and the underlying mathematical structures. Topics include the simplex method, network flow methods, branch and bound and cutting plane methods for discrete optimization, optimality conditions for nonlinear optimization, interior point methods for convex optimization, Newton's method, heuristic methods, and dynamic programming and optimal control methods. Expectations and evaluation criteria differ for students taking graduate version; consult syllabus or instructor for specific details.

X
6.83016.819
6.8301 Advances in Computer Vision

()
Prereqs: (6.1200 or 6.3700) and (18.06 or 18.C06)
Units: 4-0-11

Advanced topics in computer vision with a focus on the use of machine learning techniques and applications in graphics and human-computer interface. Covers image representations, texture models, structure-from-motion algorithms, Bayesian techniques, object and scene recognition, tracking, shape modeling, and image databases. Applications may include face recognition, multimodal interaction, interactive systems, cinematic special effects, and photorealistic rendering. Includes instruction and practice in written and oral communication. Students taking graduate version complete additional assignments.

X X X X
6.83716.815
6.8371 Digital and Computational Photography

()
Prereqs: GIR:CAL2 and 6.1010
Units: 3-0-9

Presents fundamentals and applications of hardware and software techniques used in digital and computational photography, with an emphasis on software methods. Provides sufficient background to implement solutions to photographic challenges and opportunities. Topics include cameras and image formation, image processing and image representations, high-dynamic-range imaging, human visual perception and color, single view 3-D model reconstruction, morphing, data-rich photography, super-resolution, and image-based rendering. Students taking graduate version complete additional assignments.

X
6.84206.839
6.8420 Computational Design and Fabrication

()
Prereqs: GIR:CAL2 and (6.1010 or permission of instructor)
Units: 3-0-9

Introduces computational aspects of computer-aided design and manufacturing. Explores relevant methods in the context of additive manufacturing (e.g., 3D printing). Topics include computer graphics (geometry modeling, solid modeling, procedural modeling), physically-based simulation (kinematics, finite element method), 3D scanning/geometry processing, and an overview of 3D fabrication methods. Exposes students to the latest research in computational fabrication. Students taking graduate version complete additional assignments.

X X
6.86116.806
6.8611 Quantitative Methods for Natural Language Processing

()
Prereqs: 6.3900 and (18.06 or 18.C06)
Units: 4-0-11

Introduces the study of human language from a computational perspective, including syntactic, semantic and discourse processing models. Emphasizes machine learning methods and algorithms. Uses these methods and models in applications such as syntactic parsing, information extraction, statistical machine translation, dialogue systems. Instruction and practice in oral and written communication provided. Students taking graduate version complete additional assignments.

X X X X
6.87016.047
6.8701 Computational Biology: Genomes, Networks, Evolution

()
Prereqs: (GIR:BIOL, 6.1210, and 6.3700) or permission of instructor
Units: 3-0-9

Covers the algorithmic and machine learning foundations of computational biology, combining theory with practice. Principles of algorithm design, influential problems and techniques, and analysis of large-scale biological datasets. Topics include (a) genomes: sequence analysis, gene finding, RNA folding, genome alignment and assembly, database search; (b) networks: gene expression analysis, regulatory motifs, biological network analysis; (c) evolution: comparative genomics, phylogenetics, genome duplication, genome rearrangements, evolutionary theory. These are coupled with fundamental algorithmic techniques including: dynamic programming, hashing, Gibbs sampling, expectation maximization, hidden Markov models, stochastic context-free grammars, graph clustering, dimensionality reduction, Bayesian networks.

X X X
6.87116.802
6.8711 Computational Systems Biology: Deep Learning in the Life Sciences

()
Prereqs: (7.05 and (6.100B or 6.9080)) 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.

X
6.87216.580
6.8721 Principles of Synthetic Biology

()
Prereqs: none
Units: 3-0-9

Introduces the basics of synthetic biology, including quantitative cellular network characterization and modeling. Considers the discovery and genetic factoring of useful cellular activities into reusable functions for design. Emphasizes the principles of biomolecular system design and diagnosis of designed systems. Illustrates cutting-edge applications in synthetic biology and enhances skills in analysis and design of synthetic biological applications. Students taking graduate version complete additional assignments.

X
6.88016.026
6.8801 Biomedical Signal and Image Processing

()
Prereqs: (6.3700 or permission of instructor) and (2.004, 6.3000, 16.002, or 18.085)
Units: 3-1-8

Fundamentals of digital signal processing with emphasis on problems in biomedical research and clinical medicine. Basic principles and algorithms for processing both deterministic and random signals. Topics include data acquisition, imaging, filtering, coding, feature extraction, and modeling. Lab projects, performed in MATLAB, provide practical experience in processing physiological data, with examples from cardiology, speech processing, and medical imaging. Lectures cover signal processing topics relevant to the lab exercises, as well as background on the biological signals processed in the labs. Students taking graduate version complete additional assignments.

X X
6.90006.010
6.9000 Engineering for Impact

()
Prereqs: 6.1910, 6.2000, and 6.3100
Units: 2-3-7

Students work in large teams to engineer hardware/software systems that solve important problems in society. Topics include requirements, specifications, system design and partitioning, detailed engineering design, prototyping and implementation, test and verification, and the ethical implications of these choices. Explores case studies of existing hardware/software systems to understand implications of different system design choices. Teams design and build functional prototypes of useful systems. Grading is based on individual- and team-based elements. Enrollment may be limited due to staffing and space requirements.

X X X
6.90306.163
6.9030 Strobe Project Laboratory

(,)
Prereqs: GIR:PHY2 or permission of instructor
Units: 2-8-2

Application of electronic flash sources to measurement and photography. First half covers fundamentals of photography and electronic flashes, including experiments on application of electronic flash to photography, stroboscopy, motion analysis, and high-speed videography. Students write four extensive lab reports. In the second half, students work in small groups to select, design, and execute independent projects in measurement or photography that apply learned techniques. Project planning and execution skills are discussed and developed over the term. Students engage in extensive written and oral communication exercises. Enrollment limited.

X X X X X X
6.C25
6.C25 Real World Computation with Julia

()
Prereqs: 6.100A, 18.03, and 18.06
Units: 3-0-9

Focuses on algorithms and techniques for writing and using modern technical software in a job, lab, or research group environment that may consist of interdisciplinary teams, where performance may be critical, and where the software needs to be flexible and adaptable. Topics include automatic differentiation, matrix calculus, scientific machine learning, parallel and GPU computing, and performance optimization with introductory applications to climate science, economics, agent-based modeling, and other areas. Labs and projects focus on performant, readable, composable algorithms, and software. Programming will be in Julia. Expects students to have some familiarity with Python, Matlab, or R. No Julia experience necessary.

X X
6.C27
6.C27 Computational Imaging: Physics and Algorithms

()
Prereqs: 18.C06 and (1.00, 1.000, 2.086, 3.019, or 6.100A)
Units: 3-0-9

Explores the contemporary computational understanding of imaging: encoding information about a physical object onto a form of radiation, transferring the radiation through an imaging system, converting it to a digital signal, and computationally decoding and presenting the information to the user. Introduces a unified formulation of computational imaging systems as a three-round "learning spiral": the first two rounds describe the physical and algorithmic parts in two exemplary imaging systems. The third round involves a class project on an imaging system chosen by students. Undergraduate and graduate versions share lectures but have different recitations. Involves optional "clinics" to even out background knowledge of linear algebra, optimization, and computational imaging-related programming best practices for students of diverse disciplinary backgrounds. Students taking graduate version complete additional assignments.

X
6.C35
6.C35 Interactive Data Visualization and Society

()
Prereqs: none
Units: 3-1-8

Covers the design, ethical, and technical skills for creating effective visualizations. Short assignments build familiarity with the data analysis and visualization design process. Weekly lab sessions present coding and technical skills. A final project provides experience working with real-world big data, provided by external partners, in order to expose and communicate insights about societal issues. Students taking graduate version complete additional assignments. Enrollment limited. Enrollment limited.

X X
6.S041
6.S041 Algorithmic and Human Decision-Making

()
Prereqs: 6.3700 or 6.3800 or 18.05 or 18.600 or 14.300 or 14.32 and 6.3900 or 6.C01
Units: 3-0-9

Introduces students to problems at the intersection of algorithmic and human decision-making, focusing on problem domains such as criminal justice, the health care system, labor market, and others. Introduces the foundations in computer science, economics and psychology needed to integrate our behavioral understanding of people into machine learning. Topics include supervised learning, decision-making under uncertainty, behavioral economics, recommendation systems, and fairness/discrimination. Guest lectures by experts designing live algorithms in these domains, and culminates in student projects.

X
6.S043
6.S043 Special Subject in Electrical Engineering and Computer Science

()
Prereqs: none
Units: 3-0-9

Covers subject matter not offered in the regular curriculum. Consult department to learn of offerings for a particular term.

X
6.S046
6.S046 Silicon Photonics

()
Prereqs: 6.2300 or 8.07
Units: 3-0-9

[Meets with 6.S976] Covers the foundational concepts behind silicon photonics based in electromagnetics, optics, and device physics; the design of silicon-photonics-based devices (including waveguides, couplers, splitters, resonators, antennas, modulators, detectors, and lasers) using both theoretical analysis and numerical simulation tools; the engineering of silicon-photonics-based circuits and systems with a focus on a variety of applications areas (spanning computing, communications, sensing, quantum, displays, and biophotonics); the development of silicon-photonics-based platforms, including fabrication and materials considerations; and the characterization of these silicon-photonics-based devices and systems through hands-on laboratory demonstrations and projects. Students taking graduate version complete additional assignments.

X X
6.S059
6.S059 Causal Inference

()
Prereqs: 6.3800, 6.3900, 6.C01, 14.32, 17.803, 18.05, 18.650, or permission of instructor
Units: 4-0-8

[Meets with 15.C08, 17.C08] Provides an accessible overview of modern quantitative methods for causal inference: testing whether an action causes an outcome to occur. Makes heavy use of applied, real-data examples using Python or R and drawn from the participating domains (economics, political science, business, public policy, etc.). Covers topics including potential outcomes, causal graphs, randomized controlled trials, observational studies, instrumental variable estimation, and a contrast with machine learning techniques. Seeks to provide an intuitive understanding of the core concepts and techniques to help students produce and consume evidence of causal claims.

X
6.S062
6.S062 Special Subject in Electrical Engineering and Computer Science

()
Prereqs: none
Units: 0-0-0

Covers subject matter not offered in the regular curriculum. Consult department to learn of offerings for a particular term.

X
6.S079
6.S079 Software Systems for Data Science

()
Prereqs: (6.100A, 6.100B, and 6.1210) or permission of instructor
Units: 3-0-9

In this course we review the important role of semiconductor devices in patient monitoring and point of care. This includes technologies such as electrochemical, ultrasonic,magnetic, optical, and RF sensing modalities. We cover some of the basics of each device as well as physics and biology of device/human interaction.

X X
6.UAR
6.UAR Seminar in Undergraduate Advanced Research

(,)
Prereqs: Permission of instructor
Units: 2-0-4

Instruction in effective undergraduate research, including choosing and developing a research topic, surveying previous work and publications, research topics in EECS and the School of Engineering, industry best practices, design for robustness, technical presentation, authorship and collaboration, and ethics. Students engage in extensive written and oral communication exercises, in the context of an approved advanced research project. A total of 12 units of credit is awarded for completion of the fall and subsequent spring term offerings. Application required; consult EECS SuperUROP website for more information.

X X X X
6.UAT
6.UAT Oral Communication

()
Prereqs: none
Units: 3-0-6

Provides instruction in aspects of effective technical oral presentations and exposure to communication skills useful in a workplace setting. Students create, give and revise a number of presentations of varying length targeting a range of different audiences. Enrollment may be limited.

X

Tracks

To satisfy a track requirement, you must complete two subjects from the same track. Tracks are associated with one of the three areas in the Department: AI+D, CS, or EE.

[AI+D] Application_CIM or AI+D_AUS
18.404
18.404 Theory of Computation

()
Prereqs: 6.1200 or 18.200
Units: 4-0-8

A more extensive and theoretical treatment of the material in 6.1400J/18.400J, emphasizing computability and computational complexity theory. Regular and context-free languages. Decidable and undecidable problems, reducibility, recursive function theory. Time and space measures on computation, completeness, hierarchy theorems, inherently complex problems, oracles, probabilistic computation, and interactive proof systems.


6.37306.419
6.3730 Statistics, Computation and Applications

()
Prereqs: (6.100B, (18.03, 18.06, or 18.C06), and (6.3700, 6.3800, 14.30, 16.09, or 18.05)) or permission of instructor
Units: 3-1-8

Hands-on analysis of data demonstrates the interplay between statistics and computation. Includes four modules, each centered on a specific data set, and introduced by a domain expert. Provides instruction in specific, relevant analysis methods and corresponding algorithmic aspects. Potential modules may include medical data, gene regulation, social networks, finance data (time series), traffic, transportation, weather forecasting, policy, or industrial web applications. Projects address a large-scale data analysis question. Students taking graduate version complete additional assignments. Enrollment limited; priority to Statistics and Data Science minors, and to juniors and seniors.


6.42006.141
6.4200 Robotics: Science and Systems

()
Prereqs: ((1.00 or 6.100A) and (2.003, 6.1010, 6.1210, or 16.06)) or permission of instructor
Units: 2-6-4

Presents concepts, principles, and algorithmic foundations for robots and autonomous vehicles operating in the physical world. Topics include sensing, kinematics and dynamics, state estimation, computer vision, perception, learning, control, motion planning, and embedded system development. Students design and implement advanced algorithms on complex robotic platforms capable of agile autonomous navigation and real-time interaction with the physical word. Students engage in extensive written and oral communication exercises. Enrollment limited.


6.42106.800
6.4210 Robotic Manipulation

()
Prereqs: (6.100A and 6.3900) or permission of instructor
Units: 4-2-9

Introduces the fundamental algorithmic approaches for creating robot systems that can autonomously manipulate physical objects in unstructured environments such as homes and restaurants. Topics include perception (including approaches based on deep learning and approaches based on 3D geometry), planning (robot kinematics and trajectory generation, collision-free motion planning, task-and-motion planning, and planning under uncertainty), as well as dynamics and control (both model-based and learning-based). Students taking graduate version complete additional assignments. Students engage in extensive written and oral communication exercises.


6.42106.800
6.4210 Robotic Manipulation

()
Prereqs: (6.100A and 6.3900) or permission of instructor
Units: 4-2-9

Introduces the fundamental algorithmic approaches for creating robot systems that can autonomously manipulate physical objects in unstructured environments such as homes and restaurants. Topics include perception (including approaches based on deep learning and approaches based on 3D geometry), planning (robot kinematics and trajectory generation, collision-free motion planning, task-and-motion planning, and planning under uncertainty), as well as dynamics and control (both model-based and learning-based). Students taking graduate version complete additional assignments. Students engage in extensive written and oral communication exercises.

6.51516.905
6.5151 Large-scale Symbolic Systems

()
Prereqs: 6.4100 or permission of instructor
Units: 3-0-9

Concepts and techniques for the design and implementation of large software systems that can be adapted to uses not anticipated by the designer. Applications include compilers, computer-algebra systems, deductive systems, and some artificial intelligence applications. Covers means for decoupling goals from strategy, mechanisms for implementing additive data-directed invocation, work with partially-specified entities, and how to manage multiple viewpoints. Topics include combinators, generic operations, pattern matching, pattern-directed invocation, rule systems, backtracking, dependencies, indeterminacy, memoization, constraint propagation, and incremental refinement. Students taking graduate version complete additional assignments.


6.58316.814
6.5831 Database Systems

()
Prereqs: (6.1800 and (6.1210 or 6.1220)) or permission of instructor
Units: 3-0-9

Topics related to the engineering and design of database systems, including data models; database and schema design; schema normalization and integrity constraints; query processing; query optimization and cost estimation; transactions; recovery; concurrency control; isolation and consistency; distributed, parallel and heterogeneous databases; adaptive databases; trigger systems; pub-sub systems; semi structured data and XML querying. Lecture and readings from original research papers. Semester-long project and paper. Students taking graduate version complete different assignments. Enrollment may be limited.


6.74116.405
6.7411 Principles of Digital Communication

()
Prereqs: (6.3000, 6.3100, or 6.3400) and (6.3700, 6.3800, or 18.05)
Units: 3-0-9

Covers communications by progressing through signal representation, sampling, quantization, compression, modulation, coding and decoding, medium access control, and queueing and principles of protocols. By providing simplified proofs, seeks to present an integrated, systems-level view of networking and communications while laying the foundations of analysis and design. Lectures are offered online; in-class time is dedicated to recitations, exercises, and weekly group labs. Homework exercises are based on theoretical derivation and software implementation. Students taking graduate version complete additional assignments.


6.79306.871
6.7930 Machine Learning for Healthcare

()
Prereqs: 6.3900, 6.4100, 6.7810, 6.7900, 6.8611, or 9.520
Units: 4-0-8

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.83006.869
6.8300 Advances in Computer Vision

()
Prereqs: (6.1200 or 6.3700) and (18.06 or 18.C06)
Units: 3-0-9

Advanced topics in computer vision with a focus on the use of machine learning techniques and applications in graphics and human-computer interface. Covers image representations, texture models, structure-from-motion algorithms, Bayesian techniques, object and scene recognition, tracking, shape modeling, and image databases. Applications may include face recognition, multimodal interaction, interactive systems, cinematic special effects, and photorealistic rendering. Covers topics complementary to 6.8390. Students taking graduate version complete additional assignments.

6.83016.819
6.8301 Advances in Computer Vision

()
Prereqs: (6.1200 or 6.3700) and (18.06 or 18.C06)
Units: 4-0-11

Advanced topics in computer vision with a focus on the use of machine learning techniques and applications in graphics and human-computer interface. Covers image representations, texture models, structure-from-motion algorithms, Bayesian techniques, object and scene recognition, tracking, shape modeling, and image databases. Applications may include face recognition, multimodal interaction, interactive systems, cinematic special effects, and photorealistic rendering. Includes instruction and practice in written and oral communication. Students taking graduate version complete additional assignments.


6.83016.819
6.8301 Advances in Computer Vision

()
Prereqs: (6.1200 or 6.3700) and (18.06 or 18.C06)
Units: 4-0-11

Advanced topics in computer vision with a focus on the use of machine learning techniques and applications in graphics and human-computer interface. Covers image representations, texture models, structure-from-motion algorithms, Bayesian techniques, object and scene recognition, tracking, shape modeling, and image databases. Applications may include face recognition, multimodal interaction, interactive systems, cinematic special effects, and photorealistic rendering. Includes instruction and practice in written and oral communication. Students taking graduate version complete additional assignments.


6.83716.815
6.8371 Digital and Computational Photography

()
Prereqs: GIR:CAL2 and 6.1010
Units: 3-0-9

Presents fundamentals and applications of hardware and software techniques used in digital and computational photography, with an emphasis on software methods. Provides sufficient background to implement solutions to photographic challenges and opportunities. Topics include cameras and image formation, image processing and image representations, high-dynamic-range imaging, human visual perception and color, single view 3-D model reconstruction, morphing, data-rich photography, super-resolution, and image-based rendering. Students taking graduate version complete additional assignments.


6.86116.806
6.8611 Quantitative Methods for Natural Language Processing

()
Prereqs: 6.3900 and (18.06 or 18.C06)
Units: 4-0-11

Introduces the study of human language from a computational perspective, including syntactic, semantic and discourse processing models. Emphasizes machine learning methods and algorithms. Uses these methods and models in applications such as syntactic parsing, information extraction, statistical machine translation, dialogue systems. Instruction and practice in oral and written communication provided. Students taking graduate version complete additional assignments.


6.86116.806
6.8611 Quantitative Methods for Natural Language Processing

()
Prereqs: 6.3900 and (18.06 or 18.C06)
Units: 4-0-11

Introduces the study of human language from a computational perspective, including syntactic, semantic and discourse processing models. Emphasizes machine learning methods and algorithms. Uses these methods and models in applications such as syntactic parsing, information extraction, statistical machine translation, dialogue systems. Instruction and practice in oral and written communication provided. Students taking graduate version complete additional assignments.

6.87016.047
6.8701 Computational Biology: Genomes, Networks, Evolution

()
Prereqs: (GIR:BIOL, 6.1210, and 6.3700) or permission of instructor
Units: 3-0-9

Covers the algorithmic and machine learning foundations of computational biology, combining theory with practice. Principles of algorithm design, influential problems and techniques, and analysis of large-scale biological datasets. Topics include (a) genomes: sequence analysis, gene finding, RNA folding, genome alignment and assembly, database search; (b) networks: gene expression analysis, regulatory motifs, biological network analysis; (c) evolution: comparative genomics, phylogenetics, genome duplication, genome rearrangements, evolutionary theory. These are coupled with fundamental algorithmic techniques including: dynamic programming, hashing, Gibbs sampling, expectation maximization, hidden Markov models, stochastic context-free grammars, graph clustering, dimensionality reduction, Bayesian networks.


6.87116.802
6.8711 Computational Systems Biology: Deep Learning in the Life Sciences

()
Prereqs: (7.05 and (6.100B or 6.9080)) 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.S079
6.S079 Software Systems for Data Science

()
Prereqs: (6.100A, 6.100B, and 6.1210) or permission of instructor
Units: 3-0-9

In this course we review the important role of semiconductor devices in patient monitoring and point of care. This includes technologies such as electrochemical, ultrasonic,magnetic, optical, and RF sensing modalities. We cover some of the basics of each device as well as physics and biology of device/human interaction.


6.S966
6.S966 Symmetry and its Application to Machine Learning and Scientific Computing

()
Prereqs: 18.06 or 18.061, 6.100A, 6.1210
Units: 3-0-9

Introduces the use of group representation theory to construct symmetry-preserving algorithms for machine learning. Emphases the connection between topics in math and physics and machine learning. Students will implement core mathematical concepts in code to build algorithms that can operate on graphs, geometry, scientific data, and other structured data to preserve the symmetries of these domains. Topics covered include: Euclidean and permutation groups, group representations: regular, reducible, and irreducible, tensor products, statistics and sampling of group representation vector spaces, and symmetry-breaking mechanisms.

[AI+D] Centers and (Application_CIM or AI+D_AUS)
One of:
6.12206.046
6.1220 Design and Analysis of Algorithms

(,)
Prereqs: 6.1200 and 6.1210
Units: 4-0-8

Techniques for the design and analysis of efficient algorithms, emphasizing methods useful in practice. Topics include sorting; search trees, heaps, and hashing; divide-and-conquer; dynamic programming; greedy algorithms; amortized analysis; graph algorithms; and shortest paths. Advanced topics may include network flow; computational geometry; number-theoretic algorithms; polynomial and matrix calculations; caching; and parallel computing.


6.30006.003
6.3000 Signal Processing

(,)
Prereqs: 6.100A and 18.03
Units: 6-0-6

Fundamentals of signal processing, focusing on the use of Fourier methods to analyze and process signals such as sounds and images. Topics include Fourier series, Fourier transforms, the Discrete Fourier Transform, sampling, convolution, deconvolution, filtering, noise reduction, and compression. Applications draw broadly from areas of contemporary interest with emphasis on both analysis and design.


6.31006.302
6.3100 Dynamical System Modeling and Control Design

(,)
Prereqs: GIR:PHY2 and (18.06 or 18.C06)
Units: 4-4-4

A learn-by-design introduction to modeling and control of discrete- and continuous-time systems, from intuition-building analytical techniques to more computational and data-centric strategies. Topics include: linear difference/differential equations (natural frequencies, transfer functions); controller metrics (stability, tracking, disturbance rejection); analytical techniques (PID, root-loci, lead-lag, phase margin); computational strategies (state-space, eigen-placement, LQR); and data-centric approaches (state estimation, regression, and identification). Concepts are introduced with lectures and online problems, and then mastered during weekly labs. In lab, students model, design, test, and explain systems and controllers involving sensors, actuators, and a microcontroller (e.g., optimizing thrust-driven positioners or stabilizing magnetic levitators). Students taking graduate version complete additional problems and labs.


6.32606.207
6.3260 Networks

()
Prereqs: 6.3700 or 14.30
Units: 4-0-8

Highlights common principles that permeate the functioning of diverse technological, economic and social networks. Utilizes three sets of tools for analyzing networks -- random graph models, optimization, and game theory -- to study informational and learning cascades; economic and financial networks; social influence networks; formation of social groups; communication networks and the Internet; consensus and gossiping; spread and control of epidemics; control and use of energy networks; and biological networks. Students taking graduate version complete additional assignments.


6.37206.401
6.3720 Introduction to Statistical Data Analysis

()
Prereqs: 6.100A and (6.3700, 6.3800, or 18.600)
Units: 4-0-8

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.39006.036
6.3900 Introduction to Machine Learning

(,)
Prereqs: (6.1010 or 6.1210) and (18.06, 18.700, or 18.C06)
Units: 4-0-8

Introduces principles, algorithms, and applications of machine learning from the point of view of modeling and prediction; formulation of learning problems; representation, over-fitting, generalization; clustering, classification, probabilistic modeling; and methods such as support vector machines, hidden Markov models, and neural networks. Recommended prerequisites: 6.1210 and 18.06. Enrollment may be limited.


6.39506.404
6.3950 AI, Decision Making, and Society

()
Prereqs/[Coreqs]: [6.1200, 6.3700, 6.3800, 18.05, or 18.600]
Units: 4-0-8

Introduction to fundamentals of modern data-driven decision-making frameworks, such as causal inference and hypothesis testing in statistics as well as supervised and reinforcement learning in machine learning. Explores how these frameworks are being applied in various societal contexts, including criminal justice, healthcare, finance, and social media. Emphasis on pinpointing the non-obvious interactions, undesirable feedback loops, and unintended consequences that arise in such settings. Enables students to develop their own principled perspective on the interface of data-driven decision making and society. Students taking graduate version complete additional assignments.


6.41106.038
6.4110 Representation, Inference, and Reasoning in AI

()
Prereqs: (16.09 and 16.410) or (6.1010, 6.1210, and (6.3700 or 6.3800))
Units: 3-0-9

An introduction to representations and algorithms for artificial intelligence. 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 including MDPs and POMDPs.


6.41206.804
6.4120 Computational Cognitive Science

()
Prereqs: 6.3700, 6.3800, 9.40, 18.05, 6.3900, or permission of instructor
Units: 3-0-9

Introduction to computational theories of human cognition. Focus on principles of inductive learning and inference, and the representation of knowledge. Computational frameworks covered include Bayesian and hierarchical Bayesian models; probabilistic graphical models; nonparametric statistical models and the Bayesian Occam's razor; sampling algorithms for approximate learning and inference; and probabilistic models defined over structured representations such as first-order logic, grammars, or relational schemas. Applications to understanding core aspects of cognition, such as concept learning and categorization, causal reasoning, theory formation, language acquisition, and social inference. Graduate students complete a final project.


6.44006.837
6.4400 Computer Graphics

()
Prereqs: 6.1010 and (18.06 or 18.C06)
Units: 3-0-9

Introduction to computer graphics algorithms, software and hardware. Topics include ray tracing, the graphics pipeline, transformations, texture mapping, shadows, sampling, global illumination, splines, animation and color.

6.45906.805
6.4590 Foundations of Information Policy

()
Prereqs: Permission of instructor
Units: 3-0-9

Studies the growth of computer and communications technology and the new legal and ethical challenges that reflect tensions between individual rights and societal needs. Topics include computer crime; intellectual property restrictions on software; encryption, privacy, and national security; academic freedom and free speech. Students meet and question technologists, activists, law enforcement agents, journalists, and legal experts. Instruction and practice in oral and written communication provided. Students taking graduate version complete additional assignments. Enrollment limited.


6.72016.215
6.7201 Optimization Methods

()
Prereqs: 18.06
Units: 4-0-8

Introduces the principal algorithms for linear, network, discrete, robust, nonlinear, and dynamic optimization. Emphasizes methodology and the underlying mathematical structures. Topics include the simplex method, network flow methods, branch and bound and cutting plane methods for discrete optimization, optimality conditions for nonlinear optimization, interior point methods for convex optimization, Newton's method, heuristic methods, and dynamic programming and optimal control methods. Expectations and evaluation criteria differ for students taking graduate version; consult syllabus or instructor for specific details.


6.C01
6.C01 Modeling with Machine Learning: from Algorithms to Applications

()
Prereqs/[Coreqs]: GIR:CAL2 and 6.100A; [1.C01, 2.C01, 3.C01, 7.C01, or 22.C01]
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. Students taking graduate version complete additional assignments. Students cannot receive credit without simultaneous completion of a 6-unit disciplinary module. Enrollment may be limited.

&6.S052
6.S052 Modeling with Machine Learning for Computer Science

()
Prereqs: 6.S084/18.061 or 18.06 or equivalent; 6.1200 or 6.3700, 6.100A or equivalent; Co-req 6.C01
Units: 3-0-3

[Meets with 6.S952] Focuses on in-depth modeling of engineering tasks as machine learning problems. Emphasizes framing, method design, and interpretation of results. In comparison to broader co-requisite 6.C01/6.C51, this project oriented subject consists of deep dives into select technical areas or engineering tasks involving both supervised and exploratory uses of machine learning. Deep dives into technical areas such robustness, interpretability, privacy or causal discovery; engineering tasks such as recommender systems, performance optimization, or automated design. This 6-unit subject must be taken together with the 6-unit core subject 6.C01. Enrollment may be limited.


6.C35
6.C35 Interactive Data Visualization and Society

()
Prereqs: none
Units: 3-1-8

Covers the design, ethical, and technical skills for creating effective visualizations. Short assignments build familiarity with the data analysis and visualization design process. Weekly lab sessions present coding and technical skills. A final project provides experience working with real-world big data, provided by external partners, in order to expose and communicate insights about societal issues. Students taking graduate version complete additional assignments. Enrollment limited. Enrollment limited.


6.C51
6.C51 Modeling with Machine Learning: from Algorithms to Applications

()
Prereqs/[Coreqs]: GIR:CAL2 and 6.100A; [1.C51, 2.C51, 3.C51, 7.C51, 22.C51, or SCM.C51]
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. Students cannot receive credit without simultaneous completion of a 6-unit disciplinary module. Enrollment may be limited.

&6.S952
6.S952 Modeling with Machine Learning for Computer Science

()
Prereqs: 6.S084/18.061 or 18.06 or equivalent; 6.1200 or 6.3700, 6.100A or equivalent; Co-req 6.C51
Units: 3-0-3

[Meets with 6.S052] Focuses on in-depth modeling of engineering tasks as machine learning problems. Emphasizes framing, method design, and interpretation of results. In comparison to broader co-requisite 6.C01/6.C51, this project oriented subject consists of deep dives into select technical areas or engineering tasks involving both supervised and exploratory uses of machine learning. Deep dives into technical areas such robustness, interpretability, privacy or causal discovery; engineering tasks such as recommender systems, performance optimization, or automated design. This 6-unit subject must be taken together with the 6-unit core subject 6.C01. Enrollment may be limited.

6.S041
6.S041 Algorithmic and Human Decision-Making

()
Prereqs: 6.3700 or 6.3800 or 18.05 or 18.600 or 14.300 or 14.32 and 6.3900 or 6.C01
Units: 3-0-9

Introduces students to problems at the intersection of algorithmic and human decision-making, focusing on problem domains such as criminal justice, the health care system, labor market, and others. Introduces the foundations in computer science, economics and psychology needed to integrate our behavioral understanding of people into machine learning. Topics include supervised learning, decision-making under uncertainty, behavioral economics, recommendation systems, and fairness/discrimination. Guest lectures by experts designing live algorithms in these domains, and culminates in student projects.


6.S059
6.S059 Causal Inference

()
Prereqs: 6.3800, 6.3900, 6.C01, 14.32, 17.803, 18.05, 18.650, or permission of instructor
Units: 4-0-8

[Meets with 15.C08, 17.C08] Provides an accessible overview of modern quantitative methods for causal inference: testing whether an action causes an outcome to occur. Makes heavy use of applied, real-data examples using Python or R and drawn from the participating domains (economics, political science, business, public policy, etc.). Covers topics including potential outcomes, causal graphs, randomized controlled trials, observational studies, instrumental variable estimation, and a contrast with machine learning techniques. Seeks to provide an intuitive understanding of the core concepts and techniques to help students produce and consume evidence of causal claims.


9.660
and one of:
18.404
18.404 Theory of Computation

()
Prereqs: 6.1200 or 18.200
Units: 4-0-8

A more extensive and theoretical treatment of the material in 6.1400J/18.400J, emphasizing computability and computational complexity theory. Regular and context-free languages. Decidable and undecidable problems, reducibility, recursive function theory. Time and space measures on computation, completeness, hierarchy theorems, inherently complex problems, oracles, probabilistic computation, and interactive proof systems.


6.37306.419
6.3730 Statistics, Computation and Applications

()
Prereqs: (6.100B, (18.03, 18.06, or 18.C06), and (6.3700, 6.3800, 14.30, 16.09, or 18.05)) or permission of instructor
Units: 3-1-8

Hands-on analysis of data demonstrates the interplay between statistics and computation. Includes four modules, each centered on a specific data set, and introduced by a domain expert. Provides instruction in specific, relevant analysis methods and corresponding algorithmic aspects. Potential modules may include medical data, gene regulation, social networks, finance data (time series), traffic, transportation, weather forecasting, policy, or industrial web applications. Projects address a large-scale data analysis question. Students taking graduate version complete additional assignments. Enrollment limited; priority to Statistics and Data Science minors, and to juniors and seniors.


6.42006.141
6.4200 Robotics: Science and Systems

()
Prereqs: ((1.00 or 6.100A) and (2.003, 6.1010, 6.1210, or 16.06)) or permission of instructor
Units: 2-6-4

Presents concepts, principles, and algorithmic foundations for robots and autonomous vehicles operating in the physical world. Topics include sensing, kinematics and dynamics, state estimation, computer vision, perception, learning, control, motion planning, and embedded system development. Students design and implement advanced algorithms on complex robotic platforms capable of agile autonomous navigation and real-time interaction with the physical word. Students engage in extensive written and oral communication exercises. Enrollment limited.


6.42106.800
6.4210 Robotic Manipulation

()
Prereqs: (6.100A and 6.3900) or permission of instructor
Units: 4-2-9

Introduces the fundamental algorithmic approaches for creating robot systems that can autonomously manipulate physical objects in unstructured environments such as homes and restaurants. Topics include perception (including approaches based on deep learning and approaches based on 3D geometry), planning (robot kinematics and trajectory generation, collision-free motion planning, task-and-motion planning, and planning under uncertainty), as well as dynamics and control (both model-based and learning-based). Students taking graduate version complete additional assignments. Students engage in extensive written and oral communication exercises.


6.42106.800
6.4210 Robotic Manipulation

()
Prereqs: (6.100A and 6.3900) or permission of instructor
Units: 4-2-9

Introduces the fundamental algorithmic approaches for creating robot systems that can autonomously manipulate physical objects in unstructured environments such as homes and restaurants. Topics include perception (including approaches based on deep learning and approaches based on 3D geometry), planning (robot kinematics and trajectory generation, collision-free motion planning, task-and-motion planning, and planning under uncertainty), as well as dynamics and control (both model-based and learning-based). Students taking graduate version complete additional assignments. Students engage in extensive written and oral communication exercises.

6.51516.905
6.5151 Large-scale Symbolic Systems

()
Prereqs: 6.4100 or permission of instructor
Units: 3-0-9

Concepts and techniques for the design and implementation of large software systems that can be adapted to uses not anticipated by the designer. Applications include compilers, computer-algebra systems, deductive systems, and some artificial intelligence applications. Covers means for decoupling goals from strategy, mechanisms for implementing additive data-directed invocation, work with partially-specified entities, and how to manage multiple viewpoints. Topics include combinators, generic operations, pattern matching, pattern-directed invocation, rule systems, backtracking, dependencies, indeterminacy, memoization, constraint propagation, and incremental refinement. Students taking graduate version complete additional assignments.


6.58316.814
6.5831 Database Systems

()
Prereqs: (6.1800 and (6.1210 or 6.1220)) or permission of instructor
Units: 3-0-9

Topics related to the engineering and design of database systems, including data models; database and schema design; schema normalization and integrity constraints; query processing; query optimization and cost estimation; transactions; recovery; concurrency control; isolation and consistency; distributed, parallel and heterogeneous databases; adaptive databases; trigger systems; pub-sub systems; semi structured data and XML querying. Lecture and readings from original research papers. Semester-long project and paper. Students taking graduate version complete different assignments. Enrollment may be limited.


6.74116.405
6.7411 Principles of Digital Communication

()
Prereqs: (6.3000, 6.3100, or 6.3400) and (6.3700, 6.3800, or 18.05)
Units: 3-0-9

Covers communications by progressing through signal representation, sampling, quantization, compression, modulation, coding and decoding, medium access control, and queueing and principles of protocols. By providing simplified proofs, seeks to present an integrated, systems-level view of networking and communications while laying the foundations of analysis and design. Lectures are offered online; in-class time is dedicated to recitations, exercises, and weekly group labs. Homework exercises are based on theoretical derivation and software implementation. Students taking graduate version complete additional assignments.


6.79306.871
6.7930 Machine Learning for Healthcare

()
Prereqs: 6.3900, 6.4100, 6.7810, 6.7900, 6.8611, or 9.520
Units: 4-0-8

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.83006.869
6.8300 Advances in Computer Vision

()
Prereqs: (6.1200 or 6.3700) and (18.06 or 18.C06)
Units: 3-0-9

Advanced topics in computer vision with a focus on the use of machine learning techniques and applications in graphics and human-computer interface. Covers image representations, texture models, structure-from-motion algorithms, Bayesian techniques, object and scene recognition, tracking, shape modeling, and image databases. Applications may include face recognition, multimodal interaction, interactive systems, cinematic special effects, and photorealistic rendering. Covers topics complementary to 6.8390. Students taking graduate version complete additional assignments.

6.83016.819
6.8301 Advances in Computer Vision

()
Prereqs: (6.1200 or 6.3700) and (18.06 or 18.C06)
Units: 4-0-11

Advanced topics in computer vision with a focus on the use of machine learning techniques and applications in graphics and human-computer interface. Covers image representations, texture models, structure-from-motion algorithms, Bayesian techniques, object and scene recognition, tracking, shape modeling, and image databases. Applications may include face recognition, multimodal interaction, interactive systems, cinematic special effects, and photorealistic rendering. Includes instruction and practice in written and oral communication. Students taking graduate version complete additional assignments.


6.83016.819
6.8301 Advances in Computer Vision

()
Prereqs: (6.1200 or 6.3700) and (18.06 or 18.C06)
Units: 4-0-11

Advanced topics in computer vision with a focus on the use of machine learning techniques and applications in graphics and human-computer interface. Covers image representations, texture models, structure-from-motion algorithms, Bayesian techniques, object and scene recognition, tracking, shape modeling, and image databases. Applications may include face recognition, multimodal interaction, interactive systems, cinematic special effects, and photorealistic rendering. Includes instruction and practice in written and oral communication. Students taking graduate version complete additional assignments.


6.83716.815
6.8371 Digital and Computational Photography

()
Prereqs: GIR:CAL2 and 6.1010
Units: 3-0-9

Presents fundamentals and applications of hardware and software techniques used in digital and computational photography, with an emphasis on software methods. Provides sufficient background to implement solutions to photographic challenges and opportunities. Topics include cameras and image formation, image processing and image representations, high-dynamic-range imaging, human visual perception and color, single view 3-D model reconstruction, morphing, data-rich photography, super-resolution, and image-based rendering. Students taking graduate version complete additional assignments.


6.86116.806
6.8611 Quantitative Methods for Natural Language Processing

()
Prereqs: 6.3900 and (18.06 or 18.C06)
Units: 4-0-11

Introduces the study of human language from a computational perspective, including syntactic, semantic and discourse processing models. Emphasizes machine learning methods and algorithms. Uses these methods and models in applications such as syntactic parsing, information extraction, statistical machine translation, dialogue systems. Instruction and practice in oral and written communication provided. Students taking graduate version complete additional assignments.


6.86116.806
6.8611 Quantitative Methods for Natural Language Processing

()
Prereqs: 6.3900 and (18.06 or 18.C06)
Units: 4-0-11

Introduces the study of human language from a computational perspective, including syntactic, semantic and discourse processing models. Emphasizes machine learning methods and algorithms. Uses these methods and models in applications such as syntactic parsing, information extraction, statistical machine translation, dialogue systems. Instruction and practice in oral and written communication provided. Students taking graduate version complete additional assignments.

6.87016.047
6.8701 Computational Biology: Genomes, Networks, Evolution

()
Prereqs: (GIR:BIOL, 6.1210, and 6.3700) or permission of instructor
Units: 3-0-9

Covers the algorithmic and machine learning foundations of computational biology, combining theory with practice. Principles of algorithm design, influential problems and techniques, and analysis of large-scale biological datasets. Topics include (a) genomes: sequence analysis, gene finding, RNA folding, genome alignment and assembly, database search; (b) networks: gene expression analysis, regulatory motifs, biological network analysis; (c) evolution: comparative genomics, phylogenetics, genome duplication, genome rearrangements, evolutionary theory. These are coupled with fundamental algorithmic techniques including: dynamic programming, hashing, Gibbs sampling, expectation maximization, hidden Markov models, stochastic context-free grammars, graph clustering, dimensionality reduction, Bayesian networks.


6.87116.802
6.8711 Computational Systems Biology: Deep Learning in the Life Sciences

()
Prereqs: (7.05 and (6.100B or 6.9080)) 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.S079
6.S079 Software Systems for Data Science

()
Prereqs: (6.100A, 6.100B, and 6.1210) or permission of instructor
Units: 3-0-9

In this course we review the important role of semiconductor devices in patient monitoring and point of care. This includes technologies such as electrochemical, ultrasonic,magnetic, optical, and RF sensing modalities. We cover some of the basics of each device as well as physics and biology of device/human interaction.


6.S966
6.S966 Symmetry and its Application to Machine Learning and Scientific Computing

()
Prereqs: 18.06 or 18.061, 6.100A, 6.1210
Units: 3-0-9

Introduces the use of group representation theory to construct symmetry-preserving algorithms for machine learning. Emphases the connection between topics in math and physics and machine learning. Students will implement core mathematical concepts in code to build algorithms that can operate on graphs, geometry, scientific data, and other structured data to preserve the symmetries of these domains. Topics covered include: Euclidean and permutation groups, group representations: regular, reducible, and irreducible, tensor products, statistics and sampling of group representation vector spaces, and symmetry-breaking mechanisms.

[CS,EE] Architecture
6.19206.175
6.1920 Constructive Computer Architecture

()
Prereqs: 6.1910
Units: 3-8-1

Illustrates a constructive (as opposed to a descriptive) approach to computer architecture. Topics include combinational and pipelined arithmetic-logic units (ALU), in-order pipelined microarchitectures, branch prediction, blocking and unblocking caches, interrupts, virtual memory support, cache coherence and multicore architectures. Labs in a modern Hardware Design Language (HDL) illustrate various aspects of microprocessor design, culminating in a term project in which students present a multicore design running on an FPGA board.


6.20506.111
6.2050 Digital Systems Laboratory

()
Prereqs: 6.1910 or permission of instructor
Units: 3-7-2

Lab-intensive subject that investigates digital systems with a focus on FPGAs. Lectures and labs cover logic, flip flops, counters, timing, synchronization, finite-state machines, digital signal processing, communication protocols, and modern sensors. Prepares students for the design and implementation of a large-scale final project of their choice: games, music, digital filters, wireless communications, video, or graphics. Extensive use of System/Verilog for describing and implementing and verifying digital logic designs.


6.20606.115
6.2060 Microcomputer Project Laboratory

()
Prereqs: 6.1910, 6.2000, or 6.3000
Units: 3-6-3

Introduces analysis and design of embedded systems. Microcontrollers provide adaptation, flexibility, and real-time control. Emphasizes construction of complete systems, including a five-axis robot arm, a fluorescent lamp ballast, a tomographic imaging station (e.g., a CAT scan), and a simple calculator. Presents a wide range of basic tools, including software and development tools, programmable system on chip, peripheral components such as A/D converters, communication schemes, signal processing techniques, closed-loop digital feedback control, interface and power electronics, and modeling of electromechanical systems. Includes a sequence of assigned projects, followed by a final project of the student's choice, emphasizing creativity and uniqueness. Provides instruction in written and oral communication. To satisfy the independent inquiry component of this subject, students expand the scope of their laboratory project.


6.58906.888
6.59006.823
6.5900 Computer System Architecture

()
Prereqs: 6.1910
Units: 4-0-8

Introduction to the principles underlying modern computer architecture. Emphasizes the relationship among technology, hardware organization, and programming systems in the evolution of computer architecture. Topics include pipelined, out-of-order, and speculative execution; caches, virtual memory and exception handling, superscalar, very long instruction word (VLIW), vector, and multithreaded processors; on-chip networks, memory models, synchronization, and cache coherence protocols for multiprocessors.

6.59306.825
6.5930 Hardware Architecture for Deep Learning

()
Prereqs: 6.1910 and (6.3000 or 6.3900)
Units: 3-3-6

Introduction to the design and implementation of hardware architectures for efficient processing of deep learning algorithms and tensor algebra in AI systems. Topics include basics of deep learning, optimization principles for programmable platforms, design principles of accelerator architectures, co-optimization of algorithms and hardware (including sparsity) and use of advanced technologies (including memristors and optical computing). Includes labs involving modeling and analysis of hardware architectures, architecting deep learning inference systems, and an open-ended design project. Students taking graduate version complete additional assignments.


6.59316.812
6.5931 Hardware Architecture for Deep Learning

()
Prereqs: 6.1910 and (6.3000 or 6.3900)
Units: 3-3-6

Introduction to the design and implementation of hardware architectures for efficient processing of deep learning algorithms and tensor algebra in AI systems. Topics include basics of deep learning, optimization principles for programmable platforms, design principles of accelerator architectures, co-optimization of algorithms and hardware (including sparsity) and use of advanced technologies (including memristors and optical computing). Includes labs involving modeling and analysis of hardware architectures, architecting deep learning inference systems, and an open-ended design project. Students taking graduate version complete additional assignments.


6.5951
6.5951 Secure Hardware Design

()
Prereqs: 6.1910
Units: 3-0-9

Introduction to basic concepts, principles, and implementation issues in the designing of secure hardware systems. Through a mixture of lectures and paper discussions, covers state-of-the-art security attacks and defenses targeting the computer architecture, digital circuits, and physics layers of computer systems. Emphasizes both the conceptual and the practical aspects of security issues in modern hardware systems. Topics include microarchitectural timing side channels, speculative execution attacks, RowHammer, Trusted Execution Environment, physical attacks, hardware support for software security, and verification of digital systems. Students taking graduate version complete additional assignments.


6.S984
6.S984 Datacenter Computing

()
Prereqs: 6.1910 or equivalent and 6.1800 or equivalent
Units: 3-0-9

Warehouse-scale datacenters host a wide range of online services, including social networks, web search, video streaming, machine learning, and serverless workloads. In this course, we will study the end-to-end stack of modern datacenters, from hardware and OS all the way to resource managers and programming frameworks. We will also explore cross-cutting issues, such as total cost of ownership, service level objectives, availability, and reliability. The course is a combination of lectures and paper readings. Students will read up to two papers per topic and submit brief summaries. During class meetings, we will start with a student presentation of the papers followed by an in-class discussion. The main deliverable for the course is a semester-long group project which should address an open research problem in modern cloud environments (project suggestions will be provided by the instructor, but students are also welcome to propose their own). The class is appropriate for graduate and advanced undergraduate students who want to learn more about cloud computing and datacenter systems.

At most one can be from 6.111, 6.2050, 6.115, 6.2060

[CS] Computers and Society
6.18506.052
6.1850 Computer Systems and Society

()
Prereqs: 6.1800
Units: 3-0-9

Explores the impact of computer systems on individual humans, society, and the environment. Examines large- and small-scale power structures that stem from low-level technical design decisions, the consequences of those structures on society, and how they can limit or provide access to certain technologies. Students learn to assess 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 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; and the environmental impact of proof-of-work-based systems such as Bitcoin. Enrollment may be limited.


6.45906.805
6.4590 Foundations of Information Policy

()
Prereqs: Permission of instructor
Units: 3-0-9

Studies the growth of computer and communications technology and the new legal and ethical challenges that reflect tensions between individual rights and societal needs. Topics include computer crime; intellectual property restrictions on software; encryption, privacy, and national security; academic freedom and free speech. Students meet and question technologists, activists, law enforcement agents, journalists, and legal experts. Instruction and practice in oral and written communication provided. Students taking graduate version complete additional assignments. Enrollment limited.


6.85306.859
6.8530 Interactive Data Visualization

()
Prereqs: 6.1020
Units: 3-0-9

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.C35
6.C35 Interactive Data Visualization and Society

()
Prereqs: none
Units: 3-1-8

Covers the design, ethical, and technical skills for creating effective visualizations. Short assignments build familiarity with the data analysis and visualization design process. Weekly lab sessions present coding and technical skills. A final project provides experience working with real-world big data, provided by external partners, in order to expose and communicate insights about societal issues. Students taking graduate version complete additional assignments. Enrollment limited. Enrollment limited.


6.C85
6.C85 Interactive Data Visualization and Society

()
Prereqs: none
Units: 3-1-8

Covers the design, ethical, and technical skills for creating effective visualizations. Short assignments build familiarity with the data analysis and visualization design process. Students participate in hour-long studio reading sessions. A final project provides experience working with real-world big data, provided by external partners, in order to expose and communicate insights about societal issues. Students taking graduate version complete additional assignments.


6.S041
6.S041 Algorithmic and Human Decision-Making

()
Prereqs: 6.3700 or 6.3800 or 18.05 or 18.600 or 14.300 or 14.32 and 6.3900 or 6.C01
Units: 3-0-9

Introduces students to problems at the intersection of algorithmic and human decision-making, focusing on problem domains such as criminal justice, the health care system, labor market, and others. Introduces the foundations in computer science, economics and psychology needed to integrate our behavioral understanding of people into machine learning. Topics include supervised learning, decision-making under uncertainty, behavioral economics, recommendation systems, and fairness/discrimination. Guest lectures by experts designing live algorithms in these domains, and culminates in student projects.

[CS] Human Computer Interaction
6.10406.170
6.1040 Software Design

()
Prereqs: 6.1020 and 6.1200
Units: 4-0-14

Provides design-focused instruction on how to build complex software applications. Design topics include classic human-computer interaction (HCI) design tactics (need finding, heuristic evaluation, prototyping, user testing), conceptual design (inventing, modeling and evaluating constituent concepts), social and ethical implications, abstract data modeling, and visual design. Implementation topics include reactive front-ends, web services, and databases. Students work both on individual projects and a larger team project in which they design and build full-stack web applications.


6.45106.810
6.4510 Engineering Interactive Technologies

()
Prereqs: 6.1020, 6.2050, 6.2060, 6.9010, or permission of instructor
Units: 1-5-6

Provides instruction in building cutting-edge interactive technologies, explains the underlying engineering concepts, and shows how those technologies evolved over time. Students use a studio format (i.e., extended periods of time) for constructing software and hardware prototypes. Topics include interactive technologies, such as multi-touch, augmented reality, haptics, wearables, and shape-changing interfaces. In a group project, students build their own interactive hardware/software prototypes and present them in a live demo at the end of term. Enrollment may be limited.


6.45306.811
6.4530 Principles and Practice of Assistive Technology

()
Prereqs: Permission of instructor
Units: 2-4-6

Students work closely with people with disabilities to develop assistive and adaptive technologies that help them live more independently. Covers design methods and problem-solving strategies; human factors; human-machine interfaces; community perspectives; social and ethical aspects; and assistive technology for motor, cognitive, perceptual, and age-related impairments. Prior knowledge of one or more of the following areas useful: software; electronics; human-computer interaction; cognitive science; mechanical engineering; control; or MIT hobby shop, MIT PSC, or other relevant independent project experience. Enrollment may be limited.


6.45506.185
6.4550 Interactive Music Systems

(,)
Prereqs: (6.1010 and 21M.301) or permission of instructor
Units: 3-0-9

Explores audio synthesis, musical structure, human computer interaction (HCI), and visual presentation for the creation of interactive musical experiences. Topics include audio synthesis; mixing and looping; MIDI sequencing; generative composition; motion sensors; music games; and graphics for UI, visualization, and aesthetics. Includes weekly programming assignments in python. Teams build an original, dynamic, and engaging interactive music system for their final project. Students taking graduate version complete different assignments. Limited to 36.

6.85106.835
6.8510 Intelligent Multimodal User Interfaces

()
Prereqs: (6.1020 and 6.4100) or permission of instructor
Units: 3-0-9

Implementation and evaluation of intelligent multi-modal user interfaces, taught from a combination of hands-on exercises and papers from the original literature. Topics include basic technologies for handling speech, vision, pen-based interaction, and other modalities, as well as various techniques for combining modalities. Substantial readings and a term project, where students build a program that illustrates one or more of the themes of the course.


6.85306.859
6.8530 Interactive Data Visualization

()
Prereqs: 6.1020
Units: 3-0-9

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.C35
6.C35 Interactive Data Visualization and Society

()
Prereqs: none
Units: 3-1-8

Covers the design, ethical, and technical skills for creating effective visualizations. Short assignments build familiarity with the data analysis and visualization design process. Weekly lab sessions present coding and technical skills. A final project provides experience working with real-world big data, provided by external partners, in order to expose and communicate insights about societal issues. Students taking graduate version complete additional assignments. Enrollment limited. Enrollment limited.


6.C85
6.C85 Interactive Data Visualization and Society

()
Prereqs: none
Units: 3-1-8

Covers the design, ethical, and technical skills for creating effective visualizations. Short assignments build familiarity with the data analysis and visualization design process. Students participate in hour-long studio reading sessions. A final project provides experience working with real-world big data, provided by external partners, in order to expose and communicate insights about societal issues. Students taking graduate version complete additional assignments.

[CS] Programming Principles and Tools
6.10406.170
6.1040 Software Design

()
Prereqs: 6.1020 and 6.1200
Units: 4-0-14

Provides design-focused instruction on how to build complex software applications. Design topics include classic human-computer interaction (HCI) design tactics (need finding, heuristic evaluation, prototyping, user testing), conceptual design (inventing, modeling and evaluating constituent concepts), social and ethical implications, abstract data modeling, and visual design. Implementation topics include reactive front-ends, web services, and databases. Students work both on individual projects and a larger team project in which they design and build full-stack web applications.


6.10606.172
6.1060 Software Performance Engineering

()
Prereqs: 6.1020, 6.1210, and 6.1910
Units: 3-12-3

Project-based introduction to building efficient, high-performance and scalable software systems. Topics include performance analysis, algorithmic techniques for high performance, instruction-level optimizations, vectorization, cache and memory hierarchy optimization, and parallel programming.


6.11006.035
6.1100 Computer Language Engineering

()
Prereqs: 6.1020 and 6.1910
Units: 4-4-4

Analyzes issues associated with the implementation of higher-level programming languages. Fundamental concepts, functions, and structures of compilers. The interaction of theory and practice. Using tools in building software. Includes a multi-person project on compiler design and implementation.


6.11206.818
6.1120 Dynamic Computer Language Engineering

()
Prereqs: 6.1020 or 6.1910
Units: 4-4-4

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. Includes a semester-long, group project that delivers a virtual machine that spans all of these topics.


6.50606.827
6.5060 Algorithm Engineering

()
Prereqs: 6.1060 and 6.1220
Units: 3-0-9

Covers the theory and practice of algorithms and data structures. Topics include models of computation, algorithm design and analysis, and performance engineering of algorithm implementations. Presents the design and implementation of sequential, parallel, cache-efficient, and external-memory algorithms. Illustrates many of the principles of algorithm engineering in the context of parallel algorithms and graph problems.

6.50806.836
6.5080 Multicore Programming

()
Prereqs: 6.1210
Units: 4-0-8

Introduces principles and core techniques for programming multicore machines. Topics include locking, scalability, concurrent data structures, multiprocessor scheduling, load balancing, and state-of-the-art synchronization techniques, such as transactional memory. Includes sequence of programming assignments on a large multicore machine, culminating with the design of a highly concurrent application. Students taking graduate version complete additional assignments.


6.50816.816
6.5081 Multicore Programming

()
Prereqs: 6.1210
Units: 4-0-8

Introduces principles and core techniques for programming multicore machines. Topics include locking, scalability, concurrent data structures, multiprocessor scheduling, load balancing, and state-of-the-art synchronization techniques, such as transactional memory. Includes sequence of programming assignments on a large multicore machine, culminating with the design of a highly concurrent application. Students taking graduate version complete additional assignments.


6.51106.820
6.5110 Foundations of Program Analysis

()
Prereqs: 6.1100
Units: 3-0-9

Presents major principles and techniques for program analysis. Includes formal semantics, type systems and type-based program analysis, abstract interpretation and model checking and synthesis. Emphasis on Haskell and Ocaml, but no prior experience in these languages is assumed. Student assignments include implementing of techniques covered in class, including building simple verifiers.


6.51206.822
6.5120 Formal Reasoning About Programs

()
Prereqs: 6.1020 and 6.1200
Units: 3-0-9

Surveys techniques for rigorous mathematical reasoning about correctness of software, emphasizing commonalities across approaches. Introduces interactive computer theorem proving with the Coq proof assistant, which is used for all assignments, providing immediate feedback on soundness of logical arguments. Covers common program-proof techniques, including operational semantics, model checking, abstract interpretation, type systems, program logics, and their applications to functional, imperative, and concurrent programs. Develops a common conceptual framework based on invariants, abstraction, and modularity applied to state and labeled transition systems.

[CS] Systems
6.16006.053
6.1600 Foundations of Computer Security

()
Prereqs: 6.1210 and 6.1800
Units: 4-0-8

Fundamental notions and big ideas for achieving security in computer systems. Topics include cryptographic foundations (pseudorandomness, collision-resistant hash functions, authentication codes, signatures, authenticated encryption, public-key encryption), systems ideas (isolation, non-interference, authentication, access control, delegation, trust), and implementation techniques (privilege separation, fuzzing, symbolic execution, runtime defenses, side-channel attacks). Case studies of how these ideas are realized in deployed systems. Lab assignments apply ideas from lectures to learn how to build secure systems and how they can be attacked.


6.18106.039
6.1810 Operating System Engineering

()
Prereqs: 6.1910
Units: 3-0-9

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, xv6, is used to illustrate these topics. Individual laboratory assignments involve extending the xv6 operating system, for example to support sophisticated virtual memory features and networking.


6.18206.808
6.1820 Mobile and Sensor Computing

()
Prereqs: 6.1800 or permission of instructor
Units: 3-0-9

Focuses on "Internet of Things" (IoT) systems and technologies, sensing, computing, and communication. Explores fundamental design and implementation issues in the engineering of mobile and sensor computing systems. Topics include battery-free sensors, seeing through wall, robotic sensors, vital sign sensors (breathing, heartbeats, emotions), sensing in cars and autonomous vehicles, subsea IoT, sensor security, positioning technologies (including GPS and indoor WiFi), inertial sensing (accelerometers, gyroscopes, inertial measurement units, dead-reckoning), embedded and distributed system architectures, sensing with radio signals, sensing with microphones and cameras, wireless sensor networks, embedded and distributed system architectures, mobile libraries and APIs to sensors, and application case studies. Includes readings from research literature, as well as laboratory assignments and a significant term project.


6.56106.857
6.5610 Applied Cryptography and Security

()
Prereqs: 6.1200 and 6.1800
Units: 4-0-8

Emphasis on applied cryptography. May include: basic notion of systems security, cryptographic hash functions, symmetric cryptography (one-time pad, block ciphers, stream ciphers, message authentication codes), hash functions, key-exchange, public-key cryptography (encryption, digital signatures), elliptic curve cryptography,  secret-sharing, fully homomorphic encryption, zero-knowledge proofs, and electronic voting. Assignments include a final group project. Topics may vary year to year.

6.56606.858
6.5660 Computer Systems Security

()
Prereqs: 6.1020 and 6.1800
Units: 3-6-3

Design and implementation of secure computer systems. Lectures cover attacks that compromise security as well as techniques for achieving security, based on recent research papers. Topics include operating system security, privilege separation, capabilities, language-based security, cryptographic network protocols, trusted hardware, and security in web applications and mobile phones. Labs involve implementing and compromising a web application that sandboxes arbitrary code, and a group final project.


6.58106.828
6.5810 Operating System Engineering

()
Prereqs: 6.1020 and 6.1800
Units: 3-6-3

Fundamental design and implementation issues in the engineering of operating systems. Lectures based on the study of a symmetric multiprocessor version of UNIX version 6 and research papers. Topics include virtual memory; file system; threads; context switches; kernels; interrupts; system calls; interprocess communication; coordination, and interaction between software and hardware. Individual laboratory assignments accumulate in the construction of a minimal operating system (for an x86-based personal computer) that implements the basic operating system abstractions and a shell. Knowledge of programming in the C language is a prerequisite.


6.58206.829
6.5820 Computer Networks

()
Prereqs: 6.1800 or permission of instructor
Units: 4-0-8

Topics on the engineering and analysis of network protocols and architecture, including architectural principles for designing heterogeneous networks; transport protocols; Internet routing; router design; congestion control and network resource management; wireless networks; network security; naming; overlay and peer-to-peer networks. Readings from original research papers. Semester-long project and paper.


6.58306.830
6.5830 Database Systems

()
Prereqs: (6.1800 and (6.1210 or 6.1220)) or permission of instructor
Units: 3-0-9

Topics related to the engineering and design of database systems, including data models; database and schema design; schema normalization and integrity constraints; query processing; query optimization and cost estimation; transactions; recovery; concurrency control; isolation and consistency; distributed, parallel and heterogeneous databases; adaptive databases; trigger systems; pub-sub systems; semi structured data and XML querying. Lecture and readings from original research papers. Semester-long project and paper. Students taking graduate version complete different assignments. Enrollment may be limited.

6.58316.814
6.5831 Database Systems

()
Prereqs: (6.1800 and (6.1210 or 6.1220)) or permission of instructor
Units: 3-0-9

Topics related to the engineering and design of database systems, including data models; database and schema design; schema normalization and integrity constraints; query processing; query optimization and cost estimation; transactions; recovery; concurrency control; isolation and consistency; distributed, parallel and heterogeneous databases; adaptive databases; trigger systems; pub-sub systems; semi structured data and XML querying. Lecture and readings from original research papers. Semester-long project and paper. Students taking graduate version complete different assignments. Enrollment may be limited.


6.58406.824
6.5840 Distributed Computer Systems Engineering

()
Prereqs: 6.1800 and permission of instructor
Units: 3-0-9

Abstractions and implementation techniques for engineering distributed systems: remote procedure call, threads and locking, client/server, peer-to-peer, consistency, fault tolerance, and security. Readings from current literature. Individual laboratory assignments culminate in the construction of a fault-tolerant and scalable network file system. Programming experience with C/C++ required. Enrollment limited.


6.58506.826
6.5850 Principles of Computer Systems

()
Prereqs: Permission of instructor
Units: 3-0-9

Introduction to the basic principles of computer systems with emphasis on the use of rigorous techniques as an aid to understanding and building modern computing systems. Particular attention paid to concurrent and distributed systems. Topics include: specification and verification, concurrent algorithms, synchronization, naming, Networking, replication techniques (including distributed cache management), and principles and algorithms for achieving reliability.


6.S079
6.S079 Software Systems for Data Science

()
Prereqs: (6.100A, 6.100B, and 6.1210) or permission of instructor
Units: 3-0-9

In this course we review the important role of semiconductor devices in patient monitoring and point of care. This includes technologies such as electrochemical, ultrasonic,magnetic, optical, and RF sensing modalities. We cover some of the basics of each device as well as physics and biology of device/human interaction.

[CS] Theory
18.404
18.404 Theory of Computation

()
Prereqs: 6.1200 or 18.200
Units: 4-0-8

A more extensive and theoretical treatment of the material in 6.1400J/18.400J, emphasizing computability and computational complexity theory. Regular and context-free languages. Decidable and undecidable problems, reducibility, recursive function theory. Time and space measures on computation, completeness, hierarchy theorems, inherently complex problems, oracles, probabilistic computation, and interactive proof systems.


6.12206.046
6.1220 Design and Analysis of Algorithms

(,)
Prereqs: 6.1200 and 6.1210
Units: 4-0-8

Techniques for the design and analysis of efficient algorithms, emphasizing methods useful in practice. Topics include sorting; search trees, heaps, and hashing; divide-and-conquer; dynamic programming; greedy algorithms; amortized analysis; graph algorithms; and shortest paths. Advanced topics may include network flow; computational geometry; number-theoretic algorithms; polynomial and matrix calculations; caching; and parallel computing.


6.14006.045
6.1400 Computability and Complexity Theory

()
Prereqs: (6.1200 and 6.1210) or permission of instructor
Units: 4-0-8

Mathematical introduction to the theory of computing. Rigorously explores what kinds of tasks can be efficiently solved with computers by way of finite automata, circuits, Turing machines, and communication complexity, introducing students to some major open problems in mathematics. Builds skills in classifying computational tasks in terms of their difficulty. Discusses other fundamental issues in computing, including the Halting Problem, the Church-Turing Thesis, the P versus NP problem, and the power of randomness.  


6.14206.054
6.1420 Fixed Parameter and Fine-grained Computation

()
Prereqs: 6.1200, 6.1210, and (6.1220, 6.1400, or 18.404)
Units: 3-0-9

An overview of the theory of parameterized algorithms and the "problem-centric" theory of fine-grained complexity, both of which reconsider how to measure the difficulty and feasibility of solving computational problems. Topics include: fixed-parameter tractability (FPT) and its characterizations, the W-hierarchy (W[1], W[2], W[P], etc.), 3-sum-hardness, all-pairs shortest paths (APSP)-equivalences, strong exponential time hypothesis (SETH) hardness of problems, and the connections to circuit complexity and other aspects of computing.


6.50606.827
6.5060 Algorithm Engineering

()
Prereqs: 6.1060 and 6.1220
Units: 3-0-9

Covers the theory and practice of algorithms and data structures. Topics include models of computation, algorithm design and analysis, and performance engineering of algorithm implementations. Presents the design and implementation of sequential, parallel, cache-efficient, and external-memory algorithms. Illustrates many of the principles of algorithm engineering in the context of parallel algorithms and graph problems.


6.52106.854
6.5210 Advanced Algorithms

()
Prereqs: 6.1220 and (6.1200, 6.3700, or 18.600)
Units: 5-0-7

First-year graduate subject in algorithms. Emphasizes fundamental algorithms and advanced methods of algorithmic design, analysis, and implementation. Surveys a variety of computational models and the algorithms for them. Data structures, network flows, linear programming, computational geometry, approximation algorithms, online algorithms, parallel algorithms, external memory, streaming algorithms.

6.52206.856
6.5220 Randomized Algorithms

()
Prereqs: (6.1200 or 6.3700) and (6.1220 or 6.5210)
Units: 5-0-7

Studies how randomization can be used to make algorithms simpler and more efficient via random sampling, random selection of witnesses, symmetry breaking, and Markov chains. Models of randomized computation. Data structures: hash tables, and skip lists. Graph algorithms: minimum spanning trees, shortest paths, and minimum cuts. Geometric algorithms: convex hulls, linear programming in fixed or arbitrary dimension. Approximate counting; parallel algorithms; online algorithms; derandomization techniques; and tools for probabilistic analysis of algorithms.


6.52306.851
6.5230 Advanced Data Structures

()
Prereqs: 6.1220
Units: 3-0-9

More advanced and powerful data structures for answering several queries on the same data. Such structures are crucial in particular for designing efficient algorithms. Dictionaries; hashing; search trees. Self-adjusting data structures; linear search; splay trees; dynamic optimality. Integer data structures; word RAM. Predecessor problem; van Emde Boas priority queues; y-fast trees; fusion trees. Lower bounds; cell-probe model; round elimination. Dynamic graphs; link-cut trees; dynamic connectivity. Strings; text indexing; suffix arrays; suffix trees. Static data structures; compact arrays; rank and select. Succinct data structures; tree encodings; implicit data structures. External-memory and cache-oblivious data structures; B-trees; buffer trees; tree layout; ordered-file maintenance. Temporal data structures; persistence; retroactivity.


6.52506.852
6.5250 Distributed Algorithms

()
Prereqs: 6.1220
Units: 3-0-9

Design and analysis of concurrent algorithms, emphasizing those suitable for use in distributed networks. Process synchronization, allocation of computational resources, distributed consensus, distributed graph algorithms, election of a leader in a network, distributed termination, deadlock detection, concurrency control, communication, and clock synchronization. Special consideration given to issues of efficiency and fault tolerance. Formal models and proof methods for distributed computation.


6.53106.849
6.5310 Geometric Folding Algorithms: Linkages, Origami, Polyhedra

()
Prereqs: 6.1220 or permission of instructor
Units: 3-0-9

Covers discrete geometry and algorithms underlying the reconfiguration of foldable structures, with applications to robotics, manufacturing, and biology. Linkages made from one-dimensional rods connected by hinges: constructing polynomial curves, characterizing rigidity, characterizing unfoldable versus locked, protein folding. Folding two-dimensional paper (origami): characterizing flat foldability, algorithmic origami design, one-cut magic trick. Unfolding and folding three-dimensional polyhedra: edge unfolding, vertex unfolding, gluings, Alexandrov's Theorem, hinged dissections.


6.53206.850
6.5320 Geometric Computing

()
Prereqs: 6.1220
Units: 3-0-9

Introduction to the design and analysis of algorithms for geometric problems, in low- and high-dimensional spaces. Algorithms: convex hulls, polygon triangulation, Delaunay triangulation, motion planning, pattern matching. Geometric data structures: point location, Voronoi diagrams, Binary Space Partitions. Geometric problems in higher dimensions: linear programming, closest pair problems. High-dimensional nearest neighbor search and low-distortion embeddings between metric spaces. Geometric algorithms for massive data sets: external memory and streaming algorithms. Geometric optimization.


6.53406.853
6.5340 Topics in Algorithmic Game Theory

()
Prereqs: 6.1210 or 6.1220
Units: 3-0-9

Presents research topics at the interface of computer science and game theory, with an emphasis on algorithms and computational complexity. Explores the types of game-theoretic tools that are applicable to computer systems, the loss in system performance due to the conflicts of interest of users and administrators, and the design of systems whose performance is robust with respect to conflicts of interest inside the system. Algorithmic focus is on algorithms for equilibria, the complexity of equilibria and fixed points, algorithmic tools in mechanism design, learning in games, and the price of anarchy.

6.53506.847
6.5350 Matrix Multiplication and Graph Algorithms

()
Prereqs: 6.1220
Units: 3-0-9

Explores topics around matrix multiplication (MM) and its use in the design of graph algorithms. Focuses on problems such as transitive closure, shortest paths, graph matching, and other classical graph problems. Explores fast approximation algorithms when MM techniques are too expensive.


6.54006.840
6.5400 Theory of Computation

()
Prereqs: 6.1200 or 18.200
Units: 4-0-8

A more extensive and theoretical treatment of the material in 6.1400J/18.400J, emphasizing computability and computational complexity theory. Regular and context-free languages. Decidable and undecidable problems, reducibility, recursive function theory. Time and space measures on computation, completeness, hierarchy theorems, inherently complex problems, oracles, probabilistic computation, and interactive proof systems. Students in Course 18 must register for the undergraduate version, 18.404.


6.54106.841
6.5410 Advanced Complexity Theory

()
Prereqs: 18.404
Units: 3-0-9

Current research topics in computational complexity theory. Nondeterministic, alternating, probabilistic, and parallel computation models. Boolean circuits. Complexity classes and complete sets. The polynomial-time hierarchy. Interactive proof systems. Relativization. Definitions of randomness. Pseudo-randomness and derandomizations. Interactive proof systems and probabilistically checkable proofs.


6.54206.842
6.5420 Randomness and Computation

()
Prereqs: 6.1220 and 18.4041
Units: 3-0-9

The power and sources of randomness in computation. Connections and applications to computational complexity, computational learning theory, cryptography and combinatorics. Topics include: probabilistic proofs, uniform generation and approximate counting, Fourier analysis of Boolean functions, computational learning theory, expander graphs, pseudorandom generators, derandomization.


6.54306.845
6.5430 Quantum Complexity Theory

()
Prereqs: 6.1400, 18.4041, and 18.435
Units: 3-0-9

Introduction to quantum computational complexity theory, the study of the fundamental capabilities and limitations of quantum computers. Topics include complexity classes, lower bounds, communication complexity, proofs and advice, and interactive proof systems in the quantum world; classical simulation of quantum circuits. The objective is to bring students to the research frontier.


6.54906.890
6.56206.875
6.5620 Cryptography and Cryptanalysis

()
Prereqs: 6.1220
Units: 3-0-9

A rigorous introduction to modern cryptography. Emphasis on the fundamental cryptographic primitives of public-key encryption, digital signatures, pseudo-random number generation, and basic protocols and their computational complexity requirements.


6.56306.876
6.5630 Advanced Topics in Cryptography

()
Prereqs: 6.5620
Units: 3-0-9

In-depth exploration of recent results in cryptography.


6.S895
6.S895 Quantum Cryptography

()
Prereqs: 6.6410 or 6.6420 and 6.5620 or permission of instructors
Units: 3-0-9

An introduction to the many ways quantum computing and cryptography intersect. Topics will include uniquely quantum cryptographic primitives such as quantum key distribution and quantum money, post-quantum cryptography (classical cryptography that is secure against quantum attackers), and the use of cryptography in verifying quantum devices, as well as speculative connections to fundamental physics. Some familiarity with both quantum computing and cryptography is assumed.

[EE] Biomedical Systems
6.48006.020
6.4800 Biomedical Systems: Modeling and Inference

()
Prereqs: (6.3100 and (18.06 or 18.C06)) or permission of instructor
Units: 4-4-4

Medically motivated examples of problems in human health that engage students in systems modeling, signal analysis and inference, and design. Content draws on two domains, first by establishing a model of the human cardiovascular system with signal analysis and inference applications of electrocardiograms in health and disease. In a second topic, medical imaging by MRI is motivated by examples of common clinical decision making, followed by laboratory work with technology and instrumentation with the functionality of commercial diagnostic scanners. Students apply concepts from lectures in labs for data collection for image reconstruction, image analysis, and inference by their own design. Labs further include kits for interactive and portable low-cost devices that can be assembled by the students to demonstrate fundamental building blocks of an MRI system.

and one of:
6.48106.021
6.4810 Cellular Neurophysiology and Computing

()
Prereqs: (GIR:PHY2, 18.03, and (2.005, 6.2000, 6.3000, 10.301, or 20.110)) or permission of instructor
Units: 5-2-5

Integrated overview of the biophysics of cells from prokaryotes to neurons, with a focus on mass transport and electrical signal generation across cell membrane. First third of course focuses on mass transport through membranes: diffusion, osmosis, chemically mediated, and active transport. Second third focuses on electrical properties of cells: ion transport to action potential generation and propagation in electrically excitable cells. Synaptic transmission. Electrical properties interpreted via kinetic and molecular properties of single voltage-gated ion channels. Final third focuses on biophysics of synaptic transmission and introduction to neural computing. Laboratory and computer exercises illustrate the concepts. Students taking graduate version complete different assignments. Preference to juniors and seniors.


6.48206.022
6.4820 Quantitative and Clinical Physiology

()
Prereqs: GIR:PHY2, 18.03, or permission of instructor
Units: 4-2-6

Application of the principles of energy and mass flow to major human organ systems. Anatomical, physiological and clinical features of the cardiovascular, respiratory and renal systems. Mechanisms of regulation and homeostasis. Systems, features and devices that are most illuminated by the methods of physical sciences and engineering models. Required laboratory work includes animal studies. Students taking graduate version complete additional assignments.


6.48306.023
6.4830 Fields, Forces and Flows in Biological Systems

()
Prereqs: GIR:BIOL, GIR:PHY2, and 18.03
Units: 4-0-8

Introduction to electric fields, fluid flows, transport phenomena and their application to biological systems. Flux and continuity laws, Maxwell's equations, electro-quasistatics, electro-chemical-mechanical driving forces, conservation of mass and momentum, Navier-Stokes flows, and electrokinetics. Applications include biomolecular transport in tissues, electrophoresis, and microfluidics.


6.48606.025
6.4860 Medical Device Design

()
Prereqs: 2.008, 6.2040, 6.2050, 6.2060, 22.071, or permission of instructor
Units: 3-3-6

Provides an intense project-based learning experience around the design of medical devices with foci ranging from mechanical to electro mechanical to electronics. Projects motivated by real-world clinical challenges provided by sponsors and clinicians who also help mentor teams. Covers the design process, project management, and fundamentals of mechanical and electrical circuit and sensor design. Students work in small teams to execute a substantial term project, with emphasis placed upon developing creative designs -- via a deterministic design process -- that are developed and optimized using analytical techniques. Includes mandatory lab. Instruction and practice in written and oral communication provided. Students taking graduate version complete additional assignments. Enrollment limited.

[EE] Communications and Networks
6.74116.405
6.7411 Principles of Digital Communication

()
Prereqs: (6.3000, 6.3100, or 6.3400) and (6.3700, 6.3800, or 18.05)
Units: 3-0-9

Covers communications by progressing through signal representation, sampling, quantization, compression, modulation, coding and decoding, medium access control, and queueing and principles of protocols. By providing simplified proofs, seeks to present an integrated, systems-level view of networking and communications while laying the foundations of analysis and design. Lectures are offered online; in-class time is dedicated to recitations, exercises, and weekly group labs. Homework exercises are based on theoretical derivation and software implementation. Students taking graduate version complete additional assignments.

and one of:
6.18006.033
6.1800 Computer Systems Engineering

()
Prereqs: 6.1910
Units: 5-1-6

Topics on the engineering of computer software and hardware systems: techniques for controlling complexity; strong modularity using client-server design, operating systems; performance, networks; naming; security and privacy; fault-tolerant systems, atomicity and coordination of concurrent activities, and recovery; impact of computer systems on society. Case studies of working systems and readings from the current literature provide comparisons and contrasts. Includes a single, semester-long design project. Students engage in extensive written communication exercises. Enrollment may be limited.


6.30006.003
6.3000 Signal Processing

(,)
Prereqs: 6.100A and 18.03
Units: 6-0-6

Fundamentals of signal processing, focusing on the use of Fourier methods to analyze and process signals such as sounds and images. Topics include Fourier series, Fourier transforms, the Discrete Fourier Transform, sampling, convolution, deconvolution, filtering, noise reduction, and compression. Applications draw broadly from areas of contemporary interest with emphasis on both analysis and design.


6.30106.011
6.3010 Signals, Systems and Inference

()
Prereqs: 6.3000 and (6.3700, 6.3800, or 18.05)
Units: 4-0-8

Covers signals, systems and inference in communication, control and signal processing. Topics include input-output and state-space models of linear systems driven by deterministic and random signals; time- and transform-domain representations in discrete and continuous time; and group delay. State feedback and observers. Probabilistic models; stochastic processes, correlation functions, power spectra, spectral factorization. Least-mean square error estimation; Wiener filtering. Hypothesis testing; detection; matched filters.

[EE] Devices, Circuits, and Systems
One of:
6.20406.101
6.2040 Analog Electronics Laboratory

()
Prereqs: 6.2000
Units: 2-9-1

Experimental laboratory explores the design, construction, and debugging of analog electronic circuits. Lectures and laboratory projects in the first half of the course investigate the performance characteristics of semiconductor devices (diodes, BJTs, and MOSFETs) and functional analog building blocks, including single-stage amplifiers, op amps, small audio amplifier, filters, converters, sensor circuits, and medical electronics (ECG, pulse-oximetry). Projects involve design, implementation, and presentation in an environment similar to that of industry engineering design teams. Instruction and practice in written and oral communication provided. Opportunity to simulate real-world problems and solutions that involve tradeoffs and the use of engineering judgment.


6.20806.300
6.2080 Semiconductor Electronic Circuits

()
Prereqs: 6.2000
Units: 3-2-7

Provides an introduction to basic circuit design, starting from basic semiconductor devices such as diodes and transistors, large and small signal models and analysis, to circuits such as basic amplifier and opamp circuits. Labs give students access to CAD/EDA tools to design, analyze, and layout analog circuits. At the end of the term, students have their chip design fabricated using a 22nm FinFET CMOS process.


6.20906.301
6.2090 Solid-State Circuits

()
Prereqs: 6.2040, 6.2080, or permission of instructor
Units: 3-2-7

Fosters deep understanding and intuition that is crucial in innovating analog circuits and optimizing the whole system in bipolar junction transistor (BJT) and metal oxide semiconductor (MOS) technologies. Covers both theory and real-world applications of basic amplifier structures, operational amplifiers, temperature sensors, bandgap references. Covers topics such as noise, linearity and stability. Homework and labs give students access to CAD/EDA tools to design and analyze analog circuits. Provides practical experience through lab exercises, including a broadband amplifier design and characterization. Students taking graduate version complete additional assignments.

and one of:
6.20406.101
6.2040 Analog Electronics Laboratory

()
Prereqs: 6.2000
Units: 2-9-1

Experimental laboratory explores the design, construction, and debugging of analog electronic circuits. Lectures and laboratory projects in the first half of the course investigate the performance characteristics of semiconductor devices (diodes, BJTs, and MOSFETs) and functional analog building blocks, including single-stage amplifiers, op amps, small audio amplifier, filters, converters, sensor circuits, and medical electronics (ECG, pulse-oximetry). Projects involve design, implementation, and presentation in an environment similar to that of industry engineering design teams. Instruction and practice in written and oral communication provided. Opportunity to simulate real-world problems and solutions that involve tradeoffs and the use of engineering judgment.


6.20506.111
6.2050 Digital Systems Laboratory

()
Prereqs: 6.1910 or permission of instructor
Units: 3-7-2

Lab-intensive subject that investigates digital systems with a focus on FPGAs. Lectures and labs cover logic, flip flops, counters, timing, synchronization, finite-state machines, digital signal processing, communication protocols, and modern sensors. Prepares students for the design and implementation of a large-scale final project of their choice: games, music, digital filters, wireless communications, video, or graphics. Extensive use of System/Verilog for describing and implementing and verifying digital logic designs.


6.20606.115
6.2060 Microcomputer Project Laboratory

()
Prereqs: 6.1910, 6.2000, or 6.3000
Units: 3-6-3

Introduces analysis and design of embedded systems. Microcontrollers provide adaptation, flexibility, and real-time control. Emphasizes construction of complete systems, including a five-axis robot arm, a fluorescent lamp ballast, a tomographic imaging station (e.g., a CAT scan), and a simple calculator. Presents a wide range of basic tools, including software and development tools, programmable system on chip, peripheral components such as A/D converters, communication schemes, signal processing techniques, closed-loop digital feedback control, interface and power electronics, and modeling of electromechanical systems. Includes a sequence of assigned projects, followed by a final project of the student's choice, emphasizing creativity and uniqueness. Provides instruction in written and oral communication. To satisfy the independent inquiry component of this subject, students expand the scope of their laboratory project.


6.20806.300
6.2080 Semiconductor Electronic Circuits

()
Prereqs: 6.2000
Units: 3-2-7

Provides an introduction to basic circuit design, starting from basic semiconductor devices such as diodes and transistors, large and small signal models and analysis, to circuits such as basic amplifier and opamp circuits. Labs give students access to CAD/EDA tools to design, analyze, and layout analog circuits. At the end of the term, students have their chip design fabricated using a 22nm FinFET CMOS process.


6.20906.301
6.2090 Solid-State Circuits

()
Prereqs: 6.2040, 6.2080, or permission of instructor
Units: 3-2-7

Fosters deep understanding and intuition that is crucial in innovating analog circuits and optimizing the whole system in bipolar junction transistor (BJT) and metal oxide semiconductor (MOS) technologies. Covers both theory and real-world applications of basic amplifier structures, operational amplifiers, temperature sensors, bandgap references. Covers topics such as noise, linearity and stability. Homework and labs give students access to CAD/EDA tools to design and analyze analog circuits. Provides practical experience through lab exercises, including a broadband amplifier design and characterization. Students taking graduate version complete additional assignments.

6.22206.131
6.2220 Power Electronics Laboratory

()
Prereqs: 6.2000 or 6.3100
Units: 3-6-3

Introduces the design and construction of power electronic circuits and motor drives. Laboratory exercises 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 include DC, induction, and permanent magnet motors, with drive considerations. Provides instruction in written and oral communication. Students taking independent inquiry version 6.2221 expand the scope of their laboratory project.


6.22216.1311
6.2221 Power Electronics Laboratory - Independent Inquiry

()
Prereqs: 6.2000 or 6.3000
Units: 3-9-3

Introduces the design and construction of power electronic circuits and motor drives. Laboratory exercises 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 include DC, induction, and permanent magnet motors, with drive considerations. Provides instruction in written and oral communication. To satisfy the independent inquiry component of this subject, students expand the scope of their laboratory project.


6.23006.013
6.2300 Electromagnetics Waves and Applications

()
Prereqs: GIR:CAL2 and GIR:PHY2
Units: 3-5-4

Analysis and design of modern applications that employ electromagnetic phenomena for signals and power transmission in RF, microwaves, optical and wireless communication systems. Fundamentals include dynamic solutions for Maxwell's equations; electromagnetic power and energy, waves in media, metallic and dielectric waveguides, radiation, and diffraction; resonance; filters; and acoustic analogs. Lab activities range from building to testing of devices and systems (e.g., antenna arrays, radars, dielectric waveguides). Students work in teams on self-proposed maker-style design projects with a focus on fostering creativity, teamwork, and debugging skills. 6.2000 and 6.3000 are recommended but not required.


6.25006.012
6.2500 Nanoelectronics and Computing Systems

()
Prereqs: 6.2000
Units: 4-0-8

Studies interaction between materials, semiconductor physics, electronic devices, and computing systems. Develops intuition of how transistors operate. Topics range from introductory semiconductor physics to modern state-of-the-art nano-scale devices. Considers how innovations in devices have driven historical progress in computing, and explores ideas for further improvements in devices and computing. Students apply material to understand how building improved computing systems requires knowledge of devices, and how making the correct device requires knowledge of computing systems. Includes a design project for practical application of concepts, and labs for experience building silicon transistors and devices.

[EE] Electromagnetics and Photonic Systems
6.22106.014
6.2210 Electromagnetic Fields, Forces and Motion

()
Prereqs: GIR:PHY2 and 18.03
Units: 4-0-8

Study of electromagnetics and electromagnetic energy conversion leading to an understanding of devices, including electromagnetic sensors, actuators, motors and generators. Quasistatic Maxwell's equations and the Lorentz force law. Studies of the quasistatic fields and their sources through solutions of Poisson's and Laplace's equations. Boundary conditions and multi-region boundary-value problems. Steady-state conduction, polarization, and magnetization. Charge conservation and relaxation, and magnetic induction and diffusion. Extension to moving materials. Electric and magnetic forces and force densities derived from energy, and stress tensors. Extensive use of engineering examples. Students taking graduate version complete additional assignments.


6.23006.013
6.2300 Electromagnetics Waves and Applications

()
Prereqs: GIR:CAL2 and GIR:PHY2
Units: 3-5-4

Analysis and design of modern applications that employ electromagnetic phenomena for signals and power transmission in RF, microwaves, optical and wireless communication systems. Fundamentals include dynamic solutions for Maxwell's equations; electromagnetic power and energy, waves in media, metallic and dielectric waveguides, radiation, and diffraction; resonance; filters; and acoustic analogs. Lab activities range from building to testing of devices and systems (e.g., antenna arrays, radars, dielectric waveguides). Students work in teams on self-proposed maker-style design projects with a focus on fostering creativity, teamwork, and debugging skills. 6.2000 and 6.3000 are recommended but not required.


6.23706.161
6.2370 Modern Optics Project Laboratory

()
Prereqs: 6.3000
Units: 3-5-4

Lectures, laboratory exercises and projects on optical signal generation, transmission, detection, storage, processing and display. Topics include polarization properties of light; reflection and refraction; coherence and interference; Fraunhofer and Fresnel diffraction; holography; Fourier optics; coherent and incoherent imaging and signal processing systems; optical properties of materials; lasers and LEDs; electro-optic and acousto-optic light modulators; photorefractive and liquid-crystal light modulation; display technologies; optical waveguides and fiber-optic communication systems; photodetectors. Students may use this subject to find an advanced undergraduate project. Students engage in extensive oral and written communication exercises. Recommended prerequisite: 8.03.

6.63316.602
6.6331 Fundamentals of Photonics

()
Prereqs: 2.71, 6.2300, or 8.07
Units: 3-0-9

Covers the fundamentals of optics and the interaction of light and matter, leading to devices such as light emitting diodes, optical amplifiers, and lasers. Topics include classical ray, wave, beam, and Fourier optics; Maxwell's electromagnetic waves; resonators; quantum theory of photons; light-matter interaction; laser amplification; lasers; and semiconductors optoelectronics. Students taking graduate version complete additional assignments.


6.S046
6.S046 Silicon Photonics

()
Prereqs: 6.2300 or 8.07
Units: 3-0-9

[Meets with 6.S976] Covers the foundational concepts behind silicon photonics based in electromagnetics, optics, and device physics; the design of silicon-photonics-based devices (including waveguides, couplers, splitters, resonators, antennas, modulators, detectors, and lasers) using both theoretical analysis and numerical simulation tools; the engineering of silicon-photonics-based circuits and systems with a focus on a variety of applications areas (spanning computing, communications, sensing, quantum, displays, and biophotonics); the development of silicon-photonics-based platforms, including fabrication and materials considerations; and the characterization of these silicon-photonics-based devices and systems through hands-on laboratory demonstrations and projects. Students taking graduate version complete additional assignments.


6.S976
6.S976 Silicon Photonics

()
Prereqs: 6.2300 or 8.07
Units: 3-0-9

[Meets with 6.S046] Covers the foundational concepts behind silicon photonics based in electromagnetics, optics, and device physics; the design of silicon-photonics-based devices (including waveguides, couplers, splitters, resonators, antennas, modulators, detectors, and lasers) using both theoretical analysis and numerical simulation tools; the engineering of silicon-photonics-based circuits and systems with a focus on a variety of applications areas (spanning computing, communications, sensing, quantum, displays, and biophotonics); the development of silicon-photonics-based platforms, including fabrication and materials considerations; and the characterization of these silicon-photonics-based devices and systems through hands-on laboratory demonstrations and projects. Students taking graduate version complete additional assignments.

[EE] Embedded Systems
6.18206.808
6.1820 Mobile and Sensor Computing

()
Prereqs: 6.1800 or permission of instructor
Units: 3-0-9

Focuses on "Internet of Things" (IoT) systems and technologies, sensing, computing, and communication. Explores fundamental design and implementation issues in the engineering of mobile and sensor computing systems. Topics include battery-free sensors, seeing through wall, robotic sensors, vital sign sensors (breathing, heartbeats, emotions), sensing in cars and autonomous vehicles, subsea IoT, sensor security, positioning technologies (including GPS and indoor WiFi), inertial sensing (accelerometers, gyroscopes, inertial measurement units, dead-reckoning), embedded and distributed system architectures, sensing with radio signals, sensing with microphones and cameras, wireless sensor networks, embedded and distributed system architectures, mobile libraries and APIs to sensors, and application case studies. Includes readings from research literature, as well as laboratory assignments and a significant term project.


6.20506.111
6.2050 Digital Systems Laboratory

()
Prereqs: 6.1910 or permission of instructor
Units: 3-7-2

Lab-intensive subject that investigates digital systems with a focus on FPGAs. Lectures and labs cover logic, flip flops, counters, timing, synchronization, finite-state machines, digital signal processing, communication protocols, and modern sensors. Prepares students for the design and implementation of a large-scale final project of their choice: games, music, digital filters, wireless communications, video, or graphics. Extensive use of System/Verilog for describing and implementing and verifying digital logic designs.


6.20606.115
6.2060 Microcomputer Project Laboratory

()
Prereqs: 6.1910, 6.2000, or 6.3000
Units: 3-6-3

Introduces analysis and design of embedded systems. Microcontrollers provide adaptation, flexibility, and real-time control. Emphasizes construction of complete systems, including a five-axis robot arm, a fluorescent lamp ballast, a tomographic imaging station (e.g., a CAT scan), and a simple calculator. Presents a wide range of basic tools, including software and development tools, programmable system on chip, peripheral components such as A/D converters, communication schemes, signal processing techniques, closed-loop digital feedback control, interface and power electronics, and modeling of electromechanical systems. Includes a sequence of assigned projects, followed by a final project of the student's choice, emphasizing creativity and uniqueness. Provides instruction in written and oral communication. To satisfy the independent inquiry component of this subject, students expand the scope of their laboratory project.


6.45106.810
6.4510 Engineering Interactive Technologies

()
Prereqs: 6.1020, 6.2050, 6.2060, 6.9010, or permission of instructor
Units: 1-5-6

Provides instruction in building cutting-edge interactive technologies, explains the underlying engineering concepts, and shows how those technologies evolved over time. Students use a studio format (i.e., extended periods of time) for constructing software and hardware prototypes. Topics include interactive technologies, such as multi-touch, augmented reality, haptics, wearables, and shape-changing interfaces. In a group project, students build their own interactive hardware/software prototypes and present them in a live demo at the end of term. Enrollment may be limited.

[EE] Energy Systems
6.22006.061
6.2200 Electric Energy Systems

()
Prereqs: 6.2000
Units: 4-0-8

Analysis and design of modern energy conversion and delivery systems. Develops a solid foundation in electromagnetic phenomena with a focus on electrical energy distribution, electro-mechanical energy conversion (motors and generators), and electrical-to-electrical energy conversion (DC-DC, DC-AC power conversion). Students apply the material covered to consider critical challenges associated with global energy systems, with particular examples related to the electrification of transport and decarbonization of the grid.

and one of:
6.22106.014
6.2210 Electromagnetic Fields, Forces and Motion

()
Prereqs: GIR:PHY2 and 18.03
Units: 4-0-8

Study of electromagnetics and electromagnetic energy conversion leading to an understanding of devices, including electromagnetic sensors, actuators, motors and generators. Quasistatic Maxwell's equations and the Lorentz force law. Studies of the quasistatic fields and their sources through solutions of Poisson's and Laplace's equations. Boundary conditions and multi-region boundary-value problems. Steady-state conduction, polarization, and magnetization. Charge conservation and relaxation, and magnetic induction and diffusion. Extension to moving materials. Electric and magnetic forces and force densities derived from energy, and stress tensors. Extensive use of engineering examples. Students taking graduate version complete additional assignments.


6.22206.131
6.2220 Power Electronics Laboratory

()
Prereqs: 6.2000 or 6.3100
Units: 3-6-3

Introduces the design and construction of power electronic circuits and motor drives. Laboratory exercises 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 include DC, induction, and permanent magnet motors, with drive considerations. Provides instruction in written and oral communication. Students taking independent inquiry version 6.2221 expand the scope of their laboratory project.


6.22216.1311
6.2221 Power Electronics Laboratory - Independent Inquiry

()
Prereqs: 6.2000 or 6.3000
Units: 3-9-3

Introduces the design and construction of power electronic circuits and motor drives. Laboratory exercises 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 include DC, induction, and permanent magnet motors, with drive considerations. Provides instruction in written and oral communication. To satisfy the independent inquiry component of this subject, students expand the scope of their laboratory project.


6.71206.247
6.7120 Principles of Modeling, Computing and Control for Decarbonized Electric Energy Systems

()
Prereqs: 6.2200, (6.2000 and 6.3100), or permission of instructor
Units: 4-0-8

Introduces fundamentals of electric energy systems as complex dynamical network systems. Topics include coordinated and distributed modeling and control methods for efficient and reliable power generation, delivery, and consumption; data-enabled algorithms for integrating clean intermittent resources, storage, and flexible demand, including electric vehicles; examples of network congestion management, frequency, and voltage control in electrical grids at various scales; and design and operation of supporting markets. Students taking graduate version complete additional assignments.

[EE] Hardware Design
6.19206.175
6.1920 Constructive Computer Architecture

()
Prereqs: 6.1910
Units: 3-8-1

Illustrates a constructive (as opposed to a descriptive) approach to computer architecture. Topics include combinational and pipelined arithmetic-logic units (ALU), in-order pipelined microarchitectures, branch prediction, blocking and unblocking caches, interrupts, virtual memory support, cache coherence and multicore architectures. Labs in a modern Hardware Design Language (HDL) illustrate various aspects of microprocessor design, culminating in a term project in which students present a multicore design running on an FPGA board.


6.20506.111
6.2050 Digital Systems Laboratory

()
Prereqs: 6.1910 or permission of instructor
Units: 3-7-2

Lab-intensive subject that investigates digital systems with a focus on FPGAs. Lectures and labs cover logic, flip flops, counters, timing, synchronization, finite-state machines, digital signal processing, communication protocols, and modern sensors. Prepares students for the design and implementation of a large-scale final project of their choice: games, music, digital filters, wireless communications, video, or graphics. Extensive use of System/Verilog for describing and implementing and verifying digital logic designs.


6.20606.115
6.2060 Microcomputer Project Laboratory

()
Prereqs: 6.1910, 6.2000, or 6.3000
Units: 3-6-3

Introduces analysis and design of embedded systems. Microcontrollers provide adaptation, flexibility, and real-time control. Emphasizes construction of complete systems, including a five-axis robot arm, a fluorescent lamp ballast, a tomographic imaging station (e.g., a CAT scan), and a simple calculator. Presents a wide range of basic tools, including software and development tools, programmable system on chip, peripheral components such as A/D converters, communication schemes, signal processing techniques, closed-loop digital feedback control, interface and power electronics, and modeling of electromechanical systems. Includes a sequence of assigned projects, followed by a final project of the student's choice, emphasizing creativity and uniqueness. Provides instruction in written and oral communication. To satisfy the independent inquiry component of this subject, students expand the scope of their laboratory project.


6.60106.374
6.6010 Analysis and Design of Digital Integrated Circuits

()
Prereqs: 6.1910 and (6.2080 or 6.2500)
Units: 3-3-6

Device and circuit level optimization of digital building blocks. Circuit design styles for logic, arithmetic, and sequential blocks. Estimation and minimization of energy consumption. Interconnect models and parasitics, device sizing and logical effort, timing issues (clock skew and jitter), and active clock distribution techniques. Memory architectures, circuits (sense amplifiers), and devices. Evaluation of how design choices affect tradeoffs across key metrics including energy consumption, speed, robustness, and cost. Extensive use of modern design flow and EDA/CAD tools for the analysis and design of digital building blocks and digital VLSI design for labs and design projects

[EE] Hardware and Software
6.18006.033
6.1800 Computer Systems Engineering

()
Prereqs: 6.1910
Units: 5-1-6

Topics on the engineering of computer software and hardware systems: techniques for controlling complexity; strong modularity using client-server design, operating systems; performance, networks; naming; security and privacy; fault-tolerant systems, atomicity and coordination of concurrent activities, and recovery; impact of computer systems on society. Case studies of working systems and readings from the current literature provide comparisons and contrasts. Includes a single, semester-long design project. Students engage in extensive written communication exercises. Enrollment may be limited.

and one of:
18.404
18.404 Theory of Computation

()
Prereqs: 6.1200 or 18.200
Units: 4-0-8

A more extensive and theoretical treatment of the material in 6.1400J/18.400J, emphasizing computability and computational complexity theory. Regular and context-free languages. Decidable and undecidable problems, reducibility, recursive function theory. Time and space measures on computation, completeness, hierarchy theorems, inherently complex problems, oracles, probabilistic computation, and interactive proof systems.


6.10406.170
6.1040 Software Design

()
Prereqs: 6.1020 and 6.1200
Units: 4-0-14

Provides design-focused instruction on how to build complex software applications. Design topics include classic human-computer interaction (HCI) design tactics (need finding, heuristic evaluation, prototyping, user testing), conceptual design (inventing, modeling and evaluating constituent concepts), social and ethical implications, abstract data modeling, and visual design. Implementation topics include reactive front-ends, web services, and databases. Students work both on individual projects and a larger team project in which they design and build full-stack web applications.


6.10606.172
6.1060 Software Performance Engineering

()
Prereqs: 6.1020, 6.1210, and 6.1910
Units: 3-12-3

Project-based introduction to building efficient, high-performance and scalable software systems. Topics include performance analysis, algorithmic techniques for high performance, instruction-level optimizations, vectorization, cache and memory hierarchy optimization, and parallel programming.


6.11006.035
6.1100 Computer Language Engineering

()
Prereqs: 6.1020 and 6.1910
Units: 4-4-4

Analyzes issues associated with the implementation of higher-level programming languages. Fundamental concepts, functions, and structures of compilers. The interaction of theory and practice. Using tools in building software. Includes a multi-person project on compiler design and implementation.


6.11206.818
6.1120 Dynamic Computer Language Engineering

()
Prereqs: 6.1020 or 6.1910
Units: 4-4-4

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. Includes a semester-long, group project that delivers a virtual machine that spans all of these topics.


6.12206.046
6.1220 Design and Analysis of Algorithms

(,)
Prereqs: 6.1200 and 6.1210
Units: 4-0-8

Techniques for the design and analysis of efficient algorithms, emphasizing methods useful in practice. Topics include sorting; search trees, heaps, and hashing; divide-and-conquer; dynamic programming; greedy algorithms; amortized analysis; graph algorithms; and shortest paths. Advanced topics may include network flow; computational geometry; number-theoretic algorithms; polynomial and matrix calculations; caching; and parallel computing.


6.14006.045
6.1400 Computability and Complexity Theory

()
Prereqs: (6.1200 and 6.1210) or permission of instructor
Units: 4-0-8

Mathematical introduction to the theory of computing. Rigorously explores what kinds of tasks can be efficiently solved with computers by way of finite automata, circuits, Turing machines, and communication complexity, introducing students to some major open problems in mathematics. Builds skills in classifying computational tasks in terms of their difficulty. Discusses other fundamental issues in computing, including the Halting Problem, the Church-Turing Thesis, the P versus NP problem, and the power of randomness.  


6.14206.054
6.1420 Fixed Parameter and Fine-grained Computation

()
Prereqs: 6.1200, 6.1210, and (6.1220, 6.1400, or 18.404)
Units: 3-0-9

An overview of the theory of parameterized algorithms and the "problem-centric" theory of fine-grained complexity, both of which reconsider how to measure the difficulty and feasibility of solving computational problems. Topics include: fixed-parameter tractability (FPT) and its characterizations, the W-hierarchy (W[1], W[2], W[P], etc.), 3-sum-hardness, all-pairs shortest paths (APSP)-equivalences, strong exponential time hypothesis (SETH) hardness of problems, and the connections to circuit complexity and other aspects of computing.


6.16006.053
6.1600 Foundations of Computer Security

()
Prereqs: 6.1210 and 6.1800
Units: 4-0-8

Fundamental notions and big ideas for achieving security in computer systems. Topics include cryptographic foundations (pseudorandomness, collision-resistant hash functions, authentication codes, signatures, authenticated encryption, public-key encryption), systems ideas (isolation, non-interference, authentication, access control, delegation, trust), and implementation techniques (privilege separation, fuzzing, symbolic execution, runtime defenses, side-channel attacks). Case studies of how these ideas are realized in deployed systems. Lab assignments apply ideas from lectures to learn how to build secure systems and how they can be attacked.


6.18106.039
6.1810 Operating System Engineering

()
Prereqs: 6.1910
Units: 3-0-9

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, xv6, is used to illustrate these topics. Individual laboratory assignments involve extending the xv6 operating system, for example to support sophisticated virtual memory features and networking.


6.18206.808
6.1820 Mobile and Sensor Computing

()
Prereqs: 6.1800 or permission of instructor
Units: 3-0-9

Focuses on "Internet of Things" (IoT) systems and technologies, sensing, computing, and communication. Explores fundamental design and implementation issues in the engineering of mobile and sensor computing systems. Topics include battery-free sensors, seeing through wall, robotic sensors, vital sign sensors (breathing, heartbeats, emotions), sensing in cars and autonomous vehicles, subsea IoT, sensor security, positioning technologies (including GPS and indoor WiFi), inertial sensing (accelerometers, gyroscopes, inertial measurement units, dead-reckoning), embedded and distributed system architectures, sensing with radio signals, sensing with microphones and cameras, wireless sensor networks, embedded and distributed system architectures, mobile libraries and APIs to sensors, and application case studies. Includes readings from research literature, as well as laboratory assignments and a significant term project.


6.18506.052
6.1850 Computer Systems and Society

()
Prereqs: 6.1800
Units: 3-0-9

Explores the impact of computer systems on individual humans, society, and the environment. Examines large- and small-scale power structures that stem from low-level technical design decisions, the consequences of those structures on society, and how they can limit or provide access to certain technologies. Students learn to assess 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 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; and the environmental impact of proof-of-work-based systems such as Bitcoin. Enrollment may be limited.


6.45106.810
6.4510 Engineering Interactive Technologies

()
Prereqs: 6.1020, 6.2050, 6.2060, 6.9010, or permission of instructor
Units: 1-5-6

Provides instruction in building cutting-edge interactive technologies, explains the underlying engineering concepts, and shows how those technologies evolved over time. Students use a studio format (i.e., extended periods of time) for constructing software and hardware prototypes. Topics include interactive technologies, such as multi-touch, augmented reality, haptics, wearables, and shape-changing interfaces. In a group project, students build their own interactive hardware/software prototypes and present them in a live demo at the end of term. Enrollment may be limited.

6.45306.811
6.4530 Principles and Practice of Assistive Technology

()
Prereqs: Permission of instructor
Units: 2-4-6

Students work closely with people with disabilities to develop assistive and adaptive technologies that help them live more independently. Covers design methods and problem-solving strategies; human factors; human-machine interfaces; community perspectives; social and ethical aspects; and assistive technology for motor, cognitive, perceptual, and age-related impairments. Prior knowledge of one or more of the following areas useful: software; electronics; human-computer interaction; cognitive science; mechanical engineering; control; or MIT hobby shop, MIT PSC, or other relevant independent project experience. Enrollment may be limited.


6.45506.185
6.4550 Interactive Music Systems

(,)
Prereqs: (6.1010 and 21M.301) or permission of instructor
Units: 3-0-9

Explores audio synthesis, musical structure, human computer interaction (HCI), and visual presentation for the creation of interactive musical experiences. Topics include audio synthesis; mixing and looping; MIDI sequencing; generative composition; motion sensors; music games; and graphics for UI, visualization, and aesthetics. Includes weekly programming assignments in python. Teams build an original, dynamic, and engaging interactive music system for their final project. Students taking graduate version complete different assignments. Limited to 36.


6.45906.805
6.4590 Foundations of Information Policy

()
Prereqs: Permission of instructor
Units: 3-0-9

Studies the growth of computer and communications technology and the new legal and ethical challenges that reflect tensions between individual rights and societal needs. Topics include computer crime; intellectual property restrictions on software; encryption, privacy, and national security; academic freedom and free speech. Students meet and question technologists, activists, law enforcement agents, journalists, and legal experts. Instruction and practice in oral and written communication provided. Students taking graduate version complete additional assignments. Enrollment limited.


6.50606.827
6.5060 Algorithm Engineering

()
Prereqs: 6.1060 and 6.1220
Units: 3-0-9

Covers the theory and practice of algorithms and data structures. Topics include models of computation, algorithm design and analysis, and performance engineering of algorithm implementations. Presents the design and implementation of sequential, parallel, cache-efficient, and external-memory algorithms. Illustrates many of the principles of algorithm engineering in the context of parallel algorithms and graph problems.


6.50806.836
6.5080 Multicore Programming

()
Prereqs: 6.1210
Units: 4-0-8

Introduces principles and core techniques for programming multicore machines. Topics include locking, scalability, concurrent data structures, multiprocessor scheduling, load balancing, and state-of-the-art synchronization techniques, such as transactional memory. Includes sequence of programming assignments on a large multicore machine, culminating with the design of a highly concurrent application. Students taking graduate version complete additional assignments.


6.50816.816
6.5081 Multicore Programming

()
Prereqs: 6.1210
Units: 4-0-8

Introduces principles and core techniques for programming multicore machines. Topics include locking, scalability, concurrent data structures, multiprocessor scheduling, load balancing, and state-of-the-art synchronization techniques, such as transactional memory. Includes sequence of programming assignments on a large multicore machine, culminating with the design of a highly concurrent application. Students taking graduate version complete additional assignments.


6.51106.820
6.5110 Foundations of Program Analysis

()
Prereqs: 6.1100
Units: 3-0-9

Presents major principles and techniques for program analysis. Includes formal semantics, type systems and type-based program analysis, abstract interpretation and model checking and synthesis. Emphasis on Haskell and Ocaml, but no prior experience in these languages is assumed. Student assignments include implementing of techniques covered in class, including building simple verifiers.


6.51206.822
6.5120 Formal Reasoning About Programs

()
Prereqs: 6.1020 and 6.1200
Units: 3-0-9

Surveys techniques for rigorous mathematical reasoning about correctness of software, emphasizing commonalities across approaches. Introduces interactive computer theorem proving with the Coq proof assistant, which is used for all assignments, providing immediate feedback on soundness of logical arguments. Covers common program-proof techniques, including operational semantics, model checking, abstract interpretation, type systems, program logics, and their applications to functional, imperative, and concurrent programs. Develops a common conceptual framework based on invariants, abstraction, and modularity applied to state and labeled transition systems.


6.52106.854
6.5210 Advanced Algorithms

()
Prereqs: 6.1220 and (6.1200, 6.3700, or 18.600)
Units: 5-0-7

First-year graduate subject in algorithms. Emphasizes fundamental algorithms and advanced methods of algorithmic design, analysis, and implementation. Surveys a variety of computational models and the algorithms for them. Data structures, network flows, linear programming, computational geometry, approximation algorithms, online algorithms, parallel algorithms, external memory, streaming algorithms.


6.52206.856
6.5220 Randomized Algorithms

()
Prereqs: (6.1200 or 6.3700) and (6.1220 or 6.5210)
Units: 5-0-7

Studies how randomization can be used to make algorithms simpler and more efficient via random sampling, random selection of witnesses, symmetry breaking, and Markov chains. Models of randomized computation. Data structures: hash tables, and skip lists. Graph algorithms: minimum spanning trees, shortest paths, and minimum cuts. Geometric algorithms: convex hulls, linear programming in fixed or arbitrary dimension. Approximate counting; parallel algorithms; online algorithms; derandomization techniques; and tools for probabilistic analysis of algorithms.


6.52306.851
6.5230 Advanced Data Structures

()
Prereqs: 6.1220
Units: 3-0-9

More advanced and powerful data structures for answering several queries on the same data. Such structures are crucial in particular for designing efficient algorithms. Dictionaries; hashing; search trees. Self-adjusting data structures; linear search; splay trees; dynamic optimality. Integer data structures; word RAM. Predecessor problem; van Emde Boas priority queues; y-fast trees; fusion trees. Lower bounds; cell-probe model; round elimination. Dynamic graphs; link-cut trees; dynamic connectivity. Strings; text indexing; suffix arrays; suffix trees. Static data structures; compact arrays; rank and select. Succinct data structures; tree encodings; implicit data structures. External-memory and cache-oblivious data structures; B-trees; buffer trees; tree layout; ordered-file maintenance. Temporal data structures; persistence; retroactivity.


6.52506.852
6.5250 Distributed Algorithms

()
Prereqs: 6.1220
Units: 3-0-9

Design and analysis of concurrent algorithms, emphasizing those suitable for use in distributed networks. Process synchronization, allocation of computational resources, distributed consensus, distributed graph algorithms, election of a leader in a network, distributed termination, deadlock detection, concurrency control, communication, and clock synchronization. Special consideration given to issues of efficiency and fault tolerance. Formal models and proof methods for distributed computation.


6.53106.849
6.5310 Geometric Folding Algorithms: Linkages, Origami, Polyhedra

()
Prereqs: 6.1220 or permission of instructor
Units: 3-0-9

Covers discrete geometry and algorithms underlying the reconfiguration of foldable structures, with applications to robotics, manufacturing, and biology. Linkages made from one-dimensional rods connected by hinges: constructing polynomial curves, characterizing rigidity, characterizing unfoldable versus locked, protein folding. Folding two-dimensional paper (origami): characterizing flat foldability, algorithmic origami design, one-cut magic trick. Unfolding and folding three-dimensional polyhedra: edge unfolding, vertex unfolding, gluings, Alexandrov's Theorem, hinged dissections.

6.53206.850
6.5320 Geometric Computing

()
Prereqs: 6.1220
Units: 3-0-9

Introduction to the design and analysis of algorithms for geometric problems, in low- and high-dimensional spaces. Algorithms: convex hulls, polygon triangulation, Delaunay triangulation, motion planning, pattern matching. Geometric data structures: point location, Voronoi diagrams, Binary Space Partitions. Geometric problems in higher dimensions: linear programming, closest pair problems. High-dimensional nearest neighbor search and low-distortion embeddings between metric spaces. Geometric algorithms for massive data sets: external memory and streaming algorithms. Geometric optimization.


6.53406.853
6.5340 Topics in Algorithmic Game Theory

()
Prereqs: 6.1210 or 6.1220
Units: 3-0-9

Presents research topics at the interface of computer science and game theory, with an emphasis on algorithms and computational complexity. Explores the types of game-theoretic tools that are applicable to computer systems, the loss in system performance due to the conflicts of interest of users and administrators, and the design of systems whose performance is robust with respect to conflicts of interest inside the system. Algorithmic focus is on algorithms for equilibria, the complexity of equilibria and fixed points, algorithmic tools in mechanism design, learning in games, and the price of anarchy.


6.53506.847
6.5350 Matrix Multiplication and Graph Algorithms

()
Prereqs: 6.1220
Units: 3-0-9

Explores topics around matrix multiplication (MM) and its use in the design of graph algorithms. Focuses on problems such as transitive closure, shortest paths, graph matching, and other classical graph problems. Explores fast approximation algorithms when MM techniques are too expensive.


6.54006.840
6.5400 Theory of Computation

()
Prereqs: 6.1200 or 18.200
Units: 4-0-8

A more extensive and theoretical treatment of the material in 6.1400J/18.400J, emphasizing computability and computational complexity theory. Regular and context-free languages. Decidable and undecidable problems, reducibility, recursive function theory. Time and space measures on computation, completeness, hierarchy theorems, inherently complex problems, oracles, probabilistic computation, and interactive proof systems. Students in Course 18 must register for the undergraduate version, 18.404.


6.54106.841
6.5410 Advanced Complexity Theory

()
Prereqs: 18.404
Units: 3-0-9

Current research topics in computational complexity theory. Nondeterministic, alternating, probabilistic, and parallel computation models. Boolean circuits. Complexity classes and complete sets. The polynomial-time hierarchy. Interactive proof systems. Relativization. Definitions of randomness. Pseudo-randomness and derandomizations. Interactive proof systems and probabilistically checkable proofs.


6.54206.842
6.5420 Randomness and Computation

()
Prereqs: 6.1220 and 18.4041
Units: 3-0-9

The power and sources of randomness in computation. Connections and applications to computational complexity, computational learning theory, cryptography and combinatorics. Topics include: probabilistic proofs, uniform generation and approximate counting, Fourier analysis of Boolean functions, computational learning theory, expander graphs, pseudorandom generators, derandomization.


6.54306.845
6.5430 Quantum Complexity Theory

()
Prereqs: 6.1400, 18.4041, and 18.435
Units: 3-0-9

Introduction to quantum computational complexity theory, the study of the fundamental capabilities and limitations of quantum computers. Topics include complexity classes, lower bounds, communication complexity, proofs and advice, and interactive proof systems in the quantum world; classical simulation of quantum circuits. The objective is to bring students to the research frontier.


6.54906.890
6.56106.857
6.5610 Applied Cryptography and Security

()
Prereqs: 6.1200 and 6.1800
Units: 4-0-8

Emphasis on applied cryptography. May include: basic notion of systems security, cryptographic hash functions, symmetric cryptography (one-time pad, block ciphers, stream ciphers, message authentication codes), hash functions, key-exchange, public-key cryptography (encryption, digital signatures), elliptic curve cryptography,  secret-sharing, fully homomorphic encryption, zero-knowledge proofs, and electronic voting. Assignments include a final group project. Topics may vary year to year.


6.56206.875
6.5620 Cryptography and Cryptanalysis

()
Prereqs: 6.1220
Units: 3-0-9

A rigorous introduction to modern cryptography. Emphasis on the fundamental cryptographic primitives of public-key encryption, digital signatures, pseudo-random number generation, and basic protocols and their computational complexity requirements.


6.56306.876
6.5630 Advanced Topics in Cryptography

()
Prereqs: 6.5620
Units: 3-0-9

In-depth exploration of recent results in cryptography.


6.56606.858
6.5660 Computer Systems Security

()
Prereqs: 6.1020 and 6.1800
Units: 3-6-3

Design and implementation of secure computer systems. Lectures cover attacks that compromise security as well as techniques for achieving security, based on recent research papers. Topics include operating system security, privilege separation, capabilities, language-based security, cryptographic network protocols, trusted hardware, and security in web applications and mobile phones. Labs involve implementing and compromising a web application that sandboxes arbitrary code, and a group final project.


6.58106.828
6.5810 Operating System Engineering

()
Prereqs: 6.1020 and 6.1800
Units: 3-6-3

Fundamental design and implementation issues in the engineering of operating systems. Lectures based on the study of a symmetric multiprocessor version of UNIX version 6 and research papers. Topics include virtual memory; file system; threads; context switches; kernels; interrupts; system calls; interprocess communication; coordination, and interaction between software and hardware. Individual laboratory assignments accumulate in the construction of a minimal operating system (for an x86-based personal computer) that implements the basic operating system abstractions and a shell. Knowledge of programming in the C language is a prerequisite.

6.58206.829
6.5820 Computer Networks

()
Prereqs: 6.1800 or permission of instructor
Units: 4-0-8

Topics on the engineering and analysis of network protocols and architecture, including architectural principles for designing heterogeneous networks; transport protocols; Internet routing; router design; congestion control and network resource management; wireless networks; network security; naming; overlay and peer-to-peer networks. Readings from original research papers. Semester-long project and paper.


6.58306.830
6.5830 Database Systems

()
Prereqs: (6.1800 and (6.1210 or 6.1220)) or permission of instructor
Units: 3-0-9

Topics related to the engineering and design of database systems, including data models; database and schema design; schema normalization and integrity constraints; query processing; query optimization and cost estimation; transactions; recovery; concurrency control; isolation and consistency; distributed, parallel and heterogeneous databases; adaptive databases; trigger systems; pub-sub systems; semi structured data and XML querying. Lecture and readings from original research papers. Semester-long project and paper. Students taking graduate version complete different assignments. Enrollment may be limited.


6.58316.814
6.5831 Database Systems

()
Prereqs: (6.1800 and (6.1210 or 6.1220)) or permission of instructor
Units: 3-0-9

Topics related to the engineering and design of database systems, including data models; database and schema design; schema normalization and integrity constraints; query processing; query optimization and cost estimation; transactions; recovery; concurrency control; isolation and consistency; distributed, parallel and heterogeneous databases; adaptive databases; trigger systems; pub-sub systems; semi structured data and XML querying. Lecture and readings from original research papers. Semester-long project and paper. Students taking graduate version complete different assignments. Enrollment may be limited.


6.58406.824
6.5840 Distributed Computer Systems Engineering

()
Prereqs: 6.1800 and permission of instructor
Units: 3-0-9

Abstractions and implementation techniques for engineering distributed systems: remote procedure call, threads and locking, client/server, peer-to-peer, consistency, fault tolerance, and security. Readings from current literature. Individual laboratory assignments culminate in the construction of a fault-tolerant and scalable network file system. Programming experience with C/C++ required. Enrollment limited.


6.58506.826
6.5850 Principles of Computer Systems

()
Prereqs: Permission of instructor
Units: 3-0-9

Introduction to the basic principles of computer systems with emphasis on the use of rigorous techniques as an aid to understanding and building modern computing systems. Particular attention paid to concurrent and distributed systems. Topics include: specification and verification, concurrent algorithms, synchronization, naming, Networking, replication techniques (including distributed cache management), and principles and algorithms for achieving reliability.


6.85106.835
6.8510 Intelligent Multimodal User Interfaces

()
Prereqs: (6.1020 and 6.4100) or permission of instructor
Units: 3-0-9

Implementation and evaluation of intelligent multi-modal user interfaces, taught from a combination of hands-on exercises and papers from the original literature. Topics include basic technologies for handling speech, vision, pen-based interaction, and other modalities, as well as various techniques for combining modalities. Substantial readings and a term project, where students build a program that illustrates one or more of the themes of the course.


6.85306.859
6.8530 Interactive Data Visualization

()
Prereqs: 6.1020
Units: 3-0-9

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.C35
6.C35 Interactive Data Visualization and Society

()
Prereqs: none
Units: 3-1-8

Covers the design, ethical, and technical skills for creating effective visualizations. Short assignments build familiarity with the data analysis and visualization design process. Weekly lab sessions present coding and technical skills. A final project provides experience working with real-world big data, provided by external partners, in order to expose and communicate insights about societal issues. Students taking graduate version complete additional assignments. Enrollment limited. Enrollment limited.


6.C85
6.C85 Interactive Data Visualization and Society

()
Prereqs: none
Units: 3-1-8

Covers the design, ethical, and technical skills for creating effective visualizations. Short assignments build familiarity with the data analysis and visualization design process. Students participate in hour-long studio reading sessions. A final project provides experience working with real-world big data, provided by external partners, in order to expose and communicate insights about societal issues. Students taking graduate version complete additional assignments.


6.S041
6.S041 Algorithmic and Human Decision-Making

()
Prereqs: 6.3700 or 6.3800 or 18.05 or 18.600 or 14.300 or 14.32 and 6.3900 or 6.C01
Units: 3-0-9

Introduces students to problems at the intersection of algorithmic and human decision-making, focusing on problem domains such as criminal justice, the health care system, labor market, and others. Introduces the foundations in computer science, economics and psychology needed to integrate our behavioral understanding of people into machine learning. Topics include supervised learning, decision-making under uncertainty, behavioral economics, recommendation systems, and fairness/discrimination. Guest lectures by experts designing live algorithms in these domains, and culminates in student projects.


6.S079
6.S079 Software Systems for Data Science

()
Prereqs: (6.100A, 6.100B, and 6.1210) or permission of instructor
Units: 3-0-9

In this course we review the important role of semiconductor devices in patient monitoring and point of care. This includes technologies such as electrochemical, ultrasonic,magnetic, optical, and RF sensing modalities. We cover some of the basics of each device as well as physics and biology of device/human interaction.


6.S895
6.S895 Quantum Cryptography

()
Prereqs: 6.6410 or 6.6420 and 6.5620 or permission of instructors
Units: 3-0-9

An introduction to the many ways quantum computing and cryptography intersect. Topics will include uniquely quantum cryptographic primitives such as quantum key distribution and quantum money, post-quantum cryptography (classical cryptography that is secure against quantum attackers), and the use of cryptography in verifying quantum devices, as well as speculative connections to fundamental physics. Some familiarity with both quantum computing and cryptography is assumed.

[EE] Nanoelectronics
6.25006.012
6.2500 Nanoelectronics and Computing Systems

()
Prereqs: 6.2000
Units: 4-0-8

Studies interaction between materials, semiconductor physics, electronic devices, and computing systems. Develops intuition of how transistors operate. Topics range from introductory semiconductor physics to modern state-of-the-art nano-scale devices. Considers how innovations in devices have driven historical progress in computing, and explores ideas for further improvements in devices and computing. Students apply material to understand how building improved computing systems requires knowledge of devices, and how making the correct device requires knowledge of computing systems. Includes a design project for practical application of concepts, and labs for experience building silicon transistors and devices.

and one of:
6.25406.015
6.2540 Nanotechnology: From Atoms to Systems

()
Prereqs: GIR:PHY2
Units: 2-3-7

Introduces the fundamentals of applied quantum mechanics, materials science, and fabrication skills needed to design, engineer, and build emerging nanodevices with diverse applications in energy, memory, display, communications, and sensing. Focuses on the application and outlines the full progression from the fundamentals to the implemented device and functional technology. Closely integrates lectures with design-oriented laboratory modules. 


6.26006.152
6.2600 Micro/Nano Processing Technology

()
Prereqs: GIR:CAL2, GIR:CHEM, GIR:PHY2, or permission of instructor
Units: 3-4-5

Introduces the theory and technology of micro/nano fabrication. Includes lectures and laboratory sessions on processing techniques: wet and dry etching, chemical and physical deposition, lithography, thermal processes, packaging, and device and materials characterization. Homework uses process simulation tools to build intuition about higher order effects. Emphasizes interrelationships between material properties and processing, device structure, and the electrical, mechanical, optical, chemical or biological behavior of devices. Students fabricate solar cells, and a choice of MEMS cantilevers or microfluidic mixers. Students formulate their own device idea, either based on cantilevers or mixers, then implement and test their designs in the lab. Students engage in extensive written and oral communication exercises. Course provides background for research work related to micro/nano fabrication. Enrollment limited.

[EE] Quantum Systems Engineering
6.24006.051
6.2400 Introduction to Quantum Systems Engineering

()
Prereqs: 6.2300 and (18.06 or 18.C06)
Units: 4-2-6

Introduction to the quantum mechanics needed to engineer quantum systems for computation, communication, and sensing. Topics include: motivation for quantum engineering, qubits and quantum gates, rules of quantum mechanics, mathematical background, quantum electrical circuits and other physical quantum systems, harmonic and anharmonic oscillators, measurement, the Schrödinger equation, noise, entanglement, benchmarking, quantum communication, and quantum algorithms. No prior experience with quantum mechanics is assumed.


6.24106.157
6.2410 Quantum Engineering Platforms

()
Prereqs: 6.2400, 6.6400, 18.435, or (8.04 and 8.05)
Units: 1-5-6

Provides practical knowledge and quantum engineering experience with several physical platforms for quantum computation, communication, and sensing, including photonics, superconducting qubits, and trapped ions. Labs include both a hardware component — to gain experience with challenges, design, and non-idealities — and a cloud component to run algorithms on state of the art commercial systems. Use entangled photons to communicate securely (quantum key distribution). Run quantum algorithms on trapped ion and superconducting quantum computers. 


6.S895
6.S895 Quantum Cryptography

()
Prereqs: 6.6410 or 6.6420 and 6.5620 or permission of instructors
Units: 3-0-9

An introduction to the many ways quantum computing and cryptography intersect. Topics will include uniquely quantum cryptographic primitives such as quantum key distribution and quantum money, post-quantum cryptography (classical cryptography that is secure against quantum attackers), and the use of cryptography in verifying quantum devices, as well as speculative connections to fundamental physics. Some familiarity with both quantum computing and cryptography is assumed.

[EE] Systems Science
6.30006.003
6.3000 Signal Processing

(,)
Prereqs: 6.100A and 18.03
Units: 6-0-6

Fundamentals of signal processing, focusing on the use of Fourier methods to analyze and process signals such as sounds and images. Topics include Fourier series, Fourier transforms, the Discrete Fourier Transform, sampling, convolution, deconvolution, filtering, noise reduction, and compression. Applications draw broadly from areas of contemporary interest with emphasis on both analysis and design.


6.30106.011
6.3010 Signals, Systems and Inference

()
Prereqs: 6.3000 and (6.3700, 6.3800, or 18.05)
Units: 4-0-8

Covers signals, systems and inference in communication, control and signal processing. Topics include input-output and state-space models of linear systems driven by deterministic and random signals; time- and transform-domain representations in discrete and continuous time; and group delay. State feedback and observers. Probabilistic models; stochastic processes, correlation functions, power spectra, spectral factorization. Least-mean square error estimation; Wiener filtering. Hypothesis testing; detection; matched filters.


6.32606.207
6.3260 Networks

()
Prereqs: 6.3700 or 14.30
Units: 4-0-8

Highlights common principles that permeate the functioning of diverse technological, economic and social networks. Utilizes three sets of tools for analyzing networks -- random graph models, optimization, and game theory -- to study informational and learning cascades; economic and financial networks; social influence networks; formation of social groups; communication networks and the Internet; consensus and gossiping; spread and control of epidemics; control and use of energy networks; and biological networks. Students taking graduate version complete additional assignments.


6.37206.401
6.3720 Introduction to Statistical Data Analysis

()
Prereqs: 6.100A and (6.3700, 6.3800, or 18.600)
Units: 4-0-8

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.39006.036
6.3900 Introduction to Machine Learning

(,)
Prereqs: (6.1010 or 6.1210) and (18.06, 18.700, or 18.C06)
Units: 4-0-8

Introduces principles, algorithms, and applications of machine learning from the point of view of modeling and prediction; formulation of learning problems; representation, over-fitting, generalization; clustering, classification, probabilistic modeling; and methods such as support vector machines, hidden Markov models, and neural networks. Recommended prerequisites: 6.1210 and 18.06. Enrollment may be limited.


6.41106.038
6.4110 Representation, Inference, and Reasoning in AI

()
Prereqs: (16.09 and 16.410) or (6.1010, 6.1210, and (6.3700 or 6.3800))
Units: 3-0-9

An introduction to representations and algorithms for artificial intelligence. 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 including MDPs and POMDPs.


6.42006.141
6.4200 Robotics: Science and Systems

()
Prereqs: ((1.00 or 6.100A) and (2.003, 6.1010, 6.1210, or 16.06)) or permission of instructor
Units: 2-6-4

Presents concepts, principles, and algorithmic foundations for robots and autonomous vehicles operating in the physical world. Topics include sensing, kinematics and dynamics, state estimation, computer vision, perception, learning, control, motion planning, and embedded system development. Students design and implement advanced algorithms on complex robotic platforms capable of agile autonomous navigation and real-time interaction with the physical word. Students engage in extensive written and oral communication exercises. Enrollment limited.


6.42106.800
6.4210 Robotic Manipulation

()
Prereqs: (6.100A and 6.3900) or permission of instructor
Units: 4-2-9

Introduces the fundamental algorithmic approaches for creating robot systems that can autonomously manipulate physical objects in unstructured environments such as homes and restaurants. Topics include perception (including approaches based on deep learning and approaches based on 3D geometry), planning (robot kinematics and trajectory generation, collision-free motion planning, task-and-motion planning, and planning under uncertainty), as well as dynamics and control (both model-based and learning-based). Students taking graduate version complete additional assignments. Students engage in extensive written and oral communication exercises.

6.71206.247
6.7120 Principles of Modeling, Computing and Control for Decarbonized Electric Energy Systems

()
Prereqs: 6.2200, (6.2000 and 6.3100), or permission of instructor
Units: 4-0-8

Introduces fundamentals of electric energy systems as complex dynamical network systems. Topics include coordinated and distributed modeling and control methods for efficient and reliable power generation, delivery, and consumption; data-enabled algorithms for integrating clean intermittent resources, storage, and flexible demand, including electric vehicles; examples of network congestion management, frequency, and voltage control in electrical grids at various scales; and design and operation of supporting markets. Students taking graduate version complete additional assignments.


6.72016.215
6.7201 Optimization Methods

()
Prereqs: 18.06
Units: 4-0-8

Introduces the principal algorithms for linear, network, discrete, robust, nonlinear, and dynamic optimization. Emphasizes methodology and the underlying mathematical structures. Topics include the simplex method, network flow methods, branch and bound and cutting plane methods for discrete optimization, optimality conditions for nonlinear optimization, interior point methods for convex optimization, Newton's method, heuristic methods, and dynamic programming and optimal control methods. Expectations and evaluation criteria differ for students taking graduate version; consult syllabus or instructor for specific details.


6.83016.819
6.8301 Advances in Computer Vision

()
Prereqs: (6.1200 or 6.3700) and (18.06 or 18.C06)
Units: 4-0-11

Advanced topics in computer vision with a focus on the use of machine learning techniques and applications in graphics and human-computer interface. Covers image representations, texture models, structure-from-motion algorithms, Bayesian techniques, object and scene recognition, tracking, shape modeling, and image databases. Applications may include face recognition, multimodal interaction, interactive systems, cinematic special effects, and photorealistic rendering. Includes instruction and practice in written and oral communication. Students taking graduate version complete additional assignments.


6.C01
6.C01 Modeling with Machine Learning: from Algorithms to Applications

()
Prereqs/[Coreqs]: GIR:CAL2 and 6.100A; [1.C01, 2.C01, 3.C01, 7.C01, or 22.C01]
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. Students taking graduate version complete additional assignments. Students cannot receive credit without simultaneous completion of a 6-unit disciplinary module. Enrollment may be limited.

&6.S052
6.S052 Modeling with Machine Learning for Computer Science

()
Prereqs: 6.S084/18.061 or 18.06 or equivalent; 6.1200 or 6.3700, 6.100A or equivalent; Co-req 6.C01
Units: 3-0-3

[Meets with 6.S952] Focuses on in-depth modeling of engineering tasks as machine learning problems. Emphasizes framing, method design, and interpretation of results. In comparison to broader co-requisite 6.C01/6.C51, this project oriented subject consists of deep dives into select technical areas or engineering tasks involving both supervised and exploratory uses of machine learning. Deep dives into technical areas such robustness, interpretability, privacy or causal discovery; engineering tasks such as recommender systems, performance optimization, or automated design. This 6-unit subject must be taken together with the 6-unit core subject 6.C01. Enrollment may be limited.

6.C27
6.C27 Computational Imaging: Physics and Algorithms

()
Prereqs: 18.C06 and (1.00, 1.000, 2.086, 3.019, or 6.100A)
Units: 3-0-9

Explores the contemporary computational understanding of imaging: encoding information about a physical object onto a form of radiation, transferring the radiation through an imaging system, converting it to a digital signal, and computationally decoding and presenting the information to the user. Introduces a unified formulation of computational imaging systems as a three-round "learning spiral": the first two rounds describe the physical and algorithmic parts in two exemplary imaging systems. The third round involves a class project on an imaging system chosen by students. Undergraduate and graduate versions share lectures but have different recitations. Involves optional "clinics" to even out background knowledge of linear algebra, optimization, and computational imaging-related programming best practices for students of diverse disciplinary backgrounds. Students taking graduate version complete additional assignments.


6.C51
6.C51 Modeling with Machine Learning: from Algorithms to Applications

()
Prereqs/[Coreqs]: GIR:CAL2 and 6.100A; [1.C51, 2.C51, 3.C51, 7.C51, 22.C51, or SCM.C51]
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. Students cannot receive credit without simultaneous completion of a 6-unit disciplinary module. Enrollment may be limited.

&6.S952
6.S952 Modeling with Machine Learning for Computer Science

()
Prereqs: 6.S084/18.061 or 18.06 or equivalent; 6.1200 or 6.3700, 6.100A or equivalent; Co-req 6.C51
Units: 3-0-3

[Meets with 6.S052] Focuses on in-depth modeling of engineering tasks as machine learning problems. Emphasizes framing, method design, and interpretation of results. In comparison to broader co-requisite 6.C01/6.C51, this project oriented subject consists of deep dives into select technical areas or engineering tasks involving both supervised and exploratory uses of machine learning. Deep dives into technical areas such robustness, interpretability, privacy or causal discovery; engineering tasks such as recommender systems, performance optimization, or automated design. This 6-unit subject must be taken together with the 6-unit core subject 6.C01. Enrollment may be limited.


6.S059
6.S059 Causal Inference

()
Prereqs: 6.3800, 6.3900, 6.C01, 14.32, 17.803, 18.05, 18.650, or permission of instructor
Units: 4-0-8

[Meets with 15.C08, 17.C08] Provides an accessible overview of modern quantitative methods for causal inference: testing whether an action causes an outcome to occur. Makes heavy use of applied, real-data examples using Python or R and drawn from the participating domains (economics, political science, business, public policy, etc.). Covers topics including potential outcomes, causal graphs, randomized controlled trials, observational studies, instrumental variable estimation, and a contrast with machine learning techniques. Seeks to provide an intuitive understanding of the core concepts and techniques to help students produce and consume evidence of causal claims.


6.S953
6.S953 Embodied Intelligence

()
Prereqs: (6.3900 or 6.7900) and (6.1210 or 6.1220)
Units: 3-0-9

Our goal is to address the broad problem of designing a general-purpose intelligent robot. To address this question, a very broad background is required. We propose to spend the first 4 weeks covering important background topics: each week will combine a foundational tutorial reading with one or two state-of-the-art research results. In the subsequent weeks, we will address topics that cut across the basic disciplinary boundaries, typically combining two or more areas, with the work focused on studying and discussing current research in the relevant area.

Subject Lists


Central subject: 6-4 Subjects in one of the five Centers
6.12206.046
6.1220 Design and Analysis of Algorithms

(,)
Prereqs: 6.1200 and 6.1210
Units: 4-0-8

Techniques for the design and analysis of efficient algorithms, emphasizing methods useful in practice. Topics include sorting; search trees, heaps, and hashing; divide-and-conquer; dynamic programming; greedy algorithms; amortized analysis; graph algorithms; and shortest paths. Advanced topics may include network flow; computational geometry; number-theoretic algorithms; polynomial and matrix calculations; caching; and parallel computing.


6.30006.003
6.3000 Signal Processing

(,)
Prereqs: 6.100A and 18.03
Units: 6-0-6

Fundamentals of signal processing, focusing on the use of Fourier methods to analyze and process signals such as sounds and images. Topics include Fourier series, Fourier transforms, the Discrete Fourier Transform, sampling, convolution, deconvolution, filtering, noise reduction, and compression. Applications draw broadly from areas of contemporary interest with emphasis on both analysis and design.


6.31006.302
6.3100 Dynamical System Modeling and Control Design

(,)
Prereqs: GIR:PHY2 and (18.06 or 18.C06)
Units: 4-4-4

A learn-by-design introduction to modeling and control of discrete- and continuous-time systems, from intuition-building analytical techniques to more computational and data-centric strategies. Topics include: linear difference/differential equations (natural frequencies, transfer functions); controller metrics (stability, tracking, disturbance rejection); analytical techniques (PID, root-loci, lead-lag, phase margin); computational strategies (state-space, eigen-placement, LQR); and data-centric approaches (state estimation, regression, and identification). Concepts are introduced with lectures and online problems, and then mastered during weekly labs. In lab, students model, design, test, and explain systems and controllers involving sensors, actuators, and a microcontroller (e.g., optimizing thrust-driven positioners or stabilizing magnetic levitators). Students taking graduate version complete additional problems and labs.


6.32606.207
6.3260 Networks

()
Prereqs: 6.3700 or 14.30
Units: 4-0-8

Highlights common principles that permeate the functioning of diverse technological, economic and social networks. Utilizes three sets of tools for analyzing networks -- random graph models, optimization, and game theory -- to study informational and learning cascades; economic and financial networks; social influence networks; formation of social groups; communication networks and the Internet; consensus and gossiping; spread and control of epidemics; control and use of energy networks; and biological networks. Students taking graduate version complete additional assignments.


6.37206.401
6.3720 Introduction to Statistical Data Analysis

()
Prereqs: 6.100A and (6.3700, 6.3800, or 18.600)
Units: 4-0-8

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.39006.036
6.3900 Introduction to Machine Learning

(,)
Prereqs: (6.1010 or 6.1210) and (18.06, 18.700, or 18.C06)
Units: 4-0-8

Introduces principles, algorithms, and applications of machine learning from the point of view of modeling and prediction; formulation of learning problems; representation, over-fitting, generalization; clustering, classification, probabilistic modeling; and methods such as support vector machines, hidden Markov models, and neural networks. Recommended prerequisites: 6.1210 and 18.06. Enrollment may be limited.


6.39506.404
6.3950 AI, Decision Making, and Society

()
Prereqs/[Coreqs]: [6.1200, 6.3700, 6.3800, 18.05, or 18.600]
Units: 4-0-8

Introduction to fundamentals of modern data-driven decision-making frameworks, such as causal inference and hypothesis testing in statistics as well as supervised and reinforcement learning in machine learning. Explores how these frameworks are being applied in various societal contexts, including criminal justice, healthcare, finance, and social media. Emphasis on pinpointing the non-obvious interactions, undesirable feedback loops, and unintended consequences that arise in such settings. Enables students to develop their own principled perspective on the interface of data-driven decision making and society. Students taking graduate version complete additional assignments.


6.41106.038
6.4110 Representation, Inference, and Reasoning in AI

()
Prereqs: (16.09 and 16.410) or (6.1010, 6.1210, and (6.3700 or 6.3800))
Units: 3-0-9

An introduction to representations and algorithms for artificial intelligence. 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 including MDPs and POMDPs.


6.41206.804
6.4120 Computational Cognitive Science

()
Prereqs: 6.3700, 6.3800, 9.40, 18.05, 6.3900, or permission of instructor
Units: 3-0-9

Introduction to computational theories of human cognition. Focus on principles of inductive learning and inference, and the representation of knowledge. Computational frameworks covered include Bayesian and hierarchical Bayesian models; probabilistic graphical models; nonparametric statistical models and the Bayesian Occam's razor; sampling algorithms for approximate learning and inference; and probabilistic models defined over structured representations such as first-order logic, grammars, or relational schemas. Applications to understanding core aspects of cognition, such as concept learning and categorization, causal reasoning, theory formation, language acquisition, and social inference. Graduate students complete a final project.


6.44006.837
6.4400 Computer Graphics

()
Prereqs: 6.1010 and (18.06 or 18.C06)
Units: 3-0-9

Introduction to computer graphics algorithms, software and hardware. Topics include ray tracing, the graphics pipeline, transformations, texture mapping, shadows, sampling, global illumination, splines, animation and color.

6.45906.805
6.4590 Foundations of Information Policy

()
Prereqs: Permission of instructor
Units: 3-0-9

Studies the growth of computer and communications technology and the new legal and ethical challenges that reflect tensions between individual rights and societal needs. Topics include computer crime; intellectual property restrictions on software; encryption, privacy, and national security; academic freedom and free speech. Students meet and question technologists, activists, law enforcement agents, journalists, and legal experts. Instruction and practice in oral and written communication provided. Students taking graduate version complete additional assignments. Enrollment limited.


6.72016.215
6.7201 Optimization Methods

()
Prereqs: 18.06
Units: 4-0-8

Introduces the principal algorithms for linear, network, discrete, robust, nonlinear, and dynamic optimization. Emphasizes methodology and the underlying mathematical structures. Topics include the simplex method, network flow methods, branch and bound and cutting plane methods for discrete optimization, optimality conditions for nonlinear optimization, interior point methods for convex optimization, Newton's method, heuristic methods, and dynamic programming and optimal control methods. Expectations and evaluation criteria differ for students taking graduate version; consult syllabus or instructor for specific details.


6.C01
6.C01 Modeling with Machine Learning: from Algorithms to Applications

()
Prereqs/[Coreqs]: GIR:CAL2 and 6.100A; [1.C01, 2.C01, 3.C01, 7.C01, or 22.C01]
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. Students taking graduate version complete additional assignments. Students cannot receive credit without simultaneous completion of a 6-unit disciplinary module. Enrollment may be limited.

&6.S052
6.S052 Modeling with Machine Learning for Computer Science

()
Prereqs: 6.S084/18.061 or 18.06 or equivalent; 6.1200 or 6.3700, 6.100A or equivalent; Co-req 6.C01
Units: 3-0-3

[Meets with 6.S952] Focuses on in-depth modeling of engineering tasks as machine learning problems. Emphasizes framing, method design, and interpretation of results. In comparison to broader co-requisite 6.C01/6.C51, this project oriented subject consists of deep dives into select technical areas or engineering tasks involving both supervised and exploratory uses of machine learning. Deep dives into technical areas such robustness, interpretability, privacy or causal discovery; engineering tasks such as recommender systems, performance optimization, or automated design. This 6-unit subject must be taken together with the 6-unit core subject 6.C01. Enrollment may be limited.


6.C35
6.C35 Interactive Data Visualization and Society

()
Prereqs: none
Units: 3-1-8

Covers the design, ethical, and technical skills for creating effective visualizations. Short assignments build familiarity with the data analysis and visualization design process. Weekly lab sessions present coding and technical skills. A final project provides experience working with real-world big data, provided by external partners, in order to expose and communicate insights about societal issues. Students taking graduate version complete additional assignments. Enrollment limited. Enrollment limited.


6.C51
6.C51 Modeling with Machine Learning: from Algorithms to Applications

()
Prereqs/[Coreqs]: GIR:CAL2 and 6.100A; [1.C51, 2.C51, 3.C51, 7.C51, 22.C51, or SCM.C51]
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. Students cannot receive credit without simultaneous completion of a 6-unit disciplinary module. Enrollment may be limited.

&6.S952
6.S952 Modeling with Machine Learning for Computer Science

()
Prereqs: 6.S084/18.061 or 18.06 or equivalent; 6.1200 or 6.3700, 6.100A or equivalent; Co-req 6.C51
Units: 3-0-3

[Meets with 6.S052] Focuses on in-depth modeling of engineering tasks as machine learning problems. Emphasizes framing, method design, and interpretation of results. In comparison to broader co-requisite 6.C01/6.C51, this project oriented subject consists of deep dives into select technical areas or engineering tasks involving both supervised and exploratory uses of machine learning. Deep dives into technical areas such robustness, interpretability, privacy or causal discovery; engineering tasks such as recommender systems, performance optimization, or automated design. This 6-unit subject must be taken together with the 6-unit core subject 6.C01. Enrollment may be limited.

6.S041
6.S041 Algorithmic and Human Decision-Making

()
Prereqs: 6.3700 or 6.3800 or 18.05 or 18.600 or 14.300 or 14.32 and 6.3900 or 6.C01
Units: 3-0-9

Introduces students to problems at the intersection of algorithmic and human decision-making, focusing on problem domains such as criminal justice, the health care system, labor market, and others. Introduces the foundations in computer science, economics and psychology needed to integrate our behavioral understanding of people into machine learning. Topics include supervised learning, decision-making under uncertainty, behavioral economics, recommendation systems, and fairness/discrimination. Guest lectures by experts designing live algorithms in these domains, and culminates in student projects.


6.S059
6.S059 Causal Inference

()
Prereqs: 6.3800, 6.3900, 6.C01, 14.32, 17.803, 18.05, 18.650, or permission of instructor
Units: 4-0-8

[Meets with 15.C08, 17.C08] Provides an accessible overview of modern quantitative methods for causal inference: testing whether an action causes an outcome to occur. Makes heavy use of applied, real-data examples using Python or R and drawn from the participating domains (economics, political science, business, public policy, etc.). Covers topics including potential outcomes, causal graphs, randomized controlled trials, observational studies, instrumental variable estimation, and a contrast with machine learning techniques. Seeks to provide an intuitive understanding of the core concepts and techniques to help students produce and consume evidence of causal claims.


9.660

Data-centric: 6-4 Data-centric subjects
6.37206.401
6.3720 Introduction to Statistical Data Analysis

()
Prereqs: 6.100A and (6.3700, 6.3800, or 18.600)
Units: 4-0-8

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.39006.036
6.3900 Introduction to Machine Learning

(,)
Prereqs: (6.1010 or 6.1210) and (18.06, 18.700, or 18.C06)
Units: 4-0-8

Introduces principles, algorithms, and applications of machine learning from the point of view of modeling and prediction; formulation of learning problems; representation, over-fitting, generalization; clustering, classification, probabilistic modeling; and methods such as support vector machines, hidden Markov models, and neural networks. Recommended prerequisites: 6.1210 and 18.06. Enrollment may be limited.


6.C01
6.C01 Modeling with Machine Learning: from Algorithms to Applications

()
Prereqs/[Coreqs]: GIR:CAL2 and 6.100A; [1.C01, 2.C01, 3.C01, 7.C01, or 22.C01]
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. Students taking graduate version complete additional assignments. Students cannot receive credit without simultaneous completion of a 6-unit disciplinary module. Enrollment may be limited.

&6.S052
6.S052 Modeling with Machine Learning for Computer Science

()
Prereqs: 6.S084/18.061 or 18.06 or equivalent; 6.1200 or 6.3700, 6.100A or equivalent; Co-req 6.C01
Units: 3-0-3

[Meets with 6.S952] Focuses on in-depth modeling of engineering tasks as machine learning problems. Emphasizes framing, method design, and interpretation of results. In comparison to broader co-requisite 6.C01/6.C51, this project oriented subject consists of deep dives into select technical areas or engineering tasks involving both supervised and exploratory uses of machine learning. Deep dives into technical areas such robustness, interpretability, privacy or causal discovery; engineering tasks such as recommender systems, performance optimization, or automated design. This 6-unit subject must be taken together with the 6-unit core subject 6.C01. Enrollment may be limited.


6.C51
6.C51 Modeling with Machine Learning: from Algorithms to Applications

()
Prereqs/[Coreqs]: GIR:CAL2 and 6.100A; [1.C51, 2.C51, 3.C51, 7.C51, 22.C51, or SCM.C51]
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. Students cannot receive credit without simultaneous completion of a 6-unit disciplinary module. Enrollment may be limited.

&6.S952
6.S952 Modeling with Machine Learning for Computer Science

()
Prereqs: 6.S084/18.061 or 18.06 or equivalent; 6.1200 or 6.3700, 6.100A or equivalent; Co-req 6.C51
Units: 3-0-3

[Meets with 6.S052] Focuses on in-depth modeling of engineering tasks as machine learning problems. Emphasizes framing, method design, and interpretation of results. In comparison to broader co-requisite 6.C01/6.C51, this project oriented subject consists of deep dives into select technical areas or engineering tasks involving both supervised and exploratory uses of machine learning. Deep dives into technical areas such robustness, interpretability, privacy or causal discovery; engineering tasks such as recommender systems, performance optimization, or automated design. This 6-unit subject must be taken together with the 6-unit core subject 6.C01. Enrollment may be limited.


Model-centric: 6-4 Model-centric subjects
6.30006.003
6.3000 Signal Processing

(,)
Prereqs: 6.100A and 18.03
Units: 6-0-6

Fundamentals of signal processing, focusing on the use of Fourier methods to analyze and process signals such as sounds and images. Topics include Fourier series, Fourier transforms, the Discrete Fourier Transform, sampling, convolution, deconvolution, filtering, noise reduction, and compression. Applications draw broadly from areas of contemporary interest with emphasis on both analysis and design.


6.41106.038
6.4110 Representation, Inference, and Reasoning in AI

()
Prereqs: (16.09 and 16.410) or (6.1010, 6.1210, and (6.3700 or 6.3800))
Units: 3-0-9

An introduction to representations and algorithms for artificial intelligence. 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 including MDPs and POMDPs.


6.44006.837
6.4400 Computer Graphics

()
Prereqs: 6.1010 and (18.06 or 18.C06)
Units: 3-0-9

Introduction to computer graphics algorithms, software and hardware. Topics include ray tracing, the graphics pipeline, transformations, texture mapping, shadows, sampling, global illumination, splines, animation and color.


Decision-centric: 6-4 Decision-centric subjects
6.31006.302
6.3100 Dynamical System Modeling and Control Design

(,)
Prereqs: GIR:PHY2 and (18.06 or 18.C06)
Units: 4-4-4

A learn-by-design introduction to modeling and control of discrete- and continuous-time systems, from intuition-building analytical techniques to more computational and data-centric strategies. Topics include: linear difference/differential equations (natural frequencies, transfer functions); controller metrics (stability, tracking, disturbance rejection); analytical techniques (PID, root-loci, lead-lag, phase margin); computational strategies (state-space, eigen-placement, LQR); and data-centric approaches (state estimation, regression, and identification). Concepts are introduced with lectures and online problems, and then mastered during weekly labs. In lab, students model, design, test, and explain systems and controllers involving sensors, actuators, and a microcontroller (e.g., optimizing thrust-driven positioners or stabilizing magnetic levitators). Students taking graduate version complete additional problems and labs.


6.41106.038
6.4110 Representation, Inference, and Reasoning in AI

()
Prereqs: (16.09 and 16.410) or (6.1010, 6.1210, and (6.3700 or 6.3800))
Units: 3-0-9

An introduction to representations and algorithms for artificial intelligence. 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 including MDPs and POMDPs.


6.72016.215
6.7201 Optimization Methods

()
Prereqs: 18.06
Units: 4-0-8

Introduces the principal algorithms for linear, network, discrete, robust, nonlinear, and dynamic optimization. Emphasizes methodology and the underlying mathematical structures. Topics include the simplex method, network flow methods, branch and bound and cutting plane methods for discrete optimization, optimality conditions for nonlinear optimization, interior point methods for convex optimization, Newton's method, heuristic methods, and dynamic programming and optimal control methods. Expectations and evaluation criteria differ for students taking graduate version; consult syllabus or instructor for specific details.


6.S059
6.S059 Causal Inference

()
Prereqs: 6.3800, 6.3900, 6.C01, 14.32, 17.803, 18.05, 18.650, or permission of instructor
Units: 4-0-8

[Meets with 15.C08, 17.C08] Provides an accessible overview of modern quantitative methods for causal inference: testing whether an action causes an outcome to occur. Makes heavy use of applied, real-data examples using Python or R and drawn from the participating domains (economics, political science, business, public policy, etc.). Covers topics including potential outcomes, causal graphs, randomized controlled trials, observational studies, instrumental variable estimation, and a contrast with machine learning techniques. Seeks to provide an intuitive understanding of the core concepts and techniques to help students produce and consume evidence of causal claims.


Computation-centric: 6-4 Computation-centric subjects
6.12206.046
6.1220 Design and Analysis of Algorithms

(,)
Prereqs: 6.1200 and 6.1210
Units: 4-0-8

Techniques for the design and analysis of efficient algorithms, emphasizing methods useful in practice. Topics include sorting; search trees, heaps, and hashing; divide-and-conquer; dynamic programming; greedy algorithms; amortized analysis; graph algorithms; and shortest paths. Advanced topics may include network flow; computational geometry; number-theoretic algorithms; polynomial and matrix calculations; caching; and parallel computing.


6.44006.837
6.4400 Computer Graphics

()
Prereqs: 6.1010 and (18.06 or 18.C06)
Units: 3-0-9

Introduction to computer graphics algorithms, software and hardware. Topics include ray tracing, the graphics pipeline, transformations, texture mapping, shadows, sampling, global illumination, splines, animation and color.


6.72016.215
6.7201 Optimization Methods

()
Prereqs: 18.06
Units: 4-0-8

Introduces the principal algorithms for linear, network, discrete, robust, nonlinear, and dynamic optimization. Emphasizes methodology and the underlying mathematical structures. Topics include the simplex method, network flow methods, branch and bound and cutting plane methods for discrete optimization, optimality conditions for nonlinear optimization, interior point methods for convex optimization, Newton's method, heuristic methods, and dynamic programming and optimal control methods. Expectations and evaluation criteria differ for students taking graduate version; consult syllabus or instructor for specific details.


Human-centric: 6-4 Human-centric subjects
6.32606.207
6.3260 Networks

()
Prereqs: 6.3700 or 14.30
Units: 4-0-8

Highlights common principles that permeate the functioning of diverse technological, economic and social networks. Utilizes three sets of tools for analyzing networks -- random graph models, optimization, and game theory -- to study informational and learning cascades; economic and financial networks; social influence networks; formation of social groups; communication networks and the Internet; consensus and gossiping; spread and control of epidemics; control and use of energy networks; and biological networks. Students taking graduate version complete additional assignments.


6.39506.404
6.3950 AI, Decision Making, and Society

()
Prereqs/[Coreqs]: [6.1200, 6.3700, 6.3800, 18.05, or 18.600]
Units: 4-0-8

Introduction to fundamentals of modern data-driven decision-making frameworks, such as causal inference and hypothesis testing in statistics as well as supervised and reinforcement learning in machine learning. Explores how these frameworks are being applied in various societal contexts, including criminal justice, healthcare, finance, and social media. Emphasis on pinpointing the non-obvious interactions, undesirable feedback loops, and unintended consequences that arise in such settings. Enables students to develop their own principled perspective on the interface of data-driven decision making and society. Students taking graduate version complete additional assignments.


6.41206.804
6.4120 Computational Cognitive Science

()
Prereqs: 6.3700, 6.3800, 9.40, 18.05, 6.3900, or permission of instructor
Units: 3-0-9

Introduction to computational theories of human cognition. Focus on principles of inductive learning and inference, and the representation of knowledge. Computational frameworks covered include Bayesian and hierarchical Bayesian models; probabilistic graphical models; nonparametric statistical models and the Bayesian Occam's razor; sampling algorithms for approximate learning and inference; and probabilistic models defined over structured representations such as first-order logic, grammars, or relational schemas. Applications to understanding core aspects of cognition, such as concept learning and categorization, causal reasoning, theory formation, language acquisition, and social inference. Graduate students complete a final project.


6.45906.805
6.4590 Foundations of Information Policy

()
Prereqs: Permission of instructor
Units: 3-0-9

Studies the growth of computer and communications technology and the new legal and ethical challenges that reflect tensions between individual rights and societal needs. Topics include computer crime; intellectual property restrictions on software; encryption, privacy, and national security; academic freedom and free speech. Students meet and question technologists, activists, law enforcement agents, journalists, and legal experts. Instruction and practice in oral and written communication provided. Students taking graduate version complete additional assignments. Enrollment limited.

6.C35
6.C35 Interactive Data Visualization and Society

()
Prereqs: none
Units: 3-1-8

Covers the design, ethical, and technical skills for creating effective visualizations. Short assignments build familiarity with the data analysis and visualization design process. Weekly lab sessions present coding and technical skills. A final project provides experience working with real-world big data, provided by external partners, in order to expose and communicate insights about societal issues. Students taking graduate version complete additional assignments. Enrollment limited. Enrollment limited.


6.S041
6.S041 Algorithmic and Human Decision-Making

()
Prereqs: 6.3700 or 6.3800 or 18.05 or 18.600 or 14.300 or 14.32 and 6.3900 or 6.C01
Units: 3-0-9

Introduces students to problems at the intersection of algorithmic and human decision-making, focusing on problem domains such as criminal justice, the health care system, labor market, and others. Introduces the foundations in computer science, economics and psychology needed to integrate our behavioral understanding of people into machine learning. Topics include supervised learning, decision-making under uncertainty, behavioral economics, recommendation systems, and fairness/discrimination. Guest lectures by experts designing live algorithms in these domains, and culminates in student projects.


9.660

AI+D_AUS: Advanced undergraduate subjects for 6-4 students
18.404
18.404 Theory of Computation

()
Prereqs: 6.1200 or 18.200
Units: 4-0-8

A more extensive and theoretical treatment of the material in 6.1400J/18.400J, emphasizing computability and computational complexity theory. Regular and context-free languages. Decidable and undecidable problems, reducibility, recursive function theory. Time and space measures on computation, completeness, hierarchy theorems, inherently complex problems, oracles, probabilistic computation, and interactive proof systems.


6.37306.419
6.3730 Statistics, Computation and Applications

()
Prereqs: (6.100B, (18.03, 18.06, or 18.C06), and (6.3700, 6.3800, 14.30, 16.09, or 18.05)) or permission of instructor
Units: 3-1-8

Hands-on analysis of data demonstrates the interplay between statistics and computation. Includes four modules, each centered on a specific data set, and introduced by a domain expert. Provides instruction in specific, relevant analysis methods and corresponding algorithmic aspects. Potential modules may include medical data, gene regulation, social networks, finance data (time series), traffic, transportation, weather forecasting, policy, or industrial web applications. Projects address a large-scale data analysis question. Students taking graduate version complete additional assignments. Enrollment limited; priority to Statistics and Data Science minors, and to juniors and seniors.


6.42106.800
6.4210 Robotic Manipulation

()
Prereqs: (6.100A and 6.3900) or permission of instructor
Units: 4-2-9

Introduces the fundamental algorithmic approaches for creating robot systems that can autonomously manipulate physical objects in unstructured environments such as homes and restaurants. Topics include perception (including approaches based on deep learning and approaches based on 3D geometry), planning (robot kinematics and trajectory generation, collision-free motion planning, task-and-motion planning, and planning under uncertainty), as well as dynamics and control (both model-based and learning-based). Students taking graduate version complete additional assignments. Students engage in extensive written and oral communication exercises.


6.51516.905
6.5151 Large-scale Symbolic Systems

()
Prereqs: 6.4100 or permission of instructor
Units: 3-0-9

Concepts and techniques for the design and implementation of large software systems that can be adapted to uses not anticipated by the designer. Applications include compilers, computer-algebra systems, deductive systems, and some artificial intelligence applications. Covers means for decoupling goals from strategy, mechanisms for implementing additive data-directed invocation, work with partially-specified entities, and how to manage multiple viewpoints. Topics include combinators, generic operations, pattern matching, pattern-directed invocation, rule systems, backtracking, dependencies, indeterminacy, memoization, constraint propagation, and incremental refinement. Students taking graduate version complete additional assignments.


6.58316.814
6.5831 Database Systems

()
Prereqs: (6.1800 and (6.1210 or 6.1220)) or permission of instructor
Units: 3-0-9

Topics related to the engineering and design of database systems, including data models; database and schema design; schema normalization and integrity constraints; query processing; query optimization and cost estimation; transactions; recovery; concurrency control; isolation and consistency; distributed, parallel and heterogeneous databases; adaptive databases; trigger systems; pub-sub systems; semi structured data and XML querying. Lecture and readings from original research papers. Semester-long project and paper. Students taking graduate version complete different assignments. Enrollment may be limited.

6.74116.405
6.7411 Principles of Digital Communication

()
Prereqs: (6.3000, 6.3100, or 6.3400) and (6.3700, 6.3800, or 18.05)
Units: 3-0-9

Covers communications by progressing through signal representation, sampling, quantization, compression, modulation, coding and decoding, medium access control, and queueing and principles of protocols. By providing simplified proofs, seeks to present an integrated, systems-level view of networking and communications while laying the foundations of analysis and design. Lectures are offered online; in-class time is dedicated to recitations, exercises, and weekly group labs. Homework exercises are based on theoretical derivation and software implementation. Students taking graduate version complete additional assignments.


6.79306.871
6.7930 Machine Learning for Healthcare

()
Prereqs: 6.3900, 6.4100, 6.7810, 6.7900, 6.8611, or 9.520
Units: 4-0-8

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.83006.869
6.8300 Advances in Computer Vision

()
Prereqs: (6.1200 or 6.3700) and (18.06 or 18.C06)
Units: 3-0-9

Advanced topics in computer vision with a focus on the use of machine learning techniques and applications in graphics and human-computer interface. Covers image representations, texture models, structure-from-motion algorithms, Bayesian techniques, object and scene recognition, tracking, shape modeling, and image databases. Applications may include face recognition, multimodal interaction, interactive systems, cinematic special effects, and photorealistic rendering. Covers topics complementary to 6.8390. Students taking graduate version complete additional assignments.


6.83016.819
6.8301 Advances in Computer Vision

()
Prereqs: (6.1200 or 6.3700) and (18.06 or 18.C06)
Units: 4-0-11

Advanced topics in computer vision with a focus on the use of machine learning techniques and applications in graphics and human-computer interface. Covers image representations, texture models, structure-from-motion algorithms, Bayesian techniques, object and scene recognition, tracking, shape modeling, and image databases. Applications may include face recognition, multimodal interaction, interactive systems, cinematic special effects, and photorealistic rendering. Includes instruction and practice in written and oral communication. Students taking graduate version complete additional assignments.


6.83716.815
6.8371 Digital and Computational Photography

()
Prereqs: GIR:CAL2 and 6.1010
Units: 3-0-9

Presents fundamentals and applications of hardware and software techniques used in digital and computational photography, with an emphasis on software methods. Provides sufficient background to implement solutions to photographic challenges and opportunities. Topics include cameras and image formation, image processing and image representations, high-dynamic-range imaging, human visual perception and color, single view 3-D model reconstruction, morphing, data-rich photography, super-resolution, and image-based rendering. Students taking graduate version complete additional assignments.

6.86116.806
6.8611 Quantitative Methods for Natural Language Processing

()
Prereqs: 6.3900 and (18.06 or 18.C06)
Units: 4-0-11

Introduces the study of human language from a computational perspective, including syntactic, semantic and discourse processing models. Emphasizes machine learning methods and algorithms. Uses these methods and models in applications such as syntactic parsing, information extraction, statistical machine translation, dialogue systems. Instruction and practice in oral and written communication provided. Students taking graduate version complete additional assignments.


6.87016.047
6.8701 Computational Biology: Genomes, Networks, Evolution

()
Prereqs: (GIR:BIOL, 6.1210, and 6.3700) or permission of instructor
Units: 3-0-9

Covers the algorithmic and machine learning foundations of computational biology, combining theory with practice. Principles of algorithm design, influential problems and techniques, and analysis of large-scale biological datasets. Topics include (a) genomes: sequence analysis, gene finding, RNA folding, genome alignment and assembly, database search; (b) networks: gene expression analysis, regulatory motifs, biological network analysis; (c) evolution: comparative genomics, phylogenetics, genome duplication, genome rearrangements, evolutionary theory. These are coupled with fundamental algorithmic techniques including: dynamic programming, hashing, Gibbs sampling, expectation maximization, hidden Markov models, stochastic context-free grammars, graph clustering, dimensionality reduction, Bayesian networks.


6.87116.802
6.8711 Computational Systems Biology: Deep Learning in the Life Sciences

()
Prereqs: (7.05 and (6.100B or 6.9080)) 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.S079
6.S079 Software Systems for Data Science

()
Prereqs: (6.100A, 6.100B, and 6.1210) or permission of instructor
Units: 3-0-9

In this course we review the important role of semiconductor devices in patient monitoring and point of care. This includes technologies such as electrochemical, ultrasonic,magnetic, optical, and RF sensing modalities. We cover some of the basics of each device as well as physics and biology of device/human interaction.


6.S966
6.S966 Symmetry and its Application to Machine Learning and Scientific Computing

()
Prereqs: 18.06 or 18.061, 6.100A, 6.1210
Units: 3-0-9

Introduces the use of group representation theory to construct symmetry-preserving algorithms for machine learning. Emphases the connection between topics in math and physics and machine learning. Students will implement core mathematical concepts in code to build algorithms that can operate on graphs, geometry, scientific data, and other structured data to preserve the symmetries of these domains. Topics covered include: Euclidean and permutation groups, group representations: regular, reducible, and irreducible, tensor products, statistics and sampling of group representation vector spaces, and symmetry-breaking mechanisms.


Application_CIM: CI-M for 6-4 students
6.42006.141
6.4200 Robotics: Science and Systems

()
Prereqs: ((1.00 or 6.100A) and (2.003, 6.1010, 6.1210, or 16.06)) or permission of instructor
Units: 2-6-4

Presents concepts, principles, and algorithmic foundations for robots and autonomous vehicles operating in the physical world. Topics include sensing, kinematics and dynamics, state estimation, computer vision, perception, learning, control, motion planning, and embedded system development. Students design and implement advanced algorithms on complex robotic platforms capable of agile autonomous navigation and real-time interaction with the physical word. Students engage in extensive written and oral communication exercises. Enrollment limited.


6.42106.800
6.4210 Robotic Manipulation

()
Prereqs: (6.100A and 6.3900) or permission of instructor
Units: 4-2-9

Introduces the fundamental algorithmic approaches for creating robot systems that can autonomously manipulate physical objects in unstructured environments such as homes and restaurants. Topics include perception (including approaches based on deep learning and approaches based on 3D geometry), planning (robot kinematics and trajectory generation, collision-free motion planning, task-and-motion planning, and planning under uncertainty), as well as dynamics and control (both model-based and learning-based). Students taking graduate version complete additional assignments. Students engage in extensive written and oral communication exercises.


6.83016.819
6.8301 Advances in Computer Vision

()
Prereqs: (6.1200 or 6.3700) and (18.06 or 18.C06)
Units: 4-0-11

Advanced topics in computer vision with a focus on the use of machine learning techniques and applications in graphics and human-computer interface. Covers image representations, texture models, structure-from-motion algorithms, Bayesian techniques, object and scene recognition, tracking, shape modeling, and image databases. Applications may include face recognition, multimodal interaction, interactive systems, cinematic special effects, and photorealistic rendering. Includes instruction and practice in written and oral communication. Students taking graduate version complete additional assignments.


6.86116.806
6.8611 Quantitative Methods for Natural Language Processing

()
Prereqs: 6.3900 and (18.06 or 18.C06)
Units: 4-0-11

Introduces the study of human language from a computational perspective, including syntactic, semantic and discourse processing models. Emphasizes machine learning methods and algorithms. Uses these methods and models in applications such as syntactic parsing, information extraction, statistical machine translation, dialogue systems. Instruction and practice in oral and written communication provided. Students taking graduate version complete additional assignments.


AUS2: Advanced undergraduate subject. Also see the grad_AUS2 list below. A subject provides an AUS2 experience if at least 40% of the grade is based on new advanced EECS technical material that is rigorously evaluated through examinations and/or problem sets. An AUS2 subject must be at least 12 units, and its prerequisites should include an EECS subject at least at the foundation level, but ideally header or center level. It may be dual-numbered with a graduate subject, but must have distinct requirements to ensure accessibility to the range of undergraduate students in the department.
18.404
18.404 Theory of Computation

()
Prereqs: 6.1200 or 18.200
Units: 4-0-8

A more extensive and theoretical treatment of the material in 6.1400J/18.400J, emphasizing computability and computational complexity theory. Regular and context-free languages. Decidable and undecidable problems, reducibility, recursive function theory. Time and space measures on computation, completeness, hierarchy theorems, inherently complex problems, oracles, probabilistic computation, and interactive proof systems.


6.10406.170
6.1040 Software Design

()
Prereqs: 6.1020 and 6.1200
Units: 4-0-14

Provides design-focused instruction on how to build complex software applications. Design topics include classic human-computer interaction (HCI) design tactics (need finding, heuristic evaluation, prototyping, user testing), conceptual design (inventing, modeling and evaluating constituent concepts), social and ethical implications, abstract data modeling, and visual design. Implementation topics include reactive front-ends, web services, and databases. Students work both on individual projects and a larger team project in which they design and build full-stack web applications.


6.10606.172
6.1060 Software Performance Engineering

()
Prereqs: 6.1020, 6.1210, and 6.1910
Units: 3-12-3

Project-based introduction to building efficient, high-performance and scalable software systems. Topics include performance analysis, algorithmic techniques for high performance, instruction-level optimizations, vectorization, cache and memory hierarchy optimization, and parallel programming.


6.11006.035
6.1100 Computer Language Engineering

()
Prereqs: 6.1020 and 6.1910
Units: 4-4-4

Analyzes issues associated with the implementation of higher-level programming languages. Fundamental concepts, functions, and structures of compilers. The interaction of theory and practice. Using tools in building software. Includes a multi-person project on compiler design and implementation.


6.11206.818
6.1120 Dynamic Computer Language Engineering

()
Prereqs: 6.1020 or 6.1910
Units: 4-4-4

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. Includes a semester-long, group project that delivers a virtual machine that spans all of these topics.


6.14206.054
6.1420 Fixed Parameter and Fine-grained Computation

()
Prereqs: 6.1200, 6.1210, and (6.1220, 6.1400, or 18.404)
Units: 3-0-9

An overview of the theory of parameterized algorithms and the "problem-centric" theory of fine-grained complexity, both of which reconsider how to measure the difficulty and feasibility of solving computational problems. Topics include: fixed-parameter tractability (FPT) and its characterizations, the W-hierarchy (W[1], W[2], W[P], etc.), 3-sum-hardness, all-pairs shortest paths (APSP)-equivalences, strong exponential time hypothesis (SETH) hardness of problems, and the connections to circuit complexity and other aspects of computing.


6.16006.053
6.1600 Foundations of Computer Security

()
Prereqs: 6.1210 and 6.1800
Units: 4-0-8

Fundamental notions and big ideas for achieving security in computer systems. Topics include cryptographic foundations (pseudorandomness, collision-resistant hash functions, authentication codes, signatures, authenticated encryption, public-key encryption), systems ideas (isolation, non-interference, authentication, access control, delegation, trust), and implementation techniques (privilege separation, fuzzing, symbolic execution, runtime defenses, side-channel attacks). Case studies of how these ideas are realized in deployed systems. Lab assignments apply ideas from lectures to learn how to build secure systems and how they can be attacked.


6.18106.039
6.1810 Operating System Engineering

()
Prereqs: 6.1910
Units: 3-0-9

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, xv6, is used to illustrate these topics. Individual laboratory assignments involve extending the xv6 operating system, for example to support sophisticated virtual memory features and networking.


6.18206.808
6.1820 Mobile and Sensor Computing

()
Prereqs: 6.1800 or permission of instructor
Units: 3-0-9

Focuses on "Internet of Things" (IoT) systems and technologies, sensing, computing, and communication. Explores fundamental design and implementation issues in the engineering of mobile and sensor computing systems. Topics include battery-free sensors, seeing through wall, robotic sensors, vital sign sensors (breathing, heartbeats, emotions), sensing in cars and autonomous vehicles, subsea IoT, sensor security, positioning technologies (including GPS and indoor WiFi), inertial sensing (accelerometers, gyroscopes, inertial measurement units, dead-reckoning), embedded and distributed system architectures, sensing with radio signals, sensing with microphones and cameras, wireless sensor networks, embedded and distributed system architectures, mobile libraries and APIs to sensors, and application case studies. Includes readings from research literature, as well as laboratory assignments and a significant term project.


6.19206.175
6.1920 Constructive Computer Architecture

()
Prereqs: 6.1910
Units: 3-8-1

Illustrates a constructive (as opposed to a descriptive) approach to computer architecture. Topics include combinational and pipelined arithmetic-logic units (ALU), in-order pipelined microarchitectures, branch prediction, blocking and unblocking caches, interrupts, virtual memory support, cache coherence and multicore architectures. Labs in a modern Hardware Design Language (HDL) illustrate various aspects of microprocessor design, culminating in a term project in which students present a multicore design running on an FPGA board.


6.20406.101
6.2040 Analog Electronics Laboratory

()
Prereqs: 6.2000
Units: 2-9-1

Experimental laboratory explores the design, construction, and debugging of analog electronic circuits. Lectures and laboratory projects in the first half of the course investigate the performance characteristics of semiconductor devices (diodes, BJTs, and MOSFETs) and functional analog building blocks, including single-stage amplifiers, op amps, small audio amplifier, filters, converters, sensor circuits, and medical electronics (ECG, pulse-oximetry). Projects involve design, implementation, and presentation in an environment similar to that of industry engineering design teams. Instruction and practice in written and oral communication provided. Opportunity to simulate real-world problems and solutions that involve tradeoffs and the use of engineering judgment.


6.20506.111
6.2050 Digital Systems Laboratory

()
Prereqs: 6.1910 or permission of instructor
Units: 3-7-2

Lab-intensive subject that investigates digital systems with a focus on FPGAs. Lectures and labs cover logic, flip flops, counters, timing, synchronization, finite-state machines, digital signal processing, communication protocols, and modern sensors. Prepares students for the design and implementation of a large-scale final project of their choice: games, music, digital filters, wireless communications, video, or graphics. Extensive use of System/Verilog for describing and implementing and verifying digital logic designs.


6.20606.115
6.2060 Microcomputer Project Laboratory

()
Prereqs: 6.1910, 6.2000, or 6.3000
Units: 3-6-3

Introduces analysis and design of embedded systems. Microcontrollers provide adaptation, flexibility, and real-time control. Emphasizes construction of complete systems, including a five-axis robot arm, a fluorescent lamp ballast, a tomographic imaging station (e.g., a CAT scan), and a simple calculator. Presents a wide range of basic tools, including software and development tools, programmable system on chip, peripheral components such as A/D converters, communication schemes, signal processing techniques, closed-loop digital feedback control, interface and power electronics, and modeling of electromechanical systems. Includes a sequence of assigned projects, followed by a final project of the student's choice, emphasizing creativity and uniqueness. Provides instruction in written and oral communication. To satisfy the independent inquiry component of this subject, students expand the scope of their laboratory project.


6.20616.1151
6.2061 Microcomputer Project Laboratory - Independent Inquiry

()
Prereqs: 6.1910, 6.2000, or 6.3000
Units: 3-9-3

Introduces analysis and design of embedded systems. Microcontrollers provide adaptation, flexibility, and real-time control. Emphasizes construction of complete systems, including a five-axis robot arm, a fluorescent lamp ballast, a tomographic imaging station (e.g., a CAT scan), and a simple calculator. Presents a wide range of basic tools, including software and development tools, programmable system on chip, peripheral components such as A/D converters, communication schemes, signal processing techniques, closed-loop digital feedback control, interface and power electronics, and modeling of electromechanical systems. Includes a sequence of assigned projects, followed by a final project of the student's choice, emphasizing creativity and uniqueness. Provides instruction in written and oral communication. Students taking independent inquiry version 6.2061 expand the scope of their laboratory project.

6.20806.300
6.2080 Semiconductor Electronic Circuits

()
Prereqs: 6.2000
Units: 3-2-7

Provides an introduction to basic circuit design, starting from basic semiconductor devices such as diodes and transistors, large and small signal models and analysis, to circuits such as basic amplifier and opamp circuits. Labs give students access to CAD/EDA tools to design, analyze, and layout analog circuits. At the end of the term, students have their chip design fabricated using a 22nm FinFET CMOS process.


6.20906.301
6.2090 Solid-State Circuits

()
Prereqs: 6.2040, 6.2080, or permission of instructor
Units: 3-2-7

Fosters deep understanding and intuition that is crucial in innovating analog circuits and optimizing the whole system in bipolar junction transistor (BJT) and metal oxide semiconductor (MOS) technologies. Covers both theory and real-world applications of basic amplifier structures, operational amplifiers, temperature sensors, bandgap references. Covers topics such as noise, linearity and stability. Homework and labs give students access to CAD/EDA tools to design and analyze analog circuits. Provides practical experience through lab exercises, including a broadband amplifier design and characterization. Students taking graduate version complete additional assignments.


6.22006.061
6.2200 Electric Energy Systems

()
Prereqs: 6.2000
Units: 4-0-8

Analysis and design of modern energy conversion and delivery systems. Develops a solid foundation in electromagnetic phenomena with a focus on electrical energy distribution, electro-mechanical energy conversion (motors and generators), and electrical-to-electrical energy conversion (DC-DC, DC-AC power conversion). Students apply the material covered to consider critical challenges associated with global energy systems, with particular examples related to the electrification of transport and decarbonization of the grid.


6.22206.131
6.2220 Power Electronics Laboratory

()
Prereqs: 6.2000 or 6.3100
Units: 3-6-3

Introduces the design and construction of power electronic circuits and motor drives. Laboratory exercises 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 include DC, induction, and permanent magnet motors, with drive considerations. Provides instruction in written and oral communication. Students taking independent inquiry version 6.2221 expand the scope of their laboratory project.


6.22216.1311
6.2221 Power Electronics Laboratory - Independent Inquiry

()
Prereqs: 6.2000 or 6.3000
Units: 3-9-3

Introduces the design and construction of power electronic circuits and motor drives. Laboratory exercises 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 include DC, induction, and permanent magnet motors, with drive considerations. Provides instruction in written and oral communication. To satisfy the independent inquiry component of this subject, students expand the scope of their laboratory project.


6.24006.051
6.2400 Introduction to Quantum Systems Engineering

()
Prereqs: 6.2300 and (18.06 or 18.C06)
Units: 4-2-6

Introduction to the quantum mechanics needed to engineer quantum systems for computation, communication, and sensing. Topics include: motivation for quantum engineering, qubits and quantum gates, rules of quantum mechanics, mathematical background, quantum electrical circuits and other physical quantum systems, harmonic and anharmonic oscillators, measurement, the Schrödinger equation, noise, entanglement, benchmarking, quantum communication, and quantum algorithms. No prior experience with quantum mechanics is assumed.


6.25306.701
6.2530 Introduction to Nanoelectronics

()
Prereqs: 6.3000
Units: 4-0-8

Transistors at the nanoscale. Quantization, wavefunctions, and Schrodinger's equation. Introduction to electronic properties of molecules, carbon nanotubes, and crystals. Energy band formation and the origin of metals, insulators and semiconductors. Ballistic transport, Ohm's law, ballistic versus traditional MOSFETs, fundamental limits to computation.


6.31006.302
6.3100 Dynamical System Modeling and Control Design

(,)
Prereqs: GIR:PHY2 and (18.06 or 18.C06)
Units: 4-4-4

A learn-by-design introduction to modeling and control of discrete- and continuous-time systems, from intuition-building analytical techniques to more computational and data-centric strategies. Topics include: linear difference/differential equations (natural frequencies, transfer functions); controller metrics (stability, tracking, disturbance rejection); analytical techniques (PID, root-loci, lead-lag, phase margin); computational strategies (state-space, eigen-placement, LQR); and data-centric approaches (state estimation, regression, and identification). Concepts are introduced with lectures and online problems, and then mastered during weekly labs. In lab, students model, design, test, and explain systems and controllers involving sensors, actuators, and a microcontroller (e.g., optimizing thrust-driven positioners or stabilizing magnetic levitators). Students taking graduate version complete additional problems and labs.


6.32606.207
6.3260 Networks

()
Prereqs: 6.3700 or 14.30
Units: 4-0-8

Highlights common principles that permeate the functioning of diverse technological, economic and social networks. Utilizes three sets of tools for analyzing networks -- random graph models, optimization, and game theory -- to study informational and learning cascades; economic and financial networks; social influence networks; formation of social groups; communication networks and the Internet; consensus and gossiping; spread and control of epidemics; control and use of energy networks; and biological networks. Students taking graduate version complete additional assignments.


6.37206.401
6.3720 Introduction to Statistical Data Analysis

()
Prereqs: 6.100A and (6.3700, 6.3800, or 18.600)
Units: 4-0-8

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.37306.419
6.3730 Statistics, Computation and Applications

()
Prereqs: (6.100B, (18.03, 18.06, or 18.C06), and (6.3700, 6.3800, 14.30, 16.09, or 18.05)) or permission of instructor
Units: 3-1-8

Hands-on analysis of data demonstrates the interplay between statistics and computation. Includes four modules, each centered on a specific data set, and introduced by a domain expert. Provides instruction in specific, relevant analysis methods and corresponding algorithmic aspects. Potential modules may include medical data, gene regulation, social networks, finance data (time series), traffic, transportation, weather forecasting, policy, or industrial web applications. Projects address a large-scale data analysis question. Students taking graduate version complete additional assignments. Enrollment limited; priority to Statistics and Data Science minors, and to juniors and seniors.


6.42106.800
6.4210 Robotic Manipulation

()
Prereqs: (6.100A and 6.3900) or permission of instructor
Units: 4-2-9

Introduces the fundamental algorithmic approaches for creating robot systems that can autonomously manipulate physical objects in unstructured environments such as homes and restaurants. Topics include perception (including approaches based on deep learning and approaches based on 3D geometry), planning (robot kinematics and trajectory generation, collision-free motion planning, task-and-motion planning, and planning under uncertainty), as well as dynamics and control (both model-based and learning-based). Students taking graduate version complete additional assignments. Students engage in extensive written and oral communication exercises.


6.44006.837
6.4400 Computer Graphics

()
Prereqs: 6.1010 and (18.06 or 18.C06)
Units: 3-0-9

Introduction to computer graphics algorithms, software and hardware. Topics include ray tracing, the graphics pipeline, transformations, texture mapping, shadows, sampling, global illumination, splines, animation and color.


6.44206.807
6.4420 Computational Design and Fabrication

()
Prereqs: GIR:CAL2 and (6.1010 or permission of instructor)
Units: 3-0-9

Introduces computational aspects of computer-aided design and manufacturing. Explores relevant methods in the context of additive manufacturing (e.g., 3D printing). Topics include computer graphics (geometry modeling, solid modeling, procedural modeling), physically-based simulation (kinematics, finite element method), 3D scanning/geometry processing, and an overview of 3D fabrication methods. Exposes students to the latest research in computational fabrication. Students taking the graduate version complete additional assignments.

6.45106.810
6.4510 Engineering Interactive Technologies

()
Prereqs: 6.1020, 6.2050, 6.2060, 6.9010, or permission of instructor
Units: 1-5-6

Provides instruction in building cutting-edge interactive technologies, explains the underlying engineering concepts, and shows how those technologies evolved over time. Students use a studio format (i.e., extended periods of time) for constructing software and hardware prototypes. Topics include interactive technologies, such as multi-touch, augmented reality, haptics, wearables, and shape-changing interfaces. In a group project, students build their own interactive hardware/software prototypes and present them in a live demo at the end of term. Enrollment may be limited.


6.48306.023
6.4830 Fields, Forces and Flows in Biological Systems

()
Prereqs: GIR:BIOL, GIR:PHY2, and 18.03
Units: 4-0-8

Introduction to electric fields, fluid flows, transport phenomena and their application to biological systems. Flux and continuity laws, Maxwell's equations, electro-quasistatics, electro-chemical-mechanical driving forces, conservation of mass and momentum, Navier-Stokes flows, and electrokinetics. Applications include biomolecular transport in tissues, electrophoresis, and microfluidics.


6.48606.025
6.4860 Medical Device Design

()
Prereqs: 2.008, 6.2040, 6.2050, 6.2060, 22.071, or permission of instructor
Units: 3-3-6

Provides an intense project-based learning experience around the design of medical devices with foci ranging from mechanical to electro mechanical to electronics. Projects motivated by real-world clinical challenges provided by sponsors and clinicians who also help mentor teams. Covers the design process, project management, and fundamentals of mechanical and electrical circuit and sensor design. Students work in small teams to execute a substantial term project, with emphasis placed upon developing creative designs -- via a deterministic design process -- that are developed and optimized using analytical techniques. Includes mandatory lab. Instruction and practice in written and oral communication provided. Students taking graduate version complete additional assignments. Enrollment limited.


6.50816.816
6.5081 Multicore Programming

()
Prereqs: 6.1210
Units: 4-0-8

Introduces principles and core techniques for programming multicore machines. Topics include locking, scalability, concurrent data structures, multiprocessor scheduling, load balancing, and state-of-the-art synchronization techniques, such as transactional memory. Includes sequence of programming assignments on a large multicore machine, culminating with the design of a highly concurrent application. Students taking graduate version complete additional assignments.


6.51516.905
6.5151 Large-scale Symbolic Systems

()
Prereqs: 6.4100 or permission of instructor
Units: 3-0-9

Concepts and techniques for the design and implementation of large software systems that can be adapted to uses not anticipated by the designer. Applications include compilers, computer-algebra systems, deductive systems, and some artificial intelligence applications. Covers means for decoupling goals from strategy, mechanisms for implementing additive data-directed invocation, work with partially-specified entities, and how to manage multiple viewpoints. Topics include combinators, generic operations, pattern matching, pattern-directed invocation, rule systems, backtracking, dependencies, indeterminacy, memoization, constraint propagation, and incremental refinement. Students taking graduate version complete additional assignments.


6.58316.814
6.5831 Database Systems

()
Prereqs: (6.1800 and (6.1210 or 6.1220)) or permission of instructor
Units: 3-0-9

Topics related to the engineering and design of database systems, including data models; database and schema design; schema normalization and integrity constraints; query processing; query optimization and cost estimation; transactions; recovery; concurrency control; isolation and consistency; distributed, parallel and heterogeneous databases; adaptive databases; trigger systems; pub-sub systems; semi structured data and XML querying. Lecture and readings from original research papers. Semester-long project and paper. Students taking graduate version complete different assignments. Enrollment may be limited.


6.59316.812
6.5931 Hardware Architecture for Deep Learning

()
Prereqs: 6.1910 and (6.3000 or 6.3900)
Units: 3-3-6

Introduction to the design and implementation of hardware architectures for efficient processing of deep learning algorithms and tensor algebra in AI systems. Topics include basics of deep learning, optimization principles for programmable platforms, design principles of accelerator architectures, co-optimization of algorithms and hardware (including sparsity) and use of advanced technologies (including memristors and optical computing). Includes labs involving modeling and analysis of hardware architectures, architecting deep learning inference systems, and an open-ended design project. Students taking graduate version complete additional assignments.


6.5951
6.5951 Secure Hardware Design

()
Prereqs: 6.1910
Units: 3-0-9

Introduction to basic concepts, principles, and implementation issues in the designing of secure hardware systems. Through a mixture of lectures and paper discussions, covers state-of-the-art security attacks and defenses targeting the computer architecture, digital circuits, and physics layers of computer systems. Emphasizes both the conceptual and the practical aspects of security issues in modern hardware systems. Topics include microarchitectural timing side channels, speculative execution attacks, RowHammer, Trusted Execution Environment, physical attacks, hardware support for software security, and verification of digital systems. Students taking graduate version complete additional assignments.


6.63316.602
6.6331 Fundamentals of Photonics

()
Prereqs: 2.71, 6.2300, or 8.07
Units: 3-0-9

Covers the fundamentals of optics and the interaction of light and matter, leading to devices such as light emitting diodes, optical amplifiers, and lasers. Topics include classical ray, wave, beam, and Fourier optics; Maxwell's electromagnetic waves; resonators; quantum theory of photons; light-matter interaction; laser amplification; lasers; and semiconductors optoelectronics. Students taking graduate version complete additional assignments.


6.71206.247
6.7120 Principles of Modeling, Computing and Control for Decarbonized Electric Energy Systems

()
Prereqs: 6.2200, (6.2000 and 6.3100), or permission of instructor
Units: 4-0-8

Introduces fundamentals of electric energy systems as complex dynamical network systems. Topics include coordinated and distributed modeling and control methods for efficient and reliable power generation, delivery, and consumption; data-enabled algorithms for integrating clean intermittent resources, storage, and flexible demand, including electric vehicles; examples of network congestion management, frequency, and voltage control in electrical grids at various scales; and design and operation of supporting markets. Students taking graduate version complete additional assignments.


6.72016.215
6.7201 Optimization Methods

()
Prereqs: 18.06
Units: 4-0-8

Introduces the principal algorithms for linear, network, discrete, robust, nonlinear, and dynamic optimization. Emphasizes methodology and the underlying mathematical structures. Topics include the simplex method, network flow methods, branch and bound and cutting plane methods for discrete optimization, optimality conditions for nonlinear optimization, interior point methods for convex optimization, Newton's method, heuristic methods, and dynamic programming and optimal control methods. Expectations and evaluation criteria differ for students taking graduate version; consult syllabus or instructor for specific details.


6.83016.819
6.8301 Advances in Computer Vision

()
Prereqs: (6.1200 or 6.3700) and (18.06 or 18.C06)
Units: 4-0-11

Advanced topics in computer vision with a focus on the use of machine learning techniques and applications in graphics and human-computer interface. Covers image representations, texture models, structure-from-motion algorithms, Bayesian techniques, object and scene recognition, tracking, shape modeling, and image databases. Applications may include face recognition, multimodal interaction, interactive systems, cinematic special effects, and photorealistic rendering. Includes instruction and practice in written and oral communication. Students taking graduate version complete additional assignments.


6.83716.815
6.8371 Digital and Computational Photography

()
Prereqs: GIR:CAL2 and 6.1010
Units: 3-0-9

Presents fundamentals and applications of hardware and software techniques used in digital and computational photography, with an emphasis on software methods. Provides sufficient background to implement solutions to photographic challenges and opportunities. Topics include cameras and image formation, image processing and image representations, high-dynamic-range imaging, human visual perception and color, single view 3-D model reconstruction, morphing, data-rich photography, super-resolution, and image-based rendering. Students taking graduate version complete additional assignments.


6.86116.806
6.8611 Quantitative Methods for Natural Language Processing

()
Prereqs: 6.3900 and (18.06 or 18.C06)
Units: 4-0-11

Introduces the study of human language from a computational perspective, including syntactic, semantic and discourse processing models. Emphasizes machine learning methods and algorithms. Uses these methods and models in applications such as syntactic parsing, information extraction, statistical machine translation, dialogue systems. Instruction and practice in oral and written communication provided. Students taking graduate version complete additional assignments.

6.87016.047
6.8701 Computational Biology: Genomes, Networks, Evolution

()
Prereqs: (GIR:BIOL, 6.1210, and 6.3700) or permission of instructor
Units: 3-0-9

Covers the algorithmic and machine learning foundations of computational biology, combining theory with practice. Principles of algorithm design, influential problems and techniques, and analysis of large-scale biological datasets. Topics include (a) genomes: sequence analysis, gene finding, RNA folding, genome alignment and assembly, database search; (b) networks: gene expression analysis, regulatory motifs, biological network analysis; (c) evolution: comparative genomics, phylogenetics, genome duplication, genome rearrangements, evolutionary theory. These are coupled with fundamental algorithmic techniques including: dynamic programming, hashing, Gibbs sampling, expectation maximization, hidden Markov models, stochastic context-free grammars, graph clustering, dimensionality reduction, Bayesian networks.


6.87116.802
6.8711 Computational Systems Biology: Deep Learning in the Life Sciences

()
Prereqs: (7.05 and (6.100B or 6.9080)) 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.87216.580
6.8721 Principles of Synthetic Biology

()
Prereqs: none
Units: 3-0-9

Introduces the basics of synthetic biology, including quantitative cellular network characterization and modeling. Considers the discovery and genetic factoring of useful cellular activities into reusable functions for design. Emphasizes the principles of biomolecular system design and diagnosis of designed systems. Illustrates cutting-edge applications in synthetic biology and enhances skills in analysis and design of synthetic biological applications. Students taking graduate version complete additional assignments.


6.88016.026
6.8801 Biomedical Signal and Image Processing

()
Prereqs: (6.3700 or permission of instructor) and (2.004, 6.3000, 16.002, or 18.085)
Units: 3-1-8

Fundamentals of digital signal processing with emphasis on problems in biomedical research and clinical medicine. Basic principles and algorithms for processing both deterministic and random signals. Topics include data acquisition, imaging, filtering, coding, feature extraction, and modeling. Lab projects, performed in MATLAB, provide practical experience in processing physiological data, with examples from cardiology, speech processing, and medical imaging. Lectures cover signal processing topics relevant to the lab exercises, as well as background on the biological signals processed in the labs. Students taking graduate version complete additional assignments.


6.90006.010
6.9000 Engineering for Impact

()
Prereqs: 6.1910, 6.2000, and 6.3100
Units: 2-3-7

Students work in large teams to engineer hardware/software systems that solve important problems in society. Topics include requirements, specifications, system design and partitioning, detailed engineering design, prototyping and implementation, test and verification, and the ethical implications of these choices. Explores case studies of existing hardware/software systems to understand implications of different system design choices. Teams design and build functional prototypes of useful systems. Grading is based on individual- and team-based elements. Enrollment may be limited due to staffing and space requirements.


6.C01
6.C01 Modeling with Machine Learning: from Algorithms to Applications

()
Prereqs/[Coreqs]: GIR:CAL2 and 6.100A; [1.C01, 2.C01, 3.C01, 7.C01, or 22.C01]
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. Students taking graduate version complete additional assignments. Students cannot receive credit without simultaneous completion of a 6-unit disciplinary module. Enrollment may be limited.

&6.S052
6.S052 Modeling with Machine Learning for Computer Science

()
Prereqs: 6.S084/18.061 or 18.06 or equivalent; 6.1200 or 6.3700, 6.100A or equivalent; Co-req 6.C01
Units: 3-0-3

[Meets with 6.S952] Focuses on in-depth modeling of engineering tasks as machine learning problems. Emphasizes framing, method design, and interpretation of results. In comparison to broader co-requisite 6.C01/6.C51, this project oriented subject consists of deep dives into select technical areas or engineering tasks involving both supervised and exploratory uses of machine learning. Deep dives into technical areas such robustness, interpretability, privacy or causal discovery; engineering tasks such as recommender systems, performance optimization, or automated design. This 6-unit subject must be taken together with the 6-unit core subject 6.C01. Enrollment may be limited.


6.C25
6.C25 Real World Computation with Julia

()
Prereqs: 6.100A, 18.03, and 18.06
Units: 3-0-9

Focuses on algorithms and techniques for writing and using modern technical software in a job, lab, or research group environment that may consist of interdisciplinary teams, where performance may be critical, and where the software needs to be flexible and adaptable. Topics include automatic differentiation, matrix calculus, scientific machine learning, parallel and GPU computing, and performance optimization with introductory applications to climate science, economics, agent-based modeling, and other areas. Labs and projects focus on performant, readable, composable algorithms, and software. Programming will be in Julia. Expects students to have some familiarity with Python, Matlab, or R. No Julia experience necessary.


6.C27
6.C27 Computational Imaging: Physics and Algorithms

()
Prereqs: 18.C06 and (1.00, 1.000, 2.086, 3.019, or 6.100A)
Units: 3-0-9

Explores the contemporary computational understanding of imaging: encoding information about a physical object onto a form of radiation, transferring the radiation through an imaging system, converting it to a digital signal, and computationally decoding and presenting the information to the user. Introduces a unified formulation of computational imaging systems as a three-round "learning spiral": the first two rounds describe the physical and algorithmic parts in two exemplary imaging systems. The third round involves a class project on an imaging system chosen by students. Undergraduate and graduate versions share lectures but have different recitations. Involves optional "clinics" to even out background knowledge of linear algebra, optimization, and computational imaging-related programming best practices for students of diverse disciplinary backgrounds. Students taking graduate version complete additional assignments.


6.S046
6.S046 Silicon Photonics

()
Prereqs: 6.2300 or 8.07
Units: 3-0-9

[Meets with 6.S976] Covers the foundational concepts behind silicon photonics based in electromagnetics, optics, and device physics; the design of silicon-photonics-based devices (including waveguides, couplers, splitters, resonators, antennas, modulators, detectors, and lasers) using both theoretical analysis and numerical simulation tools; the engineering of silicon-photonics-based circuits and systems with a focus on a variety of applications areas (spanning computing, communications, sensing, quantum, displays, and biophotonics); the development of silicon-photonics-based platforms, including fabrication and materials considerations; and the characterization of these silicon-photonics-based devices and systems through hands-on laboratory demonstrations and projects. Students taking graduate version complete additional assignments.


6.S059
6.S059 Causal Inference

()
Prereqs: 6.3800, 6.3900, 6.C01, 14.32, 17.803, 18.05, 18.650, or permission of instructor
Units: 4-0-8

[Meets with 15.C08, 17.C08] Provides an accessible overview of modern quantitative methods for causal inference: testing whether an action causes an outcome to occur. Makes heavy use of applied, real-data examples using Python or R and drawn from the participating domains (economics, political science, business, public policy, etc.). Covers topics including potential outcomes, causal graphs, randomized controlled trials, observational studies, instrumental variable estimation, and a contrast with machine learning techniques. Seeks to provide an intuitive understanding of the core concepts and techniques to help students produce and consume evidence of causal claims.


6.S079
6.S079 Software Systems for Data Science

()
Prereqs: (6.100A, 6.100B, and 6.1210) or permission of instructor
Units: 3-0-9

In this course we review the important role of semiconductor devices in patient monitoring and point of care. This includes technologies such as electrochemical, ultrasonic,magnetic, optical, and RF sensing modalities. We cover some of the basics of each device as well as physics and biology of device/human interaction.


BIORE: Biology restricted electives
1.018
1.018 Fundamentals of Ecology

()
Prereqs: none
Units: 4-0-8

Fundamentals of ecology, considering Earth as an integrated dynamic living system. Coevolution of the biosphere and geosphere, biogeochemical cycles, metabolic diversity, primary productivity, competition and the niche, trophic dynamics and food webs, population growth and limiting factors. Population modeling, global carbon cycle, climate change, geoengineering, theories of resource competition and mutualism, allometric scaling, ecological genomics, niche theory, human population growth. Applied ecology.


10.441
11.134
12.031
20.230
20.230 Immunology

()
Prereqs: 7.06
Units: 5-0-7

Comprehensive survey of molecular, genetic, and cellular aspects of the immune system. Topics include innate and adaptive immunity; cells and organs of the immune system; hematopoiesis; immunoglobulin, T cell receptor, and major histocompatibility complex (MHC) proteins and genes; development and functions of B and T lymphocytes; immune responses to infections and tumors; hypersensitivity, autoimmunity, and immunodeficiencies. Particular attention to the development and function of the immune system as a whole, as studied by modern methods and techniques. Students taking graduate version explore the subject in greater depth, including study of recent primary literature.


20.361
20.361 Molecular and Engineering Aspects of Biotechnology

()
Prereqs: (7.06 and (2.005, 3.012, 5.60, or 20.110)) or permission of instructor
Units: 4-0-8

Covers biological and bioengineering principles underlying the development and therapeutic use of recombinant proteins and stem cells; glycoengineering of recombinant proteins; normal and pathological signaling by growth factors and their receptors; receptor trafficking; monoclonal antibodies as therapeutics; protein pharmacology and delivery; stem cell-derived tissues as therapeutics; RNA therapeutics; combinatorial protein engineering; and new antitumor drugs.


5.08
5.08 Fundamentals of Chemical Biology

()
Prereqs: (GIR:BIOL, 5.13, and (5.07 or 7.05)) or permission of instructor
Units: 4-0-8

Spanning the fields of biology, chemistry, and engineering, this class introduces students to the principles of chemical biology and the application of chemical and physical methods and reagents to the study and manipulation of biological systems. Topics include nucleic acid structure, recognition, and manipulation; protein folding and stability, and proteostasis; bioorthogonal reactions and activity-based protein profiling; chemical genetics and small-molecule inhibitor screening; fluorescent probes for biological analysis and imaging; and unnatural amino acid mutagenesis. The class will also discuss the logic of dynamic post-translational modification reactions with an emphasis on chemical biology approaches for studying complex processes including glycosylation, phosphorylation, and lipidation. Students taking the graduate version are expected to explore the subject in greater depth.


6.47106.049
6.4710 Evolutionary Biology: Concepts, Models and Computation

()
Prereqs: (6.100A and 7.03) or permission of instructor
Units: 3-0-9

Explores and illustrates how evolution explains biology, with an emphasis on computational model building for analyzing evolutionary data. Covers key concepts of biological evolution, including adaptive evolution, neutral evolution, evolution of sex, genomic conflict, speciation, phylogeny and comparative methods, life's history, coevolution, human evolution, and evolution of disease.

7.08
7.08 Fundamentals of Chemical Biology

()
Prereqs: (GIR:BIOL, 5.13, and (5.07 or 7.05)) or permission of instructor
Units: 4-0-8

Spanning the fields of biology, chemistry, and engineering, this class introduces students to the principles of chemical biology and the application of chemical and physical methods and reagents to the study and manipulation of biological systems. Topics include nucleic acid structure, recognition, and manipulation; protein folding and stability, and proteostasis; bioorthogonal reactions and activity-based protein profiling; chemical genetics and small-molecule inhibitor screening; fluorescent probes for biological analysis and imaging; and unnatural amino acid mutagenesis. The class will also discuss the logic of dynamic post-translational modification reactions with an emphasis on chemical biology approaches for studying complex processes including glycosylation, phosphorylation, and lipidation. Students taking the graduate version are expected to explore the subject in greater depth.


7.093
7.093 Modern Biostatistics

()
Prereqs: 7.03 and 7.05
Units: 2-0-4

Provides a practical introduction to probability and statistics used in modern biology. Topics covered include discrete and continuous probability distributions, statistical modeling, hypothesis testing, independence, conditional probability, multiple test corrections, nonparametric methods, clustering, correlation, linear regression, principal components analysis with applications to high-throughput DNA sequencing, and image data analysis. Homework is in the R programming language, but prior programming experience is not required. Students taking the graduate version are expected to explore the subject in greater depth.

&7.094
7.094 Modern Computational Biology

()
Prereqs: 7.03 and 7.05
Units: 2-0-4

Introduces modern methods in computational biology, focusing on DNA/RNA/protein analysis. Topics include next-generation DNA sequencing and sequencing data analysis, RNA-seq (bulk and single-cell), and protein dynamics. Students taking the graduate version are expected to explore the subject in greater depth.


7.20
7.20 Human Physiology

()
Prereqs: 7.05
Units: 5-0-7

Comprehensive exploration of human physiology, emphasizing the molecular basis and applied aspects of organ function and regulation in health and disease. Includes a review of cell structure and function, as well as the mechanisms by which the endocrine and nervous systems integrate cellular metabolism. Special emphasis on examining the cardiovascular, pulmonary, gastrointestinal, and renal systems, as well as liver function, drug metabolism, and pharmacogenetics.


7.21
7.21 Microbial Physiology

()
Prereqs: 7.03 and 7.05
Units: 4-0-8

Biochemical properties of bacteria and other microorganisms that enable them to grow under a variety of conditions. Interaction between bacteria and bacteriophages. Genetic and metabolic regulation of enzyme action and enzyme formation. Structure and function of components of the bacterial cell envelope. Protein secretion with a special emphasis on its various roles in pathogenesis. Additional topics include bioenergetics, symbiosis, quorum sensing, global responses to DNA damage, and biofilms. Students taking the graduate version are expected to explore the subject in greater depth.


7.23
7.23 Immunology

()
Prereqs: 7.06
Units: 5-0-7

Comprehensive survey of molecular, genetic, and cellular aspects of the immune system. Topics include innate and adaptive immunity; cells and organs of the immune system; hematopoiesis; immunoglobulin, T cell receptor, and major histocompatibility complex (MHC) proteins and genes; development and functions of B and T lymphocytes; immune responses to infections and tumors; hypersensitivity, autoimmunity, and immunodeficiencies. Particular attention to the development and function of the immune system as a whole, as studied by modern methods and techniques. Students taking graduate version explore the subject in greater depth, including study of recent primary literature.


7.26
7.26 Molecular Basis of Infectious Disease

()
Prereqs: 7.06
Units: 4-0-8

Focuses on the principles of host-pathogen interactions with an emphasis on infectious diseases of humans. Presents key concepts of pathogenesis through the study of various human pathogens. Includes critical analysis and discussion of assigned readings. Students taking the graduate version are expected to explore the subject in greater depth.


7.27
7.27 Principles of Human Disease and Aging

()
Prereqs: 7.06
Units: 4-0-8

Covers modern approaches to human diseases and aging, emphasizing the molecular and cellular basis of genetic diseases, infectious diseases, aging, and cancer. Topics include the genetics of simple and complex traits; karyotypic analysis and positional cloning; genetic diagnosis; evolutionary determination of aging, genetic and molecular aspects of aging, HIV/AIDs and other infectious diseases; the roles of oncogenes and tumor suppressors; the interaction between genetics and environment; animal models of human disease, cancer, and aging; and treatment strategies for diseases and aging. Includes a paper describing novel treatment options for a specific disease chosen by each student.


7.28
7.28 Molecular Biology

()
Prereqs/[Coreqs]: 7.03; [7.05]
Units: 5-0-7

Detailed analysis of the biochemical mechanisms that control the maintenance, expression, and evolution of prokaryotic and eukaryotic genomes. Topics covered in lecture and readings of relevant literature include: gene regulation, DNA replication, genetic recombination, and mRNA translation. Logic of experimental design and data analysis emphasized. Presentations include both lectures and group discussions of representative papers from the literature. Students taking the graduate version are expected to explore the subject in greater depth.

7.29
7.29 Cellular and Molecular Neurobiology

()
Prereqs: 7.05 or 9.01
Units: 4-0-8

Introduction to the structure and function of the nervous system. Emphasizes the cellular properties of neurons and other excitable cells. Includes the structure and biophysical properties of excitable cells, synaptic transmission, neurochemistry, neurodevelopment, integration of information in simple systems, and detection and information coding during sensory transduction.


7.30
7.30 Fundamentals of Ecology

()
Prereqs: none
Units: 4-0-8

Fundamentals of ecology, considering Earth as an integrated dynamic living system. Coevolution of the biosphere and geosphere, biogeochemical cycles, metabolic diversity, primary productivity, competition and the niche, trophic dynamics and food webs, population growth and limiting factors. Population modeling, global carbon cycle, climate change, geoengineering, theories of resource competition and mutualism, allometric scaling, ecological genomics, niche theory, human population growth. Applied ecology.


7.31
7.31 Current Topics in Mammalian Biology: Medical Implications

()
Prereqs: 7.06 or permission of instructor
Units: 4-0-8

Covers recent advances in mammalian cell and developmental biology with particular emphasis on approaches that utilize mouse genetics. Combines formal lectures on selected topics with readings of original papers which are discussed in class. Major emphasis on the implications of mechanisms of human genetic diseases. Topics include early mammalian development; genomic imprinting; X inactivation; embryonic stem cells; nuclear reprogramming of somatic cells; cell migration; nervous system development; and central nervous system degenerative diseases such as Alzheimer's and Huntington's disease. Limited to 20.


7.32
7.32 Systems Biology

()
Prereqs: (18.03 and 18.05) or permission of instructor
Units: 3-0-9

Introduction to cellular and population-level systems biology with an emphasis on synthetic biology, modeling of genetic networks, cell-cell interactions, and evolutionary dynamics. Cellular systems include genetic switches and oscillators, network motifs, genetic network evolution, and cellular decision-making. Population-level systems include models of pattern formation, cell-cell communications, and evolutionary systems biology. Students taking graduate version explore the subject in more depth.


7.37
7.37 Molecular and Engineering Aspects of Biotechnology

()
Prereqs: (7.06 and (2.005, 3.012, 5.60, or 20.110)) or permission of instructor
Units: 4-0-8

Covers biological and bioengineering principles underlying the development and therapeutic use of recombinant proteins and stem cells; glycoengineering of recombinant proteins; normal and pathological signaling by growth factors and their receptors; receptor trafficking; monoclonal antibodies as therapeutics; protein pharmacology and delivery; stem cell-derived tissues as therapeutics; RNA therapeutics; combinatorial protein engineering; and new antitumor drugs.


7.371
7.371 Biological and Engineering Principles Underlying Novel Biotherapeutics

()
Prereqs: 7.06
Units: 4-0-8

Covers biological and bioengineering principles underlying the development and therapeutic use of recombinant proteins and immune cells. Special attention to monoclonal antibodies and engineered immune system cells as therapeutics; protein- and glyco- engineering to enhance protein function; protein pharmacology and delivery; nucleic acid- based biotherapeutics; generation of functional cells and tissues from embryonic stem cells and iPS cells; and immune cell-cancer cell interactions in cancer immunotherapy.


7.45
7.45 The Hallmarks of Cancer

()
Prereqs/[Coreqs]: [7.06]
Units: 4-0-8

Provides a comprehensive introduction to the fundamentals of cancer biology and cancer treatment. Topics include cancer genetics, genomics, and epigenetics; familial cancer syndromes; signal transduction, cell cycle control, and apoptosis; cancer metabolism; stem cells and cancer; metastasis; cancer immunology and immunotherapy; conventional and molecularly-targeted therapies; and early detection and prevention. Students taking graduate version complete additional assignments.


7.46
7.46 Building with Cells

()
Prereqs: 7.03 and 7.05
Units: 4-0-8

Focuses on fundamental principles of developmental biology by which cells build organs and organisms. Analyzes the pivotal role of stem cells in tissue maintenance or repair, and in treatment of disease. Explores how to integrate this knowledge with engineering tools to construct functional tissue structures. Students taking graduate version complete additional assignments

7.49
7.49 Developmental Neurobiology

()
Prereqs: 7.03, 7.05, 9.01, or permission of instructor
Units: 3-0-9

Considers molecular control of neural specification, formation of neuronal connections, construction of neural systems, and the contributions of experience to shaping brain structure and function. Topics include: neural induction and pattern formation, cell lineage and fate determination, neuronal migration, axon guidance, synapse formation and stabilization, activity-dependent development and critical periods, development of behavior. Students taking graduate version complete additional readings that will be addressed in their mid-term and final exams.


8.591
8.591 Systems Biology

()
Prereqs: (18.03 and 18.05) or permission of instructor
Units: 3-0-9

Introduction to cellular and population-level systems biology with an emphasis on synthetic biology, modeling of genetic networks, cell-cell interactions, and evolutionary dynamics. Cellular systems include genetic switches and oscillators, network motifs, genetic network evolution, and cellular decision-making. Population-level systems include models of pattern formation, cell-cell communication, and evolutionary systems biology. Students taking graduate version explore the subject in more depth.


9.09
9.18
HST.431
HST.431 Infections and Inequalities: Interdisciplinary Perspectives on Global Health

()
Prereqs: none
Units: 3-0-9

Examines case studies in infectious disease outbreaks to demonstrate how human health is a product of multiple determinants, such as biology, sociocultural and historical factors, politics, economic processes, and the environment. Analyzes how structural inequalities render certain populations vulnerable to illness and explores the moral and ethical dimensions of public health and clinical interventions to promote health. Limited to 25.


HST.540
HST.540 Human Physiology

()
Prereqs: 7.05
Units: 5-0-7

Comprehensive exploration of human physiology, emphasizing the molecular basis and applied aspects of organ function and regulation in health and disease. Includes a review of cell structure and function, as well as the mechanisms by which the endocrine and nervous systems integrate cellular metabolism. Special emphasis on examining the cardiovascular, pulmonary, gastrointestinal, and renal systems, as well as liver function, drug metabolism, and pharmacogenetics.


CIM2: EECS CI-M subjects
6.18006.033
6.1800 Computer Systems Engineering

()
Prereqs: 6.1910
Units: 5-1-6

Topics on the engineering of computer software and hardware systems: techniques for controlling complexity; strong modularity using client-server design, operating systems; performance, networks; naming; security and privacy; fault-tolerant systems, atomicity and coordination of concurrent activities, and recovery; impact of computer systems on society. Case studies of working systems and readings from the current literature provide comparisons and contrasts. Includes a single, semester-long design project. Students engage in extensive written communication exercises. Enrollment may be limited.


6.18506.052
6.1850 Computer Systems and Society

()
Prereqs: 6.1800
Units: 3-0-9

Explores the impact of computer systems on individual humans, society, and the environment. Examines large- and small-scale power structures that stem from low-level technical design decisions, the consequences of those structures on society, and how they can limit or provide access to certain technologies. Students learn to assess 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 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; and the environmental impact of proof-of-work-based systems such as Bitcoin. Enrollment may be limited.


6.20406.101
6.2040 Analog Electronics Laboratory

()
Prereqs: 6.2000
Units: 2-9-1

Experimental laboratory explores the design, construction, and debugging of analog electronic circuits. Lectures and laboratory projects in the first half of the course investigate the performance characteristics of semiconductor devices (diodes, BJTs, and MOSFETs) and functional analog building blocks, including single-stage amplifiers, op amps, small audio amplifier, filters, converters, sensor circuits, and medical electronics (ECG, pulse-oximetry). Projects involve design, implementation, and presentation in an environment similar to that of industry engineering design teams. Instruction and practice in written and oral communication provided. Opportunity to simulate real-world problems and solutions that involve tradeoffs and the use of engineering judgment.


6.20506.111
6.2050 Digital Systems Laboratory

()
Prereqs: 6.1910 or permission of instructor
Units: 3-7-2

Lab-intensive subject that investigates digital systems with a focus on FPGAs. Lectures and labs cover logic, flip flops, counters, timing, synchronization, finite-state machines, digital signal processing, communication protocols, and modern sensors. Prepares students for the design and implementation of a large-scale final project of their choice: games, music, digital filters, wireless communications, video, or graphics. Extensive use of System/Verilog for describing and implementing and verifying digital logic designs.


6.20606.115
6.2060 Microcomputer Project Laboratory

()
Prereqs: 6.1910, 6.2000, or 6.3000
Units: 3-6-3

Introduces analysis and design of embedded systems. Microcontrollers provide adaptation, flexibility, and real-time control. Emphasizes construction of complete systems, including a five-axis robot arm, a fluorescent lamp ballast, a tomographic imaging station (e.g., a CAT scan), and a simple calculator. Presents a wide range of basic tools, including software and development tools, programmable system on chip, peripheral components such as A/D converters, communication schemes, signal processing techniques, closed-loop digital feedback control, interface and power electronics, and modeling of electromechanical systems. Includes a sequence of assigned projects, followed by a final project of the student's choice, emphasizing creativity and uniqueness. Provides instruction in written and oral communication. To satisfy the independent inquiry component of this subject, students expand the scope of their laboratory project.

6.20616.1151
6.2061 Microcomputer Project Laboratory - Independent Inquiry

()
Prereqs: 6.1910, 6.2000, or 6.3000
Units: 3-9-3

Introduces analysis and design of embedded systems. Microcontrollers provide adaptation, flexibility, and real-time control. Emphasizes construction of complete systems, including a five-axis robot arm, a fluorescent lamp ballast, a tomographic imaging station (e.g., a CAT scan), and a simple calculator. Presents a wide range of basic tools, including software and development tools, programmable system on chip, peripheral components such as A/D converters, communication schemes, signal processing techniques, closed-loop digital feedback control, interface and power electronics, and modeling of electromechanical systems. Includes a sequence of assigned projects, followed by a final project of the student's choice, emphasizing creativity and uniqueness. Provides instruction in written and oral communication. Students taking independent inquiry version 6.2061 expand the scope of their laboratory project.


6.22206.131
6.2220 Power Electronics Laboratory

()
Prereqs: 6.2000 or 6.3100
Units: 3-6-3

Introduces the design and construction of power electronic circuits and motor drives. Laboratory exercises 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 include DC, induction, and permanent magnet motors, with drive considerations. Provides instruction in written and oral communication. Students taking independent inquiry version 6.2221 expand the scope of their laboratory project.


6.22216.1311
6.2221 Power Electronics Laboratory - Independent Inquiry

()
Prereqs: 6.2000 or 6.3000
Units: 3-9-3

Introduces the design and construction of power electronic circuits and motor drives. Laboratory exercises 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 include DC, induction, and permanent magnet motors, with drive considerations. Provides instruction in written and oral communication. To satisfy the independent inquiry component of this subject, students expand the scope of their laboratory project.


6.23706.161
6.2370 Modern Optics Project Laboratory

()
Prereqs: 6.3000
Units: 3-5-4

Lectures, laboratory exercises and projects on optical signal generation, transmission, detection, storage, processing and display. Topics include polarization properties of light; reflection and refraction; coherence and interference; Fraunhofer and Fresnel diffraction; holography; Fourier optics; coherent and incoherent imaging and signal processing systems; optical properties of materials; lasers and LEDs; electro-optic and acousto-optic light modulators; photorefractive and liquid-crystal light modulation; display technologies; optical waveguides and fiber-optic communication systems; photodetectors. Students may use this subject to find an advanced undergraduate project. Students engage in extensive oral and written communication exercises. Recommended prerequisite: 8.03.


6.26006.152
6.2600 Micro/Nano Processing Technology

()
Prereqs: GIR:CAL2, GIR:CHEM, GIR:PHY2, or permission of instructor
Units: 3-4-5

Introduces the theory and technology of micro/nano fabrication. Includes lectures and laboratory sessions on processing techniques: wet and dry etching, chemical and physical deposition, lithography, thermal processes, packaging, and device and materials characterization. Homework uses process simulation tools to build intuition about higher order effects. Emphasizes interrelationships between material properties and processing, device structure, and the electrical, mechanical, optical, chemical or biological behavior of devices. Students fabricate solar cells, and a choice of MEMS cantilevers or microfluidic mixers. Students formulate their own device idea, either based on cantilevers or mixers, then implement and test their designs in the lab. Students engage in extensive written and oral communication exercises. Course provides background for research work related to micro/nano fabrication. Enrollment limited.

6.42006.141
6.4200 Robotics: Science and Systems

()
Prereqs: ((1.00 or 6.100A) and (2.003, 6.1010, 6.1210, or 16.06)) or permission of instructor
Units: 2-6-4

Presents concepts, principles, and algorithmic foundations for robots and autonomous vehicles operating in the physical world. Topics include sensing, kinematics and dynamics, state estimation, computer vision, perception, learning, control, motion planning, and embedded system development. Students design and implement advanced algorithms on complex robotic platforms capable of agile autonomous navigation and real-time interaction with the physical word. Students engage in extensive written and oral communication exercises. Enrollment limited.


6.42106.800
6.4210 Robotic Manipulation

()
Prereqs: (6.100A and 6.3900) or permission of instructor
Units: 4-2-9

Introduces the fundamental algorithmic approaches for creating robot systems that can autonomously manipulate physical objects in unstructured environments such as homes and restaurants. Topics include perception (including approaches based on deep learning and approaches based on 3D geometry), planning (robot kinematics and trajectory generation, collision-free motion planning, task-and-motion planning, and planning under uncertainty), as well as dynamics and control (both model-based and learning-based). Students taking graduate version complete additional assignments. Students engage in extensive written and oral communication exercises.


6.45906.805
6.4590 Foundations of Information Policy

()
Prereqs: Permission of instructor
Units: 3-0-9

Studies the growth of computer and communications technology and the new legal and ethical challenges that reflect tensions between individual rights and societal needs. Topics include computer crime; intellectual property restrictions on software; encryption, privacy, and national security; academic freedom and free speech. Students meet and question technologists, activists, law enforcement agents, journalists, and legal experts. Instruction and practice in oral and written communication provided. Students taking graduate version complete additional assignments. Enrollment limited.


6.48606.025
6.4860 Medical Device Design

()
Prereqs: 2.008, 6.2040, 6.2050, 6.2060, 22.071, or permission of instructor
Units: 3-3-6

Provides an intense project-based learning experience around the design of medical devices with foci ranging from mechanical to electro mechanical to electronics. Projects motivated by real-world clinical challenges provided by sponsors and clinicians who also help mentor teams. Covers the design process, project management, and fundamentals of mechanical and electrical circuit and sensor design. Students work in small teams to execute a substantial term project, with emphasis placed upon developing creative designs -- via a deterministic design process -- that are developed and optimized using analytical techniques. Includes mandatory lab. Instruction and practice in written and oral communication provided. Students taking graduate version complete additional assignments. Enrollment limited.


6.48806.129
6.4880 Biological Circuit Engineering Laboratory

()
Prereqs: GIR:BIOL and GIR:CAL2
Units: 2-8-2

Students assemble individual genes and regulatory elements into larger-scale circuits; they experimentally characterize these circuits in yeast cells using quantitative techniques, including flow cytometry, and model their results computationally. Emphasizes concepts and techniques to perform independent experimental and computational synthetic biology research. Discusses current literature and ongoing research in the field of synthetic biology. Instruction and practice in oral and written communication provided. Enrollment limited.

6.83016.819
6.8301 Advances in Computer Vision

()
Prereqs: (6.1200 or 6.3700) and (18.06 or 18.C06)
Units: 4-0-11

Advanced topics in computer vision with a focus on the use of machine learning techniques and applications in graphics and human-computer interface. Covers image representations, texture models, structure-from-motion algorithms, Bayesian techniques, object and scene recognition, tracking, shape modeling, and image databases. Applications may include face recognition, multimodal interaction, interactive systems, cinematic special effects, and photorealistic rendering. Includes instruction and practice in written and oral communication. Students taking graduate version complete additional assignments.


6.86116.806
6.8611 Quantitative Methods for Natural Language Processing

()
Prereqs: 6.3900 and (18.06 or 18.C06)
Units: 4-0-11

Introduces the study of human language from a computational perspective, including syntactic, semantic and discourse processing models. Emphasizes machine learning methods and algorithms. Uses these methods and models in applications such as syntactic parsing, information extraction, statistical machine translation, dialogue systems. Instruction and practice in oral and written communication provided. Students taking graduate version complete additional assignments.


6.90306.163
6.9030 Strobe Project Laboratory

(,)
Prereqs: GIR:PHY2 or permission of instructor
Units: 2-8-2

Application of electronic flash sources to measurement and photography. First half covers fundamentals of photography and electronic flashes, including experiments on application of electronic flash to photography, stroboscopy, motion analysis, and high-speed videography. Students write four extensive lab reports. In the second half, students work in small groups to select, design, and execute independent projects in measurement or photography that apply learned techniques. Project planning and execution skills are discussed and developed over the term. Students engage in extensive written and oral communication exercises. Enrollment limited.


6.UAR
6.UAR Seminar in Undergraduate Advanced Research

(,)
Prereqs: Permission of instructor
Units: 2-0-4

Instruction in effective undergraduate research, including choosing and developing a research topic, surveying previous work and publications, research topics in EECS and the School of Engineering, industry best practices, design for robustness, technical presentation, authorship and collaboration, and ethics. Students engage in extensive written and oral communication exercises, in the context of an approved advanced research project. A total of 12 units of credit is awarded for completion of the fall and subsequent spring term offerings. Application required; consult EECS SuperUROP website for more information.


6.UAT
6.UAT Oral Communication

()
Prereqs: none
Units: 3-0-6

Provides instruction in aspects of effective technical oral presentations and exposure to communication skills useful in a workplace setting. Students create, give and revise a number of presentations of varying length targeting a range of different audiences. Enrollment may be limited.


COMPBIO: Restricted electives in Computational Biology
18.418
18.418 Topics in Computational Molecular Biology

()
Prereqs: 6.8701, 18.417, or permission of instructor
Units: 3-0-9

Covers current research topics in computational molecular biology. Recent research papers presented from leading conferences such as the International Conference on Computational Molecular Biology (RECOMB) and the Conference on Intelligent Systems for Molecular Biology (ISMB). Topics include original research (both theoretical and experimental) in comparative genomics, sequence and structure analysis, molecular evolution, proteomics, gene expression, transcriptional regulation, biological networks, drug discovery, and privacy. Recent research by course participants also covered. Participants will be expected to present individual projects to the class.


6.47106.049
6.4710 Evolutionary Biology: Concepts, Models and Computation

()
Prereqs: (6.100A and 7.03) or permission of instructor
Units: 3-0-9

Explores and illustrates how evolution explains biology, with an emphasis on computational model building for analyzing evolutionary data. Covers key concepts of biological evolution, including adaptive evolution, neutral evolution, evolution of sex, genomic conflict, speciation, phylogeny and comparative methods, life's history, coevolution, human evolution, and evolution of disease.


6.87016.047
6.8701 Computational Biology: Genomes, Networks, Evolution

()
Prereqs: (GIR:BIOL, 6.1210, and 6.3700) or permission of instructor
Units: 3-0-9

Covers the algorithmic and machine learning foundations of computational biology, combining theory with practice. Principles of algorithm design, influential problems and techniques, and analysis of large-scale biological datasets. Topics include (a) genomes: sequence analysis, gene finding, RNA folding, genome alignment and assembly, database search; (b) networks: gene expression analysis, regulatory motifs, biological network analysis; (c) evolution: comparative genomics, phylogenetics, genome duplication, genome rearrangements, evolutionary theory. These are coupled with fundamental algorithmic techniques including: dynamic programming, hashing, Gibbs sampling, expectation maximization, hidden Markov models, stochastic context-free grammars, graph clustering, dimensionality reduction, Bayesian networks.

6.87116.802
6.8711 Computational Systems Biology: Deep Learning in the Life Sciences

()
Prereqs: (7.05 and (6.100B or 6.9080)) 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.


7.093
7.093 Modern Biostatistics

()
Prereqs: 7.03 and 7.05
Units: 2-0-4

Provides a practical introduction to probability and statistics used in modern biology. Topics covered include discrete and continuous probability distributions, statistical modeling, hypothesis testing, independence, conditional probability, multiple test corrections, nonparametric methods, clustering, correlation, linear regression, principal components analysis with applications to high-throughput DNA sequencing, and image data analysis. Homework is in the R programming language, but prior programming experience is not required. Students taking the graduate version are expected to explore the subject in greater depth.

&7.094
7.094 Modern Computational Biology

()
Prereqs: 7.03 and 7.05
Units: 2-0-4

Introduces modern methods in computational biology, focusing on DNA/RNA/protein analysis. Topics include next-generation DNA sequencing and sequencing data analysis, RNA-seq (bulk and single-cell), and protein dynamics. Students taking the graduate version are expected to explore the subject in greater depth.


HST.504
HST.504 Topics in Computational Molecular Biology

()
Prereqs: 6.8701, 18.417, or permission of instructor
Units: 3-0-9

Covers current research topics in computational molecular biology. Recent research papers presented from leading conferences such as the International Conference on Computational Molecular Biology (RECOMB) and the Conference on Intelligent Systems for Molecular Biology (ISMB). Topics include original research (both theoretical and experimental) in comparative genomics, sequence and structure analysis, molecular evolution, proteomics, gene expression, transcriptional regulation, biological networks, drug discovery, and privacy. Recent research by course participants also covered. Participants will be expected to present individual projects to the class.


CS12: CS subjects at levels 1 and 2
6.10106.009
6.1010 Fundamentals of Programming

(,)
Prereqs: 6.100A
Units: 2-4-6

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.  Lab component consists of software design, construction, and implementation of design. Enrollment may be limited.


6.10206.031
6.1020 Software Construction

()
Prereqs: 6.1010
Units: 3-0-12

Introduces fundamental principles and techniques of software development: how to write software that is safe from bugs, easy to understand, and ready for change. Topics include specifications and invariants; testing, test-case generation, and coverage; abstract data types and representation independence; design patterns for object-oriented programming; concurrent programming, including message passing and shared memory concurrency, and defending against races and deadlock; and functional programming with immutable data and higher-order functions. Includes weekly programming exercises and larger group programming projects.


6.12106.006
6.1210 Introduction to Algorithms

(,)
Prereqs: 6.100A and (6.120A or 6.1200)
Units: 5-0-7

Introduction to mathematical modeling of computational problems, as well as common algorithms, algorithmic paradigms, and data structures used to solve these problems. Emphasizes the relationship between algorithms and programming, and introduces basic performance measures and analysis techniques for these problems. Enrollment may be limited.


6.12206.046
6.1220 Design and Analysis of Algorithms

(,)
Prereqs: 6.1200 and 6.1210
Units: 4-0-8

Techniques for the design and analysis of efficient algorithms, emphasizing methods useful in practice. Topics include sorting; search trees, heaps, and hashing; divide-and-conquer; dynamic programming; greedy algorithms; amortized analysis; graph algorithms; and shortest paths. Advanced topics may include network flow; computational geometry; number-theoretic algorithms; polynomial and matrix calculations; caching; and parallel computing.

6.14006.045
6.1400 Computability and Complexity Theory

()
Prereqs: (6.1200 and 6.1210) or permission of instructor
Units: 4-0-8

Mathematical introduction to the theory of computing. Rigorously explores what kinds of tasks can be efficiently solved with computers by way of finite automata, circuits, Turing machines, and communication complexity, introducing students to some major open problems in mathematics. Builds skills in classifying computational tasks in terms of their difficulty. Discusses other fundamental issues in computing, including the Halting Problem, the Church-Turing Thesis, the P versus NP problem, and the power of randomness.  


6.18006.033
6.1800 Computer Systems Engineering

()
Prereqs: 6.1910
Units: 5-1-6

Topics on the engineering of computer software and hardware systems: techniques for controlling complexity; strong modularity using client-server design, operating systems; performance, networks; naming; security and privacy; fault-tolerant systems, atomicity and coordination of concurrent activities, and recovery; impact of computer systems on society. Case studies of working systems and readings from the current literature provide comparisons and contrasts. Includes a single, semester-long design project. Students engage in extensive written communication exercises. Enrollment may be limited.


6.41006.034
6.4100 Artificial Intelligence

()
Prereqs: 6.100A
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.


DLAB2: Advanced departmental lab. A subject provides a DLAB2 experience if at least 40% of the grade in a 12-unit subject is based on laboratory assignments. A laboratory assignment involves a question that is answered through empirical investigation; it may include the design, construction, and testing of a physical or software artifact.
6.10406.170
6.1040 Software Design

()
Prereqs: 6.1020 and 6.1200
Units: 4-0-14

Provides design-focused instruction on how to build complex software applications. Design topics include classic human-computer interaction (HCI) design tactics (need finding, heuristic evaluation, prototyping, user testing), conceptual design (inventing, modeling and evaluating constituent concepts), social and ethical implications, abstract data modeling, and visual design. Implementation topics include reactive front-ends, web services, and databases. Students work both on individual projects and a larger team project in which they design and build full-stack web applications.


6.10606.172
6.1060 Software Performance Engineering

()
Prereqs: 6.1020, 6.1210, and 6.1910
Units: 3-12-3

Project-based introduction to building efficient, high-performance and scalable software systems. Topics include performance analysis, algorithmic techniques for high performance, instruction-level optimizations, vectorization, cache and memory hierarchy optimization, and parallel programming.


6.11006.035
6.1100 Computer Language Engineering

()
Prereqs: 6.1020 and 6.1910
Units: 4-4-4

Analyzes issues associated with the implementation of higher-level programming languages. Fundamental concepts, functions, and structures of compilers. The interaction of theory and practice. Using tools in building software. Includes a multi-person project on compiler design and implementation.


6.18206.808
6.1820 Mobile and Sensor Computing

()
Prereqs: 6.1800 or permission of instructor
Units: 3-0-9

Focuses on "Internet of Things" (IoT) systems and technologies, sensing, computing, and communication. Explores fundamental design and implementation issues in the engineering of mobile and sensor computing systems. Topics include battery-free sensors, seeing through wall, robotic sensors, vital sign sensors (breathing, heartbeats, emotions), sensing in cars and autonomous vehicles, subsea IoT, sensor security, positioning technologies (including GPS and indoor WiFi), inertial sensing (accelerometers, gyroscopes, inertial measurement units, dead-reckoning), embedded and distributed system architectures, sensing with radio signals, sensing with microphones and cameras, wireless sensor networks, embedded and distributed system architectures, mobile libraries and APIs to sensors, and application case studies. Includes readings from research literature, as well as laboratory assignments and a significant term project.


6.19206.175
6.1920 Constructive Computer Architecture

()
Prereqs: 6.1910
Units: 3-8-1

Illustrates a constructive (as opposed to a descriptive) approach to computer architecture. Topics include combinational and pipelined arithmetic-logic units (ALU), in-order pipelined microarchitectures, branch prediction, blocking and unblocking caches, interrupts, virtual memory support, cache coherence and multicore architectures. Labs in a modern Hardware Design Language (HDL) illustrate various aspects of microprocessor design, culminating in a term project in which students present a multicore design running on an FPGA board.


6.20406.101
6.2040 Analog Electronics Laboratory

()
Prereqs: 6.2000
Units: 2-9-1

Experimental laboratory explores the design, construction, and debugging of analog electronic circuits. Lectures and laboratory projects in the first half of the course investigate the performance characteristics of semiconductor devices (diodes, BJTs, and MOSFETs) and functional analog building blocks, including single-stage amplifiers, op amps, small audio amplifier, filters, converters, sensor circuits, and medical electronics (ECG, pulse-oximetry). Projects involve design, implementation, and presentation in an environment similar to that of industry engineering design teams. Instruction and practice in written and oral communication provided. Opportunity to simulate real-world problems and solutions that involve tradeoffs and the use of engineering judgment.


6.20506.111
6.2050 Digital Systems Laboratory

()
Prereqs: 6.1910 or permission of instructor
Units: 3-7-2

Lab-intensive subject that investigates digital systems with a focus on FPGAs. Lectures and labs cover logic, flip flops, counters, timing, synchronization, finite-state machines, digital signal processing, communication protocols, and modern sensors. Prepares students for the design and implementation of a large-scale final project of their choice: games, music, digital filters, wireless communications, video, or graphics. Extensive use of System/Verilog for describing and implementing and verifying digital logic designs.


6.20606.115
6.2060 Microcomputer Project Laboratory

()
Prereqs: 6.1910, 6.2000, or 6.3000
Units: 3-6-3

Introduces analysis and design of embedded systems. Microcontrollers provide adaptation, flexibility, and real-time control. Emphasizes construction of complete systems, including a five-axis robot arm, a fluorescent lamp ballast, a tomographic imaging station (e.g., a CAT scan), and a simple calculator. Presents a wide range of basic tools, including software and development tools, programmable system on chip, peripheral components such as A/D converters, communication schemes, signal processing techniques, closed-loop digital feedback control, interface and power electronics, and modeling of electromechanical systems. Includes a sequence of assigned projects, followed by a final project of the student's choice, emphasizing creativity and uniqueness. Provides instruction in written and oral communication. To satisfy the independent inquiry component of this subject, students expand the scope of their laboratory project.


6.20616.1151
6.2061 Microcomputer Project Laboratory - Independent Inquiry

()
Prereqs: 6.1910, 6.2000, or 6.3000
Units: 3-9-3

Introduces analysis and design of embedded systems. Microcontrollers provide adaptation, flexibility, and real-time control. Emphasizes construction of complete systems, including a five-axis robot arm, a fluorescent lamp ballast, a tomographic imaging station (e.g., a CAT scan), and a simple calculator. Presents a wide range of basic tools, including software and development tools, programmable system on chip, peripheral components such as A/D converters, communication schemes, signal processing techniques, closed-loop digital feedback control, interface and power electronics, and modeling of electromechanical systems. Includes a sequence of assigned projects, followed by a final project of the student's choice, emphasizing creativity and uniqueness. Provides instruction in written and oral communication. Students taking independent inquiry version 6.2061 expand the scope of their laboratory project.

6.20906.301
6.2090 Solid-State Circuits

()
Prereqs: 6.2040, 6.2080, or permission of instructor
Units: 3-2-7

Fosters deep understanding and intuition that is crucial in innovating analog circuits and optimizing the whole system in bipolar junction transistor (BJT) and metal oxide semiconductor (MOS) technologies. Covers both theory and real-world applications of basic amplifier structures, operational amplifiers, temperature sensors, bandgap references. Covers topics such as noise, linearity and stability. Homework and labs give students access to CAD/EDA tools to design and analyze analog circuits. Provides practical experience through lab exercises, including a broadband amplifier design and characterization. Students taking graduate version complete additional assignments.


6.20926.321
6.2092 Solid-State Circuits

()
Prereqs: 6.2040, 6.2080, or permission of instructor
Units: 3-2-7

Fosters deep understanding and intuition that is crucial in innovating analog circuits and optimizing the whole system in bipolar junction transistor (BJT) and metal oxide semiconductor (MOS) technologies. Covers both theory and real-world applications of basic amplifier structures, operational amplifiers, temperature sensors, bandgap references. Covers topics such as noise, linearity and stability. Homework and labs give students access to CAD/EDA tools to design and analyze analog circuits. Provides practical experience through lab exercises, including a broadband amplifier design and characterization. Students taking graduate version complete additional assignments.


6.22206.131
6.2220 Power Electronics Laboratory

()
Prereqs: 6.2000 or 6.3100
Units: 3-6-3

Introduces the design and construction of power electronic circuits and motor drives. Laboratory exercises 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 include DC, induction, and permanent magnet motors, with drive considerations. Provides instruction in written and oral communication. Students taking independent inquiry version 6.2221 expand the scope of their laboratory project.


6.22216.1311
6.2221 Power Electronics Laboratory - Independent Inquiry

()
Prereqs: 6.2000 or 6.3000
Units: 3-9-3

Introduces the design and construction of power electronic circuits and motor drives. Laboratory exercises 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 include DC, induction, and permanent magnet motors, with drive considerations. Provides instruction in written and oral communication. To satisfy the independent inquiry component of this subject, students expand the scope of their laboratory project.


6.23706.161
6.2370 Modern Optics Project Laboratory

()
Prereqs: 6.3000
Units: 3-5-4

Lectures, laboratory exercises and projects on optical signal generation, transmission, detection, storage, processing and display. Topics include polarization properties of light; reflection and refraction; coherence and interference; Fraunhofer and Fresnel diffraction; holography; Fourier optics; coherent and incoherent imaging and signal processing systems; optical properties of materials; lasers and LEDs; electro-optic and acousto-optic light modulators; photorefractive and liquid-crystal light modulation; display technologies; optical waveguides and fiber-optic communication systems; photodetectors. Students may use this subject to find an advanced undergraduate project. Students engage in extensive oral and written communication exercises. Recommended prerequisite: 8.03.


6.24106.157
6.2410 Quantum Engineering Platforms

()
Prereqs: 6.2400, 6.6400, 18.435, or (8.04 and 8.05)
Units: 1-5-6

Provides practical knowledge and quantum engineering experience with several physical platforms for quantum computation, communication, and sensing, including photonics, superconducting qubits, and trapped ions. Labs include both a hardware component — to gain experience with challenges, design, and non-idealities — and a cloud component to run algorithms on state of the art commercial systems. Use entangled photons to communicate securely (quantum key distribution). Run quantum algorithms on trapped ion and superconducting quantum computers. 


6.25406.015
6.2540 Nanotechnology: From Atoms to Systems

()
Prereqs: GIR:PHY2
Units: 2-3-7

Introduces the fundamentals of applied quantum mechanics, materials science, and fabrication skills needed to design, engineer, and build emerging nanodevices with diverse applications in energy, memory, display, communications, and sensing. Focuses on the application and outlines the full progression from the fundamentals to the implemented device and functional technology. Closely integrates lectures with design-oriented laboratory modules. 


6.26006.152
6.2600 Micro/Nano Processing Technology

()
Prereqs: GIR:CAL2, GIR:CHEM, GIR:PHY2, or permission of instructor
Units: 3-4-5

Introduces the theory and technology of micro/nano fabrication. Includes lectures and laboratory sessions on processing techniques: wet and dry etching, chemical and physical deposition, lithography, thermal processes, packaging, and device and materials characterization. Homework uses process simulation tools to build intuition about higher order effects. Emphasizes interrelationships between material properties and processing, device structure, and the electrical, mechanical, optical, chemical or biological behavior of devices. Students fabricate solar cells, and a choice of MEMS cantilevers or microfluidic mixers. Students formulate their own device idea, either based on cantilevers or mixers, then implement and test their designs in the lab. Students engage in extensive written and oral communication exercises. Course provides background for research work related to micro/nano fabrication. Enrollment limited.


6.31006.302
6.3100 Dynamical System Modeling and Control Design

(,)
Prereqs: GIR:PHY2 and (18.06 or 18.C06)
Units: 4-4-4

A learn-by-design introduction to modeling and control of discrete- and continuous-time systems, from intuition-building analytical techniques to more computational and data-centric strategies. Topics include: linear difference/differential equations (natural frequencies, transfer functions); controller metrics (stability, tracking, disturbance rejection); analytical techniques (PID, root-loci, lead-lag, phase margin); computational strategies (state-space, eigen-placement, LQR); and data-centric approaches (state estimation, regression, and identification). Concepts are introduced with lectures and online problems, and then mastered during weekly labs. In lab, students model, design, test, and explain systems and controllers involving sensors, actuators, and a microcontroller (e.g., optimizing thrust-driven positioners or stabilizing magnetic levitators). Students taking graduate version complete additional problems and labs.

6.31026.320
6.3102 Dynamical System Modeling and Control Design

(,)
Prereqs: GIR:PHY2 and (18.06 or 18.C06)
Units: 4-4-4

A learn-by-design introduction to modeling and control of discrete- and continuous-time systems, from intuition-building analytical techniques to more computational and data-centric strategies. Topics include: linear difference/differential equations (natural frequencies, transfer functions); controller metrics (stability, tracking, disturbance rejection); analytical techniques (PID, root-loci, lead-lag, phase margin); computational strategies (state-space, eigen-placement, LQR); and data-centric approaches (state estimation, regression and identification). Concepts are introduced with lectures and on-line problems, and then mastered during weekly labs. In lab, students model, design, test and explain systems and controllers involving sensors, actuators, and a microcontroller (e.g. optimizing thrust-driven positioners or stabilizing magnetic levitators). Students in the graduate version complete additional problems and labs.


6.42006.141
6.4200 Robotics: Science and Systems

()
Prereqs: ((1.00 or 6.100A) and (2.003, 6.1010, 6.1210, or 16.06)) or permission of instructor
Units: 2-6-4

Presents concepts, principles, and algorithmic foundations for robots and autonomous vehicles operating in the physical world. Topics include sensing, kinematics and dynamics, state estimation, computer vision, perception, learning, control, motion planning, and embedded system development. Students design and implement advanced algorithms on complex robotic platforms capable of agile autonomous navigation and real-time interaction with the physical word. Students engage in extensive written and oral communication exercises. Enrollment limited.


6.44006.837
6.4400 Computer Graphics

()
Prereqs: 6.1010 and (18.06 or 18.C06)
Units: 3-0-9

Introduction to computer graphics algorithms, software and hardware. Topics include ray tracing, the graphics pipeline, transformations, texture mapping, shadows, sampling, global illumination, splines, animation and color.


6.44206.807
6.4420 Computational Design and Fabrication

()
Prereqs: GIR:CAL2 and (6.1010 or permission of instructor)
Units: 3-0-9

Introduces computational aspects of computer-aided design and manufacturing. Explores relevant methods in the context of additive manufacturing (e.g., 3D printing). Topics include computer graphics (geometry modeling, solid modeling, procedural modeling), physically-based simulation (kinematics, finite element method), 3D scanning/geometry processing, and an overview of 3D fabrication methods. Exposes students to the latest research in computational fabrication. Students taking the graduate version complete additional assignments.


6.45506.185
6.4550 Interactive Music Systems

(,)
Prereqs: (6.1010 and 21M.301) or permission of instructor
Units: 3-0-9

Explores audio synthesis, musical structure, human computer interaction (HCI), and visual presentation for the creation of interactive musical experiences. Topics include audio synthesis; mixing and looping; MIDI sequencing; generative composition; motion sensors; music games; and graphics for UI, visualization, and aesthetics. Includes weekly programming assignments in python. Teams build an original, dynamic, and engaging interactive music system for their final project. Students taking graduate version complete different assignments. Limited to 36.


6.45706.073
6.4570 Creating Video Games

()
Prereqs: 6.100A or CMS.301
Units: 3-3-6

Introduces students to the complexities of working in small, multidisciplinary teams to develop video games. Covers creative design and production methods, stressing design iteration and regular testing across all aspects of game development (design, visual arts, music, fiction, and programming). Assumes a familiarity with current video games, and the ability to discuss games critically. Previous experience in audio design, visual arts, or project management recommended. Limited to 36.


6.48606.025
6.4860 Medical Device Design

()
Prereqs: 2.008, 6.2040, 6.2050, 6.2060, 22.071, or permission of instructor
Units: 3-3-6

Provides an intense project-based learning experience around the design of medical devices with foci ranging from mechanical to electro mechanical to electronics. Projects motivated by real-world clinical challenges provided by sponsors and clinicians who also help mentor teams. Covers the design process, project management, and fundamentals of mechanical and electrical circuit and sensor design. Students work in small teams to execute a substantial term project, with emphasis placed upon developing creative designs -- via a deterministic design process -- that are developed and optimized using analytical techniques. Includes mandatory lab. Instruction and practice in written and oral communication provided. Students taking graduate version complete additional assignments. Enrollment limited.


6.48806.129
6.4880 Biological Circuit Engineering Laboratory

()
Prereqs: GIR:BIOL and GIR:CAL2
Units: 2-8-2

Students assemble individual genes and regulatory elements into larger-scale circuits; they experimentally characterize these circuits in yeast cells using quantitative techniques, including flow cytometry, and model their results computationally. Emphasizes concepts and techniques to perform independent experimental and computational synthetic biology research. Discusses current literature and ongoing research in the field of synthetic biology. Instruction and practice in oral and written communication provided. Enrollment limited.


6.50816.816
6.5081 Multicore Programming

()
Prereqs: 6.1210
Units: 4-0-8

Introduces principles and core techniques for programming multicore machines. Topics include locking, scalability, concurrent data structures, multiprocessor scheduling, load balancing, and state-of-the-art synchronization techniques, such as transactional memory. Includes sequence of programming assignments on a large multicore machine, culminating with the design of a highly concurrent application. Students taking graduate version complete additional assignments.

6.83016.819
6.8301 Advances in Computer Vision

()
Prereqs: (6.1200 or 6.3700) and (18.06 or 18.C06)
Units: 4-0-11

Advanced topics in computer vision with a focus on the use of machine learning techniques and applications in graphics and human-computer interface. Covers image representations, texture models, structure-from-motion algorithms, Bayesian techniques, object and scene recognition, tracking, shape modeling, and image databases. Applications may include face recognition, multimodal interaction, interactive systems, cinematic special effects, and photorealistic rendering. Includes instruction and practice in written and oral communication. Students taking graduate version complete additional assignments.


6.84206.839
6.8420 Computational Design and Fabrication

()
Prereqs: GIR:CAL2 and (6.1010 or permission of instructor)
Units: 3-0-9

Introduces computational aspects of computer-aided design and manufacturing. Explores relevant methods in the context of additive manufacturing (e.g., 3D printing). Topics include computer graphics (geometry modeling, solid modeling, procedural modeling), physically-based simulation (kinematics, finite element method), 3D scanning/geometry processing, and an overview of 3D fabrication methods. Exposes students to the latest research in computational fabrication. Students taking graduate version complete additional assignments.


6.86116.806
6.8611 Quantitative Methods for Natural Language Processing

()
Prereqs: 6.3900 and (18.06 or 18.C06)
Units: 4-0-11

Introduces the study of human language from a computational perspective, including syntactic, semantic and discourse processing models. Emphasizes machine learning methods and algorithms. Uses these methods and models in applications such as syntactic parsing, information extraction, statistical machine translation, dialogue systems. Instruction and practice in oral and written communication provided. Students taking graduate version complete additional assignments.


6.87016.047
6.8701 Computational Biology: Genomes, Networks, Evolution

()
Prereqs: (GIR:BIOL, 6.1210, and 6.3700) or permission of instructor
Units: 3-0-9

Covers the algorithmic and machine learning foundations of computational biology, combining theory with practice. Principles of algorithm design, influential problems and techniques, and analysis of large-scale biological datasets. Topics include (a) genomes: sequence analysis, gene finding, RNA folding, genome alignment and assembly, database search; (b) networks: gene expression analysis, regulatory motifs, biological network analysis; (c) evolution: comparative genomics, phylogenetics, genome duplication, genome rearrangements, evolutionary theory. These are coupled with fundamental algorithmic techniques including: dynamic programming, hashing, Gibbs sampling, expectation maximization, hidden Markov models, stochastic context-free grammars, graph clustering, dimensionality reduction, Bayesian networks.


6.88016.026
6.8801 Biomedical Signal and Image Processing

()
Prereqs: (6.3700 or permission of instructor) and (2.004, 6.3000, 16.002, or 18.085)
Units: 3-1-8

Fundamentals of digital signal processing with emphasis on problems in biomedical research and clinical medicine. Basic principles and algorithms for processing both deterministic and random signals. Topics include data acquisition, imaging, filtering, coding, feature extraction, and modeling. Lab projects, performed in MATLAB, provide practical experience in processing physiological data, with examples from cardiology, speech processing, and medical imaging. Lectures cover signal processing topics relevant to the lab exercises, as well as background on the biological signals processed in the labs. Students taking graduate version complete additional assignments.


6.90006.010
6.9000 Engineering for Impact

()
Prereqs: 6.1910, 6.2000, and 6.3100
Units: 2-3-7

Students work in large teams to engineer hardware/software systems that solve important problems in society. Topics include requirements, specifications, system design and partitioning, detailed engineering design, prototyping and implementation, test and verification, and the ethical implications of these choices. Explores case studies of existing hardware/software systems to understand implications of different system design choices. Teams design and build functional prototypes of useful systems. Grading is based on individual- and team-based elements. Enrollment may be limited due to staffing and space requirements.


6.90306.163
6.9030 Strobe Project Laboratory

(,)
Prereqs: GIR:PHY2 or permission of instructor
Units: 2-8-2

Application of electronic flash sources to measurement and photography. First half covers fundamentals of photography and electronic flashes, including experiments on application of electronic flash to photography, stroboscopy, motion analysis, and high-speed videography. Students write four extensive lab reports. In the second half, students work in small groups to select, design, and execute independent projects in measurement or photography that apply learned techniques. Project planning and execution skills are discussed and developed over the term. Students engage in extensive written and oral communication exercises. Enrollment limited.


6.C35
6.C35 Interactive Data Visualization and Society

()
Prereqs: none
Units: 3-1-8

Covers the design, ethical, and technical skills for creating effective visualizations. Short assignments build familiarity with the data analysis and visualization design process. Weekly lab sessions present coding and technical skills. A final project provides experience working with real-world big data, provided by external partners, in order to expose and communicate insights about societal issues. Students taking graduate version complete additional assignments. Enrollment limited. Enrollment limited.


6.S046
6.S046 Silicon Photonics

()
Prereqs: 6.2300 or 8.07
Units: 3-0-9

[Meets with 6.S976] Covers the foundational concepts behind silicon photonics based in electromagnetics, optics, and device physics; the design of silicon-photonics-based devices (including waveguides, couplers, splitters, resonators, antennas, modulators, detectors, and lasers) using both theoretical analysis and numerical simulation tools; the engineering of silicon-photonics-based circuits and systems with a focus on a variety of applications areas (spanning computing, communications, sensing, quantum, displays, and biophotonics); the development of silicon-photonics-based platforms, including fabrication and materials considerations; and the characterization of these silicon-photonics-based devices and systems through hands-on laboratory demonstrations and projects. Students taking graduate version complete additional assignments.


ECONDS: Economics electives in data science
14.20
14.20 Industrial Organization: Competitive Strategy and Public Policy

()
Prereqs: 14.01
Units: 4-0-8

Analyzes the current debate over the rise of monopolies, the strategic behavior and performance of firms in imperfectly competitive markets, and the role of competition policy. Topics include monopoly power; pricing, product choice, and innovation decisions by firms in oligopoly markets; static and dynamic measurement of market performance; and incentives in organizations. Requires regular participation in class discussion and teamwork in a competitive strategy game. Students taking graduate version complete additional assignments.


14.27
14.27 Economics and E-Commerce

()
Prereqs: 14.01 and (6.3700 or 14.30)
Units: 4-0-8

Uses theoretical economic models and empirical evidence to help understand the growth and future of e-commerce. Economic models help frame class discussions of, among other topics, content provision, privacy, piracy, sales taxation, group purchasing, price search, and advertising on the internet. Empirical project and paper required. Students taking graduate version complete additional assignments.


14.36
14.36 Advanced Econometrics

()
Prereqs: 14.32 or permission of instructor
Units: 4-0-8

Advanced treatment of the core empirical strategies used to answer causal questions in applied microeconometric research. Covers extensions and innovations relating to econometric applications of regression, machine learning, instrumental variables, differences-in-differences and event-study models, regression discontinuity designs, synthetic controls, and statistical inference.  Students taking graduate version complete an additional assignment.  


14.38
14.38 Inference on Causal and Structural Parameters Using ML and AI

()
Prereqs: 14.32
Units: 4-0-8

Provides an applied treatment of modern causal inference with high-dimensional data, focusing on empirical economic problems encountered in academic research and the tech industry. Formulates problems in the languages of structural equation modeling and potential outcomes. Presents state-of-the-art approaches for inference on causal and structural parameters, including de-biased machine learning, synthetic control methods, and reinforcement learning. Introduces tools from machine learning and deep learning developed for prediction purposes, and discusses how to adapt them to learn causal parameters. Emphasizes the applied and practical perspectives. Requires knowledge of mathematical statistics and regression analysis and programming experience in R or Python.


14.41
14.41 Public Finance and Public Policy

()
Prereqs: 14.01
Units: 4-0-8

Explores the role of government in the economy, applying tools of basic microeconomics to answer important policy questions such as government response to global warming, school choice by K-12 students, Social Security versus private retirement savings accounts, government versus private health insurance, setting income tax rates for individuals and corporations. Students taking the graduate version complete additional assignments.

14.42
14.42 Environmental Policy and Economics

()
Prereqs: 14.01
Units: 4-0-8

Introduces key concepts and recent advances in environmental economics, and explores their application to environmental policy questions. Topics include market efficiency and market failure, methods for valuing the benefits of environmental quality, the proper role of government in the regulation of the environment, environmental policy design, and implementation challenges. Considers international aspects of environmental policy as well, including the economics of climate change, trade and the environment, and environmental challenges in developing countries. Students taking graduate version complete additional assignments.


14.43
14.43 Economics of Energy, Innovation, and Sustainability

()
Prereqs: 14.01 or 15.0111
Units: 3-0-9

Covers energy and environmental market organization and regulation. Explores economic challenges and solutions to transforming energy markets to be more efficient, accessible, affordable, and sustainable. Applies core economic concepts - consumer choice, firm profit maximization, and strategic behavior - to understand when energy and environmental markets work well and when they fail. They also conduct data-driven economic analysis on the trade-offs of real and proposed policy interventions. Topics include renewable generation sources for electricity, energy access in emerging markets, efficiency programs and fuel efficiency standards, transitioning transportation to alternative fuels, measuring damages and adaptation to climate change, and the effect of energy and environmental policy on innovation. Expectations and evaluation criteria differ for students taking graduate version; consult syllabus or instructor for specific details.


14.44
14.44 Energy Economics and Policy

()
Prereqs: 14.01 or 15.0111
Units: 4-0-8

Analyzes business and public policy issues in energy markets and in the environmental markets to which they are closely tied. Examines the economic determinants of industry structure and evolution of competition among firms in these industries. Investigates successful and unsuccessful strategies for entering new markets and competing in existing markets. Industries studied include oil, natural gas, coal, electricity, and transportation. Topics include climate change and environmental policy, the role of speculation in energy markets, the political economy of energy policies, and market power and antitrust. Two team-based simulation games, representing the world oil market and a deregulated electricity market, act to cement the concepts covered in lecture. Students taking graduate version complete additional assignments. Limited to 60.


14.64
14.64 Labor Economics and Public Policy

()
Prereqs: 14.30 or permission of instructor
Units: 4-0-8

Provides an introduction to the labor market, how it functions, and the important role it plays in people's lives. Topics include supply and demand, minimum wages, labor market effects of social insurance and welfare programs, the collective bargaining relationship, discrimination, human capital, and unemployment. Completion of or concurrent enrollment in 14.03 or 14.04,  and 14.32 recommended. Students taking graduate version complete additional assignments.


14.75
14.75 Political Economy and Economic Development

()
Prereqs: 14.01
Units: 4-0-8

Explores the relationship between political institutions and economic development, covering key theoretical issues as well as recent empirical evidence. Topics include corruption, voting, vote buying, the media, and war. Discusses not just what we know on these topics, but how we know it, covering how to craft a good empirical study or field experiment and how to discriminate between reliable and unreliable evidence.  Some basic familiarity with probability and/or statistics is useful for this class.  Students taking graduate version complete additional assignments.

14.76
14.76 Firms, Markets, Trade and Growth

()
Prereqs: 14.01 and (14.30 or permission of instructor)
Units: 4-0-8

Examines how industrial development and international trade have brought about rapid growth and large-scale reductions in poverty for some developing countries, while globalization has simply increased inequality and brought little growth for others. Also considers why, in yet other developing countries, firms remain small-scale and have not integrated with global supply chains. Draws on both theoretical models and empirical evidence to better understand the reasons for these very different experiences and implications for policy. Students taking graduate version complete additional assignments.


15.0201
15.0201 Economics of Energy, Innovation, and Sustainability

()
Prereqs: 14.01 or 15.0111
Units: 3-0-9

Covers energy and environmental market organization and regulation. Explores economic challenges and solutions to transforming energy markets to be more efficient, accessible, affordable, and sustainable. Applies core economic concepts - consumer choice, firm profit maximization, and strategic behavior - to understand when energy and environmental markets work well and when they fail. They also conduct data-driven economic analysis on the trade-offs of real and proposed policy interventions. Topics include renewable generation sources for electricity, energy access in emerging markets, efficiency programs and fuel efficiency standards, transitioning transportation to alternative fuels, measuring damages and adaptation to climate change, and the effect of energy and environmental policy on innovation. Expectations and evaluation criteria differ for students taking graduate version; consult syllabus or instructor for specific details.


15.037
15.037 Energy Economics and Policy

()
Prereqs: 14.01 or 15.0111
Units: 4-0-8

Analyzes business and public policy issues in energy markets and in the environmental markets to which they are closely tied. Examines the economic determinants of industry structure and evolution of competition among firms in these industries. Investigates successful and unsuccessful strategies for entering new markets and competing in existing markets. Industries studied include oil, natural gas, coal, electricity, and transportation. Topics include climate change and environmental policy, the role of speculation in energy markets, the political economy of energy policies, and market power and antitrust. Two team-based simulation games, representing the world oil market and a deregulated electricity market, act to cement the concepts covered in lecture. Students taking graduate version complete additional assignments. Limited to 60.


15.780
15.780 Analytics of Operations Management

()
Prereqs: 6.3700, 15.069, or permission of instructor
Units: 3-0-9

Introduces core concepts in data-driven modeling that inform and optimize business decisions under uncertainty. Covers models and frameworks, such as machine learning, time series forecasting, dynamic programming, stochastic optimization, and multi-armed bandits. Draws on real-world applications, with several examples from retail, healthcare, logistics, supply chain, and public sector.


ECONTH: Economics electives in theory
14.04
14.04 Intermediate Microeconomic Theory

()
Prereqs: GIR:CAL2 and 14.01
Units: 4-0-8

Introduction to economic science, featuring theory and data, with attention to recent innovations, such as crypto tokens, distributed ledgers and blockchain, and smart contracts.  Covers applications from developing and developed economies, including the optimal allocation of risk, contract theory and mechanism design, improved financial and information infrastructure. Discusses the role of public authorities with regard to general equilibrium theory, welfare theorems and their failure with resolutions, design of media of exchange, decentralized finance (DeFi) contrasted with centralized exchange, and contracting platforms.


14.12
14.12 Economic Applications of Game Theory

()
Prereqs: 14.01 and (6.041B, 14.04, 14.30, 18.05, or permission of instructor)
Units: 4-0-8

Analysis of strategic behavior in multi-person economic settings. Introduction to solution concepts, such as rationalizability, backwards induction, Nash equilibrium, subgame-perfect equilibrium, and sequential equilibrium. Strong emphasis on dynamic games, such as repeated games. Introduction to Bayesian games, focusing on Bayesian Nash Equilibrium, Perfect Bayesian Equilibrium, and signaling games. Applications drawn from microeconomics: imperfect competition, implicit cartels, bargaining, and auctions.


14.13
14.13 Psychology and Economics

()
Prereqs: 14.01
Units: 4-0-8

Introduces the theoretical and empirical literature of behavioral economics. Examines important and systematic departures from the standard models in economics by incorporating insights from psychology and other social sciences. Covers theory and evidence on time, risk, and social preferences; beliefs and learning; emotions; limited attention; and frames, defaults, and nudges. Studies applications to many different areas, such as credit card debt, procrastination, retirement savings, addiction, portfolio choice, poverty, labor supply, happiness, and government policy. Students participate in surveys and experiments in class, review evidence from lab experiments, examine how the results can be integrated into models, and test models using field and lab data. Students taking graduate version complete additional assignments.


14.16
14.16 Strategy and Information

()
Prereqs: 14.01 or permission of instructor
Units: 4-0-8

Covers modern applications of game theory where incomplete information plays an important role. Applications include bargaining, auctions, global games, market design, information design, and network economics. Students taking graduate version complete additional assignments.


14.19
14.19 Market Design

()
Prereqs: 14.01
Units: 4-0-8

Covers the design and operation of organized markets, building on ideas from microeconomic and game theory. Topics may include mechanism design, auctions, matching markets, and other resource allocation problems.

14.26
14.26 Organizational Economics

()
Prereqs: 14.01
Units: 4-0-8

Provides a rigorous, but not overly technical introduction to the economic theory of organization together with a varying set of applications. Addresses incentives, control, relationships, decision processes, and organizational culture and performance. Introduces selected fundamentals of game theory. Students taking graduate version complete additional assignments. Limited to 60.


14.54
14.54 International Trade

()
Prereqs: 14.01
Units: 4-0-8

Provides an introduction to theoretical and empirical topics in international trade. Offers a brief history of globalization. Introduces the theory of comparative advantage and discusses its implications for international specialization and wage inequality. Studies the determinants and consequences of trade policy, and analyzes the consequences of immigration and foreign direct investment. Students taking graduate version complete additional assignments.


15.039
15.039 Organizational Economics

()
Prereqs: 14.01
Units: 4-0-8

Provides a rigorous, but not overly technical introduction to the economic theory of organization together with a varying set of applications. Addresses incentives, control, relationships, decision processes, and organizational culture and performance. Introduces selected fundamentals of game theory. Students taking graduate version complete additional assignments. Limited to 60.


6.32606.207
6.3260 Networks

()
Prereqs: 6.3700 or 14.30
Units: 4-0-8

Highlights common principles that permeate the functioning of diverse technological, economic and social networks. Utilizes three sets of tools for analyzing networks -- random graph models, optimization, and game theory -- to study informational and learning cascades; economic and financial networks; social influence networks; formation of social groups; communication networks and the Internet; consensus and gossiping; spread and control of epidemics; control and use of energy networks; and biological networks. Students taking graduate version complete additional assignments.


EECS: All the undergraduate subjects that satisfy departmental undergraduate requirements. Also see the grad_AUS and grad_II lists below.
18.03
18.03 Differential Equations

(,)
Prereqs/[Coreqs]: [GIR:CAL2]
Units: 5-0-7

Study of differential equations, including modeling physical systems. Solution of first-order ODEs by analytical, graphical, and numerical methods. Linear ODEs with constant coefficients. Complex numbers and exponentials. Inhomogeneous equations: polynomial, sinusoidal, and exponential inputs. Oscillations, damping, resonance. Fourier series. Matrices, eigenvalues, eigenvectors, diagonalization. First order linear systems: normal modes, matrix exponentials, variation of parameters. Heat equation, wave equation. Nonlinear autonomous systems: critical point analysis, phase plane diagrams.


18.032
18.032 Differential Equations

()
Prereqs/[Coreqs]: [GIR:CAL2]
Units: 5-0-7

Covers much of the same material as 18.03 with more emphasis on theory. The point of view is rigorous and results are proven. Local existence and uniqueness of solutions.


18.05
18.05 Introduction to Probability and Statistics

()
Prereqs: GIR:CAL2
Units: 4-0-8

Elementary introduction with applications. Basic probability models. Combinatorics. Random variables. Discrete and continuous probability distributions. Statistical estimation and testing. Confidence intervals. Introduction to linear regression.


18.06
18.06 Linear Algebra

(,)
Prereqs: GIR:CAL2
Units: 4-0-8

Basic subject on matrix theory and linear algebra, emphasizing topics useful in other disciplines, including systems of equations, vector spaces, determinants, eigenvalues, singular value decomposition, and positive definite matrices. Applications to least-squares approximations, stability of differential equations, networks, Fourier transforms, and Markov processes. Uses linear algebra software. Compared with 18.700, more emphasis on matrix algorithms and many applications.


18.404
18.404 Theory of Computation

()
Prereqs: 6.1200 or 18.200
Units: 4-0-8

A more extensive and theoretical treatment of the material in 6.1400J/18.400J, emphasizing computability and computational complexity theory. Regular and context-free languages. Decidable and undecidable problems, reducibility, recursive function theory. Time and space measures on computation, completeness, hierarchy theorems, inherently complex problems, oracles, probabilistic computation, and interactive proof systems.


18.600
18.600 Probability and Random Variables

(,)
Prereqs: GIR:CAL2
Units: 4-0-8

Probability spaces, random variables, distribution functions. Binomial, geometric, hypergeometric, Poisson distributions. Uniform, exponential, normal, gamma and beta distributions. Conditional probability, Bayes theorem, joint distributions. Chebyshev inequality, law of large numbers, and central limit theorem. Credit cannot also be received for 6.041A or 6.041B.


18.C06
18.C06 Linear Algebra and Optimization

()
Prereqs: GIR:CAL2
Units: 5-0-7

Introductory course in linear algebra and optimization, assuming no prior exposure to linear algebra and starting from the basics, including vectors, matrices, eigenvalues, singular values, and least squares. Covers the basics in optimization including convex optimization, linear/quadratic programming, gradient descent, and regularization, building on insights from linear algebra. Explores a variety of applications in science and engineering, where the tools developed give powerful ways to understand complex systems and also extract structure from data.


2.007
2.007 Design and Manufacturing I

()
Prereqs/[Coreqs]: 2.001 and 2.670; [2.086]
Units: 3-4-5

Develops students' competence and self-confidence as design engineers. Emphasis on the creative design process bolstered by application of physical laws. Instruction on how to complete projects on schedule and within budget. Robustness and manufacturability are emphasized. Subject relies on active learning via a major design-and-build project. Lecture topics include idea generation, estimation, concept selection, visual thinking, computer-aided design (CAD), mechanism design, machine elements, basic electronics, technical communication, and ethics. Lab fee. Limited enrollment. Pre-registration required for lab assignment; special sections by lottery only.


6.100A6.0001
6.100A Introduction to Computer Science Programming in Python

(,)
Prereqs: none
Units: 3-0-3

Introduction to computer science and programming for students with little or no 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. Combination of 6.100A and 6.100B or 16.C20 counts as REST subject. Final given in the seventh week of the term.

&6.100B6.0002
6.100B Introduction to Computational Thinking and Data Science

(,)
Prereqs: 6.100A or permission of instructor
Units: 3-0-3

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. Combination of 6.100A and 6.100B counts as REST subject.


6.10106.009
6.1010 Fundamentals of Programming

(,)
Prereqs: 6.100A
Units: 2-4-6

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.  Lab component consists of software design, construction, and implementation of design. Enrollment may be limited.


6.10206.031
6.1020 Software Construction

()
Prereqs: 6.1010
Units: 3-0-12

Introduces fundamental principles and techniques of software development: how to write software that is safe from bugs, easy to understand, and ready for change. Topics include specifications and invariants; testing, test-case generation, and coverage; abstract data types and representation independence; design patterns for object-oriented programming; concurrent programming, including message passing and shared memory concurrency, and defending against races and deadlock; and functional programming with immutable data and higher-order functions. Includes weekly programming exercises and larger group programming projects.


6.10406.170
6.1040 Software Design

()
Prereqs: 6.1020 and 6.1200
Units: 4-0-14

Provides design-focused instruction on how to build complex software applications. Design topics include classic human-computer interaction (HCI) design tactics (need finding, heuristic evaluation, prototyping, user testing), conceptual design (inventing, modeling and evaluating constituent concepts), social and ethical implications, abstract data modeling, and visual design. Implementation topics include reactive front-ends, web services, and databases. Students work both on individual projects and a larger team project in which they design and build full-stack web applications.


6.10606.172
6.1060 Software Performance Engineering

()
Prereqs: 6.1020, 6.1210, and 6.1910
Units: 3-12-3

Project-based introduction to building efficient, high-performance and scalable software systems. Topics include performance analysis, algorithmic techniques for high performance, instruction-level optimizations, vectorization, cache and memory hierarchy optimization, and parallel programming.


6.11006.035
6.1100 Computer Language Engineering

()
Prereqs: 6.1020 and 6.1910
Units: 4-4-4

Analyzes issues associated with the implementation of higher-level programming languages. Fundamental concepts, functions, and structures of compilers. The interaction of theory and practice. Using tools in building software. Includes a multi-person project on compiler design and implementation.


6.11206.818
6.1120 Dynamic Computer Language Engineering

()
Prereqs: 6.1020 or 6.1910
Units: 4-4-4

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. Includes a semester-long, group project that delivers a virtual machine that spans all of these topics.


6.12006.042
6.1200 Mathematics for Computer Science

(,)
Prereqs: GIR:CAL1
Units: 5-0-7

Elementary discrete mathematics for science and engineering, with a focus on mathematical tools and proof techniques useful in computer science. Topics include logical notation, sets, relations, elementary graph theory, state machines and invariants, induction and proofs by contradiction, recurrences, asymptotic notation, elementary analysis of algorithms, elementary number theory and cryptography, permutations and combinations, counting tools, and discrete probability.


6.12106.006
6.1210 Introduction to Algorithms

(,)
Prereqs: 6.100A and (6.120A or 6.1200)
Units: 5-0-7

Introduction to mathematical modeling of computational problems, as well as common algorithms, algorithmic paradigms, and data structures used to solve these problems. Emphasizes the relationship between algorithms and programming, and introduces basic performance measures and analysis techniques for these problems. Enrollment may be limited.


6.12206.046
6.1220 Design and Analysis of Algorithms

(,)
Prereqs: 6.1200 and 6.1210
Units: 4-0-8

Techniques for the design and analysis of efficient algorithms, emphasizing methods useful in practice. Topics include sorting; search trees, heaps, and hashing; divide-and-conquer; dynamic programming; greedy algorithms; amortized analysis; graph algorithms; and shortest paths. Advanced topics may include network flow; computational geometry; number-theoretic algorithms; polynomial and matrix calculations; caching; and parallel computing.


6.14006.045
6.1400 Computability and Complexity Theory

()
Prereqs: (6.1200 and 6.1210) or permission of instructor
Units: 4-0-8

Mathematical introduction to the theory of computing. Rigorously explores what kinds of tasks can be efficiently solved with computers by way of finite automata, circuits, Turing machines, and communication complexity, introducing students to some major open problems in mathematics. Builds skills in classifying computational tasks in terms of their difficulty. Discusses other fundamental issues in computing, including the Halting Problem, the Church-Turing Thesis, the P versus NP problem, and the power of randomness.  


6.14206.054
6.1420 Fixed Parameter and Fine-grained Computation

()
Prereqs: 6.1200, 6.1210, and (6.1220, 6.1400, or 18.404)
Units: 3-0-9

An overview of the theory of parameterized algorithms and the "problem-centric" theory of fine-grained complexity, both of which reconsider how to measure the difficulty and feasibility of solving computational problems. Topics include: fixed-parameter tractability (FPT) and its characterizations, the W-hierarchy (W[1], W[2], W[P], etc.), 3-sum-hardness, all-pairs shortest paths (APSP)-equivalences, strong exponential time hypothesis (SETH) hardness of problems, and the connections to circuit complexity and other aspects of computing.


6.16006.053
6.1600 Foundations of Computer Security

()
Prereqs: 6.1210 and 6.1800
Units: 4-0-8

Fundamental notions and big ideas for achieving security in computer systems. Topics include cryptographic foundations (pseudorandomness, collision-resistant hash functions, authentication codes, signatures, authenticated encryption, public-key encryption), systems ideas (isolation, non-interference, authentication, access control, delegation, trust), and implementation techniques (privilege separation, fuzzing, symbolic execution, runtime defenses, side-channel attacks). Case studies of how these ideas are realized in deployed systems. Lab assignments apply ideas from lectures to learn how to build secure systems and how they can be attacked.


6.18006.033
6.1800 Computer Systems Engineering

()
Prereqs: 6.1910
Units: 5-1-6

Topics on the engineering of computer software and hardware systems: techniques for controlling complexity; strong modularity using client-server design, operating systems; performance, networks; naming; security and privacy; fault-tolerant systems, atomicity and coordination of concurrent activities, and recovery; impact of computer systems on society. Case studies of working systems and readings from the current literature provide comparisons and contrasts. Includes a single, semester-long design project. Students engage in extensive written communication exercises. Enrollment may be limited.


6.18106.039
6.1810 Operating System Engineering

()
Prereqs: 6.1910
Units: 3-0-9

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, xv6, is used to illustrate these topics. Individual laboratory assignments involve extending the xv6 operating system, for example to support sophisticated virtual memory features and networking.


6.18206.808
6.1820 Mobile and Sensor Computing

()
Prereqs: 6.1800 or permission of instructor
Units: 3-0-9

Focuses on "Internet of Things" (IoT) systems and technologies, sensing, computing, and communication. Explores fundamental design and implementation issues in the engineering of mobile and sensor computing systems. Topics include battery-free sensors, seeing through wall, robotic sensors, vital sign sensors (breathing, heartbeats, emotions), sensing in cars and autonomous vehicles, subsea IoT, sensor security, positioning technologies (including GPS and indoor WiFi), inertial sensing (accelerometers, gyroscopes, inertial measurement units, dead-reckoning), embedded and distributed system architectures, sensing with radio signals, sensing with microphones and cameras, wireless sensor networks, embedded and distributed system architectures, mobile libraries and APIs to sensors, and application case studies. Includes readings from research literature, as well as laboratory assignments and a significant term project.


6.18506.052
6.1850 Computer Systems and Society

()
Prereqs: 6.1800
Units: 3-0-9

Explores the impact of computer systems on individual humans, society, and the environment. Examines large- and small-scale power structures that stem from low-level technical design decisions, the consequences of those structures on society, and how they can limit or provide access to certain technologies. Students learn to assess 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 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; and the environmental impact of proof-of-work-based systems such as Bitcoin. Enrollment may be limited.


6.19106.004
6.1910 Computation Structures

(,)
Prereqs: GIR:PHY2, 6.100A, and (6.1900 or 6.9010)
Units: 4-0-8

Provides an introduction to the design of digital systems and computer architecture. Emphasizes expressing all hardware designs in a high-level hardware language and synthesizing the designs. Topics include combinational and sequential circuits, instruction set abstraction for programmable hardware, single-cycle and pipelined processor implementations, multi-level memory hierarchies, virtual memory, exceptions and I/O, and parallel systems.


6.19206.175
6.1920 Constructive Computer Architecture

()
Prereqs: 6.1910
Units: 3-8-1

Illustrates a constructive (as opposed to a descriptive) approach to computer architecture. Topics include combinational and pipelined arithmetic-logic units (ALU), in-order pipelined microarchitectures, branch prediction, blocking and unblocking caches, interrupts, virtual memory support, cache coherence and multicore architectures. Labs in a modern Hardware Design Language (HDL) illustrate various aspects of microprocessor design, culminating in a term project in which students present a multicore design running on an FPGA board.


6.20006.002
6.2000 Electrical Circuits: Modeling and Design of Physical Systems

(,)
Prereqs: GIR:PHY2
Units: 3-2-7

Fundamentals of linear systems, and abstraction modeling of multi-physics lumped and distributed systems using lumped electrical circuits. Linear networks involving independent and dependent sources, resistors, capacitors, and inductors. Extensions to include operational amplifiers and transducers. Dynamics of first- and second-order networks; analysis and design in the time and frequency domains; signal and energy processing applications. Design exercises. Weekly laboratory with microcontroller and transducers.


6.20406.101
6.2040 Analog Electronics Laboratory

()
Prereqs: 6.2000
Units: 2-9-1

Experimental laboratory explores the design, construction, and debugging of analog electronic circuits. Lectures and laboratory projects in the first half of the course investigate the performance characteristics of semiconductor devices (diodes, BJTs, and MOSFETs) and functional analog building blocks, including single-stage amplifiers, op amps, small audio amplifier, filters, converters, sensor circuits, and medical electronics (ECG, pulse-oximetry). Projects involve design, implementation, and presentation in an environment similar to that of industry engineering design teams. Instruction and practice in written and oral communication provided. Opportunity to simulate real-world problems and solutions that involve tradeoffs and the use of engineering judgment.


6.20506.111
6.2050 Digital Systems Laboratory

()
Prereqs: 6.1910 or permission of instructor
Units: 3-7-2

Lab-intensive subject that investigates digital systems with a focus on FPGAs. Lectures and labs cover logic, flip flops, counters, timing, synchronization, finite-state machines, digital signal processing, communication protocols, and modern sensors. Prepares students for the design and implementation of a large-scale final project of their choice: games, music, digital filters, wireless communications, video, or graphics. Extensive use of System/Verilog for describing and implementing and verifying digital logic designs.

6.20606.115
6.2060 Microcomputer Project Laboratory

()
Prereqs: 6.1910, 6.2000, or 6.3000
Units: 3-6-3

Introduces analysis and design of embedded systems. Microcontrollers provide adaptation, flexibility, and real-time control. Emphasizes construction of complete systems, including a five-axis robot arm, a fluorescent lamp ballast, a tomographic imaging station (e.g., a CAT scan), and a simple calculator. Presents a wide range of basic tools, including software and development tools, programmable system on chip, peripheral components such as A/D converters, communication schemes, signal processing techniques, closed-loop digital feedback control, interface and power electronics, and modeling of electromechanical systems. Includes a sequence of assigned projects, followed by a final project of the student's choice, emphasizing creativity and uniqueness. Provides instruction in written and oral communication. To satisfy the independent inquiry component of this subject, students expand the scope of their laboratory project.


6.20616.1151
6.2061 Microcomputer Project Laboratory - Independent Inquiry

()
Prereqs: 6.1910, 6.2000, or 6.3000
Units: 3-9-3

Introduces analysis and design of embedded systems. Microcontrollers provide adaptation, flexibility, and real-time control. Emphasizes construction of complete systems, including a five-axis robot arm, a fluorescent lamp ballast, a tomographic imaging station (e.g., a CAT scan), and a simple calculator. Presents a wide range of basic tools, including software and development tools, programmable system on chip, peripheral components such as A/D converters, communication schemes, signal processing techniques, closed-loop digital feedback control, interface and power electronics, and modeling of electromechanical systems. Includes a sequence of assigned projects, followed by a final project of the student's choice, emphasizing creativity and uniqueness. Provides instruction in written and oral communication. Students taking independent inquiry version 6.2061 expand the scope of their laboratory project.


6.20906.301
6.2090 Solid-State Circuits

()
Prereqs: 6.2040, 6.2080, or permission of instructor
Units: 3-2-7

Fosters deep understanding and intuition that is crucial in innovating analog circuits and optimizing the whole system in bipolar junction transistor (BJT) and metal oxide semiconductor (MOS) technologies. Covers both theory and real-world applications of basic amplifier structures, operational amplifiers, temperature sensors, bandgap references. Covers topics such as noise, linearity and stability. Homework and labs give students access to CAD/EDA tools to design and analyze analog circuits. Provides practical experience through lab exercises, including a broadband amplifier design and characterization. Students taking graduate version complete additional assignments.


6.22006.061
6.2200 Electric Energy Systems

()
Prereqs: 6.2000
Units: 4-0-8

Analysis and design of modern energy conversion and delivery systems. Develops a solid foundation in electromagnetic phenomena with a focus on electrical energy distribution, electro-mechanical energy conversion (motors and generators), and electrical-to-electrical energy conversion (DC-DC, DC-AC power conversion). Students apply the material covered to consider critical challenges associated with global energy systems, with particular examples related to the electrification of transport and decarbonization of the grid.


6.22106.014
6.2210 Electromagnetic Fields, Forces and Motion

()
Prereqs: GIR:PHY2 and 18.03
Units: 4-0-8

Study of electromagnetics and electromagnetic energy conversion leading to an understanding of devices, including electromagnetic sensors, actuators, motors and generators. Quasistatic Maxwell's equations and the Lorentz force law. Studies of the quasistatic fields and their sources through solutions of Poisson's and Laplace's equations. Boundary conditions and multi-region boundary-value problems. Steady-state conduction, polarization, and magnetization. Charge conservation and relaxation, and magnetic induction and diffusion. Extension to moving materials. Electric and magnetic forces and force densities derived from energy, and stress tensors. Extensive use of engineering examples. Students taking graduate version complete additional assignments.


6.22206.131
6.2220 Power Electronics Laboratory

()
Prereqs: 6.2000 or 6.3100
Units: 3-6-3

Introduces the design and construction of power electronic circuits and motor drives. Laboratory exercises 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 include DC, induction, and permanent magnet motors, with drive considerations. Provides instruction in written and oral communication. Students taking independent inquiry version 6.2221 expand the scope of their laboratory project.


6.22216.1311
6.2221 Power Electronics Laboratory - Independent Inquiry

()
Prereqs: 6.2000 or 6.3000
Units: 3-9-3

Introduces the design and construction of power electronic circuits and motor drives. Laboratory exercises 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 include DC, induction, and permanent magnet motors, with drive considerations. Provides instruction in written and oral communication. To satisfy the independent inquiry component of this subject, students expand the scope of their laboratory project.


6.23006.013
6.2300 Electromagnetics Waves and Applications

()
Prereqs: GIR:CAL2 and GIR:PHY2
Units: 3-5-4

Analysis and design of modern applications that employ electromagnetic phenomena for signals and power transmission in RF, microwaves, optical and wireless communication systems. Fundamentals include dynamic solutions for Maxwell's equations; electromagnetic power and energy, waves in media, metallic and dielectric waveguides, radiation, and diffraction; resonance; filters; and acoustic analogs. Lab activities range from building to testing of devices and systems (e.g., antenna arrays, radars, dielectric waveguides). Students work in teams on self-proposed maker-style design projects with a focus on fostering creativity, teamwork, and debugging skills. 6.2000 and 6.3000 are recommended but not required.


6.23706.161
6.2370 Modern Optics Project Laboratory

()
Prereqs: 6.3000
Units: 3-5-4

Lectures, laboratory exercises and projects on optical signal generation, transmission, detection, storage, processing and display. Topics include polarization properties of light; reflection and refraction; coherence and interference; Fraunhofer and Fresnel diffraction; holography; Fourier optics; coherent and incoherent imaging and signal processing systems; optical properties of materials; lasers and LEDs; electro-optic and acousto-optic light modulators; photorefractive and liquid-crystal light modulation; display technologies; optical waveguides and fiber-optic communication systems; photodetectors. Students may use this subject to find an advanced undergraduate project. Students engage in extensive oral and written communication exercises. Recommended prerequisite: 8.03.


6.24006.051
6.2400 Introduction to Quantum Systems Engineering

()
Prereqs: 6.2300 and (18.06 or 18.C06)
Units: 4-2-6

Introduction to the quantum mechanics needed to engineer quantum systems for computation, communication, and sensing. Topics include: motivation for quantum engineering, qubits and quantum gates, rules of quantum mechanics, mathematical background, quantum electrical circuits and other physical quantum systems, harmonic and anharmonic oscillators, measurement, the Schrödinger equation, noise, entanglement, benchmarking, quantum communication, and quantum algorithms. No prior experience with quantum mechanics is assumed.


6.24106.157
6.2410 Quantum Engineering Platforms

()
Prereqs: 6.2400, 6.6400, 18.435, or (8.04 and 8.05)
Units: 1-5-6

Provides practical knowledge and quantum engineering experience with several physical platforms for quantum computation, communication, and sensing, including photonics, superconducting qubits, and trapped ions. Labs include both a hardware component — to gain experience with challenges, design, and non-idealities — and a cloud component to run algorithms on state of the art commercial systems. Use entangled photons to communicate securely (quantum key distribution). Run quantum algorithms on trapped ion and superconducting quantum computers. 


6.25006.012
6.2500 Nanoelectronics and Computing Systems

()
Prereqs: 6.2000
Units: 4-0-8

Studies interaction between materials, semiconductor physics, electronic devices, and computing systems. Develops intuition of how transistors operate. Topics range from introductory semiconductor physics to modern state-of-the-art nano-scale devices. Considers how innovations in devices have driven historical progress in computing, and explores ideas for further improvements in devices and computing. Students apply material to understand how building improved computing systems requires knowledge of devices, and how making the correct device requires knowledge of computing systems. Includes a design project for practical application of concepts, and labs for experience building silicon transistors and devices.


6.25306.701
6.2530 Introduction to Nanoelectronics

()
Prereqs: 6.3000
Units: 4-0-8

Transistors at the nanoscale. Quantization, wavefunctions, and Schrodinger's equation. Introduction to electronic properties of molecules, carbon nanotubes, and crystals. Energy band formation and the origin of metals, insulators and semiconductors. Ballistic transport, Ohm's law, ballistic versus traditional MOSFETs, fundamental limits to computation.


6.25406.015
6.2540 Nanotechnology: From Atoms to Systems

()
Prereqs: GIR:PHY2
Units: 2-3-7

Introduces the fundamentals of applied quantum mechanics, materials science, and fabrication skills needed to design, engineer, and build emerging nanodevices with diverse applications in energy, memory, display, communications, and sensing. Focuses on the application and outlines the full progression from the fundamentals to the implemented device and functional technology. Closely integrates lectures with design-oriented laboratory modules. 


6.26006.152
6.2600 Micro/Nano Processing Technology

()
Prereqs: GIR:CAL2, GIR:CHEM, GIR:PHY2, or permission of instructor
Units: 3-4-5

Introduces the theory and technology of micro/nano fabrication. Includes lectures and laboratory sessions on processing techniques: wet and dry etching, chemical and physical deposition, lithography, thermal processes, packaging, and device and materials characterization. Homework uses process simulation tools to build intuition about higher order effects. Emphasizes interrelationships between material properties and processing, device structure, and the electrical, mechanical, optical, chemical or biological behavior of devices. Students fabricate solar cells, and a choice of MEMS cantilevers or microfluidic mixers. Students formulate their own device idea, either based on cantilevers or mixers, then implement and test their designs in the lab. Students engage in extensive written and oral communication exercises. Course provides background for research work related to micro/nano fabrication. Enrollment limited.


6.30006.003
6.3000 Signal Processing

(,)
Prereqs: 6.100A and 18.03
Units: 6-0-6

Fundamentals of signal processing, focusing on the use of Fourier methods to analyze and process signals such as sounds and images. Topics include Fourier series, Fourier transforms, the Discrete Fourier Transform, sampling, convolution, deconvolution, filtering, noise reduction, and compression. Applications draw broadly from areas of contemporary interest with emphasis on both analysis and design.


6.30106.011
6.3010 Signals, Systems and Inference

()
Prereqs: 6.3000 and (6.3700, 6.3800, or 18.05)
Units: 4-0-8

Covers signals, systems and inference in communication, control and signal processing. Topics include input-output and state-space models of linear systems driven by deterministic and random signals; time- and transform-domain representations in discrete and continuous time; and group delay. State feedback and observers. Probabilistic models; stochastic processes, correlation functions, power spectra, spectral factorization. Least-mean square error estimation; Wiener filtering. Hypothesis testing; detection; matched filters.


6.30206.187
6.3020 Fundamentals of Music Processing

()
Prereqs: 6.3000 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. Students taking graduate version complete different assignments.


6.31006.302
6.3100 Dynamical System Modeling and Control Design

(,)
Prereqs: GIR:PHY2 and (18.06 or 18.C06)
Units: 4-4-4

A learn-by-design introduction to modeling and control of discrete- and continuous-time systems, from intuition-building analytical techniques to more computational and data-centric strategies. Topics include: linear difference/differential equations (natural frequencies, transfer functions); controller metrics (stability, tracking, disturbance rejection); analytical techniques (PID, root-loci, lead-lag, phase margin); computational strategies (state-space, eigen-placement, LQR); and data-centric approaches (state estimation, regression, and identification). Concepts are introduced with lectures and online problems, and then mastered during weekly labs. In lab, students model, design, test, and explain systems and controllers involving sensors, actuators, and a microcontroller (e.g., optimizing thrust-driven positioners or stabilizing magnetic levitators). Students taking graduate version complete additional problems and labs.


6.32606.207
6.3260 Networks

()
Prereqs: 6.3700 or 14.30
Units: 4-0-8

Highlights common principles that permeate the functioning of diverse technological, economic and social networks. Utilizes three sets of tools for analyzing networks -- random graph models, optimization, and game theory -- to study informational and learning cascades; economic and financial networks; social influence networks; formation of social groups; communication networks and the Internet; consensus and gossiping; spread and control of epidemics; control and use of energy networks; and biological networks. Students taking graduate version complete additional assignments.


6.34006.02
6.3400 Introduction to EECS via Communication Networks

()
Prereqs: 6.100A
Units: 4-4-4

Studies key concepts, systems, and algorithms to reliably communicate data in settings ranging from the cellular phone network and the Internet to deep space. Weekly laboratory experiments explore these areas in depth. Topics presented in three modules - bits, signals, and packets - spanning the multiple layers of a communication system. Bits module includes information, entropy, data compression algorithms, and error correction with block and convolutional codes. Signals module includes modeling physical channels and noise, signal design, filtering and detection, modulation, and frequency-division multiplexing. Packets module includes switching and queuing principles, media access control, routing protocols, and data transport protocols.


6.37006.041
6.3700 Introduction to Probability

(,)
Prereqs: GIR:CAL2
Units: 4-0-8

An introduction to probability theory, the modeling and analysis of probabilistic systems, and elements of statistical inference. Probabilistic models, conditional probability. Discrete and continuous random variables. Expectation and conditional expectation, and further topics about random variables. Limit Theorems. Bayesian estimation and hypothesis testing. Elements of classical statistical inference. Bernoulli and Poisson processes. Markov chains. Students taking graduate version complete additional assignments.


6.37026.431
6.3702 Introduction to Probability

(,)
Prereqs: GIR:CAL2
Units: 4-0-8

An introduction to probability theory, the modeling and analysis of probabilistic systems, and elements of statistical inference. Probabilistic models, conditional probability. Discrete and continuous random variables. Expectation and conditional expectation, and further topics about random variables. Limit Theorems. Bayesian estimation and hypothesis testing. Elements of classical statistical inference. Bernoulli and Poisson processes. Markov chains. Students taking graduate version complete additional assignments.


6.37206.401
6.3720 Introduction to Statistical Data Analysis

()
Prereqs: 6.100A and (6.3700, 6.3800, or 18.600)
Units: 4-0-8

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.37306.419
6.3730 Statistics, Computation and Applications

()
Prereqs: (6.100B, (18.03, 18.06, or 18.C06), and (6.3700, 6.3800, 14.30, 16.09, or 18.05)) or permission of instructor
Units: 3-1-8

Hands-on analysis of data demonstrates the interplay between statistics and computation. Includes four modules, each centered on a specific data set, and introduced by a domain expert. Provides instruction in specific, relevant analysis methods and corresponding algorithmic aspects. Potential modules may include medical data, gene regulation, social networks, finance data (time series), traffic, transportation, weather forecasting, policy, or industrial web applications. Projects address a large-scale data analysis question. Students taking graduate version complete additional assignments. Enrollment limited; priority to Statistics and Data Science minors, and to juniors and seniors.


6.38006.008
6.3800 Introduction to Inference

()
Prereqs: GIR:CAL2 or permission of instructor
Units: 4-4-4

Introduces probabilistic modeling for problems of inference and machine learning from data, emphasizing analytical and computational aspects. Distributions, marginalization, conditioning, and structure, including graphical and neural network representations. Belief propagation, decision-making, classification, estimation, and prediction. Sampling methods and analysis. Introduces asymptotic analysis and information measures. Computational laboratory component explores the concepts introduced in class in the context of contemporary applications. Students design inference algorithms, investigate their behavior on real data, and discuss experimental results.


6.39006.036
6.3900 Introduction to Machine Learning

(,)
Prereqs: (6.1010 or 6.1210) and (18.06, 18.700, or 18.C06)
Units: 4-0-8

Introduces principles, algorithms, and applications of machine learning from the point of view of modeling and prediction; formulation of learning problems; representation, over-fitting, generalization; clustering, classification, probabilistic modeling; and methods such as support vector machines, hidden Markov models, and neural networks. Recommended prerequisites: 6.1210 and 18.06. Enrollment may be limited.


6.39506.404
6.3950 AI, Decision Making, and Society

()
Prereqs/[Coreqs]: [6.1200, 6.3700, 6.3800, 18.05, or 18.600]
Units: 4-0-8

Introduction to fundamentals of modern data-driven decision-making frameworks, such as causal inference and hypothesis testing in statistics as well as supervised and reinforcement learning in machine learning. Explores how these frameworks are being applied in various societal contexts, including criminal justice, healthcare, finance, and social media. Emphasis on pinpointing the non-obvious interactions, undesirable feedback loops, and unintended consequences that arise in such settings. Enables students to develop their own principled perspective on the interface of data-driven decision making and society. Students taking graduate version complete additional assignments.


6.41006.034
6.4100 Artificial Intelligence

()
Prereqs: 6.100A
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.


6.41106.038
6.4110 Representation, Inference, and Reasoning in AI

()
Prereqs: (16.09 and 16.410) or (6.1010, 6.1210, and (6.3700 or 6.3800))
Units: 3-0-9

An introduction to representations and algorithms for artificial intelligence. 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 including MDPs and POMDPs.

6.41206.804
6.4120 Computational Cognitive Science

()
Prereqs: 6.3700, 6.3800, 9.40, 18.05, 6.3900, or permission of instructor
Units: 3-0-9

Introduction to computational theories of human cognition. Focus on principles of inductive learning and inference, and the representation of knowledge. Computational frameworks covered include Bayesian and hierarchical Bayesian models; probabilistic graphical models; nonparametric statistical models and the Bayesian Occam's razor; sampling algorithms for approximate learning and inference; and probabilistic models defined over structured representations such as first-order logic, grammars, or relational schemas. Applications to understanding core aspects of cognition, such as concept learning and categorization, causal reasoning, theory formation, language acquisition, and social inference. Graduate students complete a final project.


6.41306.817
6.4130 Principles of Autonomy and Decision Making

()
Prereqs: 6.100B or 6.9080
Units: 4-0-8

Surveys decision making methods used to create highly autonomous systems and decision aids. Applies models, principles and algorithms taken from artificial intelligence and operations research. Focuses on planning as state-space search, including uninformed, informed and stochastic search, activity and motion planning, probabilistic and adversarial planning, Markov models and decision processes, and Bayesian filtering. Also emphasizes planning with real-world constraints using constraint programming. Includes methods for satisfiability and optimization of logical, temporal and finite domain constraints, graphical models, and linear and integer programs, as well as methods for search, inference, and conflict-learning. Students taking graduate version complete additional assignments.


6.42006.141
6.4200 Robotics: Science and Systems

()
Prereqs: ((1.00 or 6.100A) and (2.003, 6.1010, 6.1210, or 16.06)) or permission of instructor
Units: 2-6-4

Presents concepts, principles, and algorithmic foundations for robots and autonomous vehicles operating in the physical world. Topics include sensing, kinematics and dynamics, state estimation, computer vision, perception, learning, control, motion planning, and embedded system development. Students design and implement advanced algorithms on complex robotic platforms capable of agile autonomous navigation and real-time interaction with the physical word. Students engage in extensive written and oral communication exercises. Enrollment limited.


6.42106.800
6.4210 Robotic Manipulation

()
Prereqs: (6.100A and 6.3900) or permission of instructor
Units: 4-2-9

Introduces the fundamental algorithmic approaches for creating robot systems that can autonomously manipulate physical objects in unstructured environments such as homes and restaurants. Topics include perception (including approaches based on deep learning and approaches based on 3D geometry), planning (robot kinematics and trajectory generation, collision-free motion planning, task-and-motion planning, and planning under uncertainty), as well as dynamics and control (both model-based and learning-based). Students taking graduate version complete additional assignments. Students engage in extensive written and oral communication exercises.


6.44006.837
6.4400 Computer Graphics

()
Prereqs: 6.1010 and (18.06 or 18.C06)
Units: 3-0-9

Introduction to computer graphics algorithms, software and hardware. Topics include ray tracing, the graphics pipeline, transformations, texture mapping, shadows, sampling, global illumination, splines, animation and color.


6.44206.807
6.4420 Computational Design and Fabrication

()
Prereqs: GIR:CAL2 and (6.1010 or permission of instructor)
Units: 3-0-9

Introduces computational aspects of computer-aided design and manufacturing. Explores relevant methods in the context of additive manufacturing (e.g., 3D printing). Topics include computer graphics (geometry modeling, solid modeling, procedural modeling), physically-based simulation (kinematics, finite element method), 3D scanning/geometry processing, and an overview of 3D fabrication methods. Exposes students to the latest research in computational fabrication. Students taking the graduate version complete additional assignments.


6.45106.810
6.4510 Engineering Interactive Technologies

()
Prereqs: 6.1020, 6.2050, 6.2060, 6.9010, or permission of instructor
Units: 1-5-6

Provides instruction in building cutting-edge interactive technologies, explains the underlying engineering concepts, and shows how those technologies evolved over time. Students use a studio format (i.e., extended periods of time) for constructing software and hardware prototypes. Topics include interactive technologies, such as multi-touch, augmented reality, haptics, wearables, and shape-changing interfaces. In a group project, students build their own interactive hardware/software prototypes and present them in a live demo at the end of term. Enrollment may be limited.


6.45306.811
6.4530 Principles and Practice of Assistive Technology

()
Prereqs: Permission of instructor
Units: 2-4-6

Students work closely with people with disabilities to develop assistive and adaptive technologies that help them live more independently. Covers design methods and problem-solving strategies; human factors; human-machine interfaces; community perspectives; social and ethical aspects; and assistive technology for motor, cognitive, perceptual, and age-related impairments. Prior knowledge of one or more of the following areas useful: software; electronics; human-computer interaction; cognitive science; mechanical engineering; control; or MIT hobby shop, MIT PSC, or other relevant independent project experience. Enrollment may be limited.


6.45506.185
6.4550 Interactive Music Systems

(,)
Prereqs: (6.1010 and 21M.301) or permission of instructor
Units: 3-0-9

Explores audio synthesis, musical structure, human computer interaction (HCI), and visual presentation for the creation of interactive musical experiences. Topics include audio synthesis; mixing and looping; MIDI sequencing; generative composition; motion sensors; music games; and graphics for UI, visualization, and aesthetics. Includes weekly programming assignments in python. Teams build an original, dynamic, and engaging interactive music system for their final project. Students taking graduate version complete different assignments. Limited to 36.


6.45706.073
6.4570 Creating Video Games

()
Prereqs: 6.100A or CMS.301
Units: 3-3-6

Introduces students to the complexities of working in small, multidisciplinary teams to develop video games. Covers creative design and production methods, stressing design iteration and regular testing across all aspects of game development (design, visual arts, music, fiction, and programming). Assumes a familiarity with current video games, and the ability to discuss games critically. Previous experience in audio design, visual arts, or project management recommended. Limited to 36.


6.45906.805
6.4590 Foundations of Information Policy

()
Prereqs: Permission of instructor
Units: 3-0-9

Studies the growth of computer and communications technology and the new legal and ethical challenges that reflect tensions between individual rights and societal needs. Topics include computer crime; intellectual property restrictions on software; encryption, privacy, and national security; academic freedom and free speech. Students meet and question technologists, activists, law enforcement agents, journalists, and legal experts. Instruction and practice in oral and written communication provided. Students taking graduate version complete additional assignments. Enrollment limited.


6.47106.049
6.4710 Evolutionary Biology: Concepts, Models and Computation

()
Prereqs: (6.100A and 7.03) or permission of instructor
Units: 3-0-9

Explores and illustrates how evolution explains biology, with an emphasis on computational model building for analyzing evolutionary data. Covers key concepts of biological evolution, including adaptive evolution, neutral evolution, evolution of sex, genomic conflict, speciation, phylogeny and comparative methods, life's history, coevolution, human evolution, and evolution of disease.


6.48106.021
6.4810 Cellular Neurophysiology and Computing

()
Prereqs: (GIR:PHY2, 18.03, and (2.005, 6.2000, 6.3000, 10.301, or 20.110)) or permission of instructor
Units: 5-2-5

Integrated overview of the biophysics of cells from prokaryotes to neurons, with a focus on mass transport and electrical signal generation across cell membrane. First third of course focuses on mass transport through membranes: diffusion, osmosis, chemically mediated, and active transport. Second third focuses on electrical properties of cells: ion transport to action potential generation and propagation in electrically excitable cells. Synaptic transmission. Electrical properties interpreted via kinetic and molecular properties of single voltage-gated ion channels. Final third focuses on biophysics of synaptic transmission and introduction to neural computing. Laboratory and computer exercises illustrate the concepts. Students taking graduate version complete different assignments. Preference to juniors and seniors.


6.48206.022
6.4820 Quantitative and Clinical Physiology

()
Prereqs: GIR:PHY2, 18.03, or permission of instructor
Units: 4-2-6

Application of the principles of energy and mass flow to major human organ systems. Anatomical, physiological and clinical features of the cardiovascular, respiratory and renal systems. Mechanisms of regulation and homeostasis. Systems, features and devices that are most illuminated by the methods of physical sciences and engineering models. Required laboratory work includes animal studies. Students taking graduate version complete additional assignments.


6.48306.023
6.4830 Fields, Forces and Flows in Biological Systems

()
Prereqs: GIR:BIOL, GIR:PHY2, and 18.03
Units: 4-0-8

Introduction to electric fields, fluid flows, transport phenomena and their application to biological systems. Flux and continuity laws, Maxwell's equations, electro-quasistatics, electro-chemical-mechanical driving forces, conservation of mass and momentum, Navier-Stokes flows, and electrokinetics. Applications include biomolecular transport in tissues, electrophoresis, and microfluidics.


6.48406.024
6.4840 Molecular, Cellular, and Tissue Biomechanics

()
Prereqs: GIR:BIOL and 18.03
Units: 4-0-8

Develops and applies scaling laws and the methods of continuum mechanics to biomechanical phenomena over a range of length scales. Topics include structure of tissues and the molecular basis for macroscopic properties; chemical and electrical effects on mechanical behavior; cell mechanics, motility and adhesion; biomembranes; biomolecular mechanics and molecular motors. Experimental methods for probing structures at the tissue, cellular, and molecular levels. Students taking graduate version complete additional assignments.


6.48606.025
6.4860 Medical Device Design

()
Prereqs: 2.008, 6.2040, 6.2050, 6.2060, 22.071, or permission of instructor
Units: 3-3-6

Provides an intense project-based learning experience around the design of medical devices with foci ranging from mechanical to electro mechanical to electronics. Projects motivated by real-world clinical challenges provided by sponsors and clinicians who also help mentor teams. Covers the design process, project management, and fundamentals of mechanical and electrical circuit and sensor design. Students work in small teams to execute a substantial term project, with emphasis placed upon developing creative designs -- via a deterministic design process -- that are developed and optimized using analytical techniques. Includes mandatory lab. Instruction and practice in written and oral communication provided. Students taking graduate version complete additional assignments. Enrollment limited.


6.48806.129
6.4880 Biological Circuit Engineering Laboratory

()
Prereqs: GIR:BIOL and GIR:CAL2
Units: 2-8-2

Students assemble individual genes and regulatory elements into larger-scale circuits; they experimentally characterize these circuits in yeast cells using quantitative techniques, including flow cytometry, and model their results computationally. Emphasizes concepts and techniques to perform independent experimental and computational synthetic biology research. Discusses current literature and ongoing research in the field of synthetic biology. Instruction and practice in oral and written communication provided. Enrollment limited.


6.49006.03
6.4900 Introduction to EECS via Medical Technology

()
Prereqs: GIR:CAL2 and GIR:PHY2
Units: 4-4-4

Explores biomedical signals generated from electrocardiograms, glucose detectors or ultrasound images, and magnetic resonance images. Topics include physical characterization and modeling of systems in the time and frequency domains; analog and digital signals and noise; basic machine learning including decision trees, clustering, and classification; and introductory machine vision. Labs designed to strengthen background in signal processing and machine learning. Students design and run structured experiments, and develop and test procedures through further experimentation.


6.50816.816
6.5081 Multicore Programming

()
Prereqs: 6.1210
Units: 4-0-8

Introduces principles and core techniques for programming multicore machines. Topics include locking, scalability, concurrent data structures, multiprocessor scheduling, load balancing, and state-of-the-art synchronization techniques, such as transactional memory. Includes sequence of programming assignments on a large multicore machine, culminating with the design of a highly concurrent application. Students taking graduate version complete additional assignments.


6.51516.905
6.5151 Large-scale Symbolic Systems

()
Prereqs: 6.4100 or permission of instructor
Units: 3-0-9

Concepts and techniques for the design and implementation of large software systems that can be adapted to uses not anticipated by the designer. Applications include compilers, computer-algebra systems, deductive systems, and some artificial intelligence applications. Covers means for decoupling goals from strategy, mechanisms for implementing additive data-directed invocation, work with partially-specified entities, and how to manage multiple viewpoints. Topics include combinators, generic operations, pattern matching, pattern-directed invocation, rule systems, backtracking, dependencies, indeterminacy, memoization, constraint propagation, and incremental refinement. Students taking graduate version complete additional assignments.


6.58316.814
6.5831 Database Systems

()
Prereqs: (6.1800 and (6.1210 or 6.1220)) or permission of instructor
Units: 3-0-9

Topics related to the engineering and design of database systems, including data models; database and schema design; schema normalization and integrity constraints; query processing; query optimization and cost estimation; transactions; recovery; concurrency control; isolation and consistency; distributed, parallel and heterogeneous databases; adaptive databases; trigger systems; pub-sub systems; semi structured data and XML querying. Lecture and readings from original research papers. Semester-long project and paper. Students taking graduate version complete different assignments. Enrollment may be limited.


6.59316.812
6.5931 Hardware Architecture for Deep Learning

()
Prereqs: 6.1910 and (6.3000 or 6.3900)
Units: 3-3-6

Introduction to the design and implementation of hardware architectures for efficient processing of deep learning algorithms and tensor algebra in AI systems. Topics include basics of deep learning, optimization principles for programmable platforms, design principles of accelerator architectures, co-optimization of algorithms and hardware (including sparsity) and use of advanced technologies (including memristors and optical computing). Includes labs involving modeling and analysis of hardware architectures, architecting deep learning inference systems, and an open-ended design project. Students taking graduate version complete additional assignments.


6.63316.602
6.6331 Fundamentals of Photonics

()
Prereqs: 2.71, 6.2300, or 8.07
Units: 3-0-9

Covers the fundamentals of optics and the interaction of light and matter, leading to devices such as light emitting diodes, optical amplifiers, and lasers. Topics include classical ray, wave, beam, and Fourier optics; Maxwell's electromagnetic waves; resonators; quantum theory of photons; light-matter interaction; laser amplification; lasers; and semiconductors optoelectronics. Students taking graduate version complete additional assignments.


6.71206.247
6.7120 Principles of Modeling, Computing and Control for Decarbonized Electric Energy Systems

()
Prereqs: 6.2200, (6.2000 and 6.3100), or permission of instructor
Units: 4-0-8

Introduces fundamentals of electric energy systems as complex dynamical network systems. Topics include coordinated and distributed modeling and control methods for efficient and reliable power generation, delivery, and consumption; data-enabled algorithms for integrating clean intermittent resources, storage, and flexible demand, including electric vehicles; examples of network congestion management, frequency, and voltage control in electrical grids at various scales; and design and operation of supporting markets. Students taking graduate version complete additional assignments.


6.72016.215
6.7201 Optimization Methods

()
Prereqs: 18.06
Units: 4-0-8

Introduces the principal algorithms for linear, network, discrete, robust, nonlinear, and dynamic optimization. Emphasizes methodology and the underlying mathematical structures. Topics include the simplex method, network flow methods, branch and bound and cutting plane methods for discrete optimization, optimality conditions for nonlinear optimization, interior point methods for convex optimization, Newton's method, heuristic methods, and dynamic programming and optimal control methods. Expectations and evaluation criteria differ for students taking graduate version; consult syllabus or instructor for specific details.


6.74116.405
6.7411 Principles of Digital Communication

()
Prereqs: (6.3000, 6.3100, or 6.3400) and (6.3700, 6.3800, or 18.05)
Units: 3-0-9

Covers communications by progressing through signal representation, sampling, quantization, compression, modulation, coding and decoding, medium access control, and queueing and principles of protocols. By providing simplified proofs, seeks to present an integrated, systems-level view of networking and communications while laying the foundations of analysis and design. Lectures are offered online; in-class time is dedicated to recitations, exercises, and weekly group labs. Homework exercises are based on theoretical derivation and software implementation. Students taking graduate version complete additional assignments.


6.83016.819
6.8301 Advances in Computer Vision

()
Prereqs: (6.1200 or 6.3700) and (18.06 or 18.C06)
Units: 4-0-11

Advanced topics in computer vision with a focus on the use of machine learning techniques and applications in graphics and human-computer interface. Covers image representations, texture models, structure-from-motion algorithms, Bayesian techniques, object and scene recognition, tracking, shape modeling, and image databases. Applications may include face recognition, multimodal interaction, interactive systems, cinematic special effects, and photorealistic rendering. Includes instruction and practice in written and oral communication. Students taking graduate version complete additional assignments.


6.83716.815
6.8371 Digital and Computational Photography

()
Prereqs: GIR:CAL2 and 6.1010
Units: 3-0-9

Presents fundamentals and applications of hardware and software techniques used in digital and computational photography, with an emphasis on software methods. Provides sufficient background to implement solutions to photographic challenges and opportunities. Topics include cameras and image formation, image processing and image representations, high-dynamic-range imaging, human visual perception and color, single view 3-D model reconstruction, morphing, data-rich photography, super-resolution, and image-based rendering. Students taking graduate version complete additional assignments.


6.86116.806
6.8611 Quantitative Methods for Natural Language Processing

()
Prereqs: 6.3900 and (18.06 or 18.C06)
Units: 4-0-11

Introduces the study of human language from a computational perspective, including syntactic, semantic and discourse processing models. Emphasizes machine learning methods and algorithms. Uses these methods and models in applications such as syntactic parsing, information extraction, statistical machine translation, dialogue systems. Instruction and practice in oral and written communication provided. Students taking graduate version complete additional assignments.

6.87016.047
6.8701 Computational Biology: Genomes, Networks, Evolution

()
Prereqs: (GIR:BIOL, 6.1210, and 6.3700) or permission of instructor
Units: 3-0-9

Covers the algorithmic and machine learning foundations of computational biology, combining theory with practice. Principles of algorithm design, influential problems and techniques, and analysis of large-scale biological datasets. Topics include (a) genomes: sequence analysis, gene finding, RNA folding, genome alignment and assembly, database search; (b) networks: gene expression analysis, regulatory motifs, biological network analysis; (c) evolution: comparative genomics, phylogenetics, genome duplication, genome rearrangements, evolutionary theory. These are coupled with fundamental algorithmic techniques including: dynamic programming, hashing, Gibbs sampling, expectation maximization, hidden Markov models, stochastic context-free grammars, graph clustering, dimensionality reduction, Bayesian networks.


6.87116.802
6.8711 Computational Systems Biology: Deep Learning in the Life Sciences

()
Prereqs: (7.05 and (6.100B or 6.9080)) 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.87216.580
6.8721 Principles of Synthetic Biology

()
Prereqs: none
Units: 3-0-9

Introduces the basics of synthetic biology, including quantitative cellular network characterization and modeling. Considers the discovery and genetic factoring of useful cellular activities into reusable functions for design. Emphasizes the principles of biomolecular system design and diagnosis of designed systems. Illustrates cutting-edge applications in synthetic biology and enhances skills in analysis and design of synthetic biological applications. Students taking graduate version complete additional assignments.


6.88016.026
6.8801 Biomedical Signal and Image Processing

()
Prereqs: (6.3700 or permission of instructor) and (2.004, 6.3000, 16.002, or 18.085)
Units: 3-1-8

Fundamentals of digital signal processing with emphasis on problems in biomedical research and clinical medicine. Basic principles and algorithms for processing both deterministic and random signals. Topics include data acquisition, imaging, filtering, coding, feature extraction, and modeling. Lab projects, performed in MATLAB, provide practical experience in processing physiological data, with examples from cardiology, speech processing, and medical imaging. Lectures cover signal processing topics relevant to the lab exercises, as well as background on the biological signals processed in the labs. Students taking graduate version complete additional assignments.


6.90006.010
6.9000 Engineering for Impact

()
Prereqs: 6.1910, 6.2000, and 6.3100
Units: 2-3-7

Students work in large teams to engineer hardware/software systems that solve important problems in society. Topics include requirements, specifications, system design and partitioning, detailed engineering design, prototyping and implementation, test and verification, and the ethical implications of these choices. Explores case studies of existing hardware/software systems to understand implications of different system design choices. Teams design and build functional prototypes of useful systems. Grading is based on individual- and team-based elements. Enrollment may be limited due to staffing and space requirements.


6.90106.08
6.9010 Introduction to EECS via Interconnected Embedded Systems

()
Prereqs/[Coreqs]: 6.100A; [GIR:PHY2]
Units: 1-5-6

Introduction to embedded systems in the context of connected devices, wearables, and the "Internet of Things" (IoT). Topics include microcontrollers, energy utilization, algorithmic efficiency, interfacing with sensors, networking, cryptography, and local versus distributed computation. Students design, make, and program an Internet-connected wearable or handheld device. In the final project, student teams design and demo their own server-connected IoT system. Enrollment limited; preference to first- and second-year students.


6.90206.943
6.9020 How to Make (Almost) Anything

()
Prereqs: Permission of instructor
Units: 3-9-6

Provides a practical hands-on introduction to digital fabrication, including CAD/CAM/CAE, NC machining, 3-D printing and scanning, molding and casting, composites, laser and waterjet cutting, PCB design and fabrication; sensors and actuators; mixed-signal instrumentation, embedded processing, and wired and wireless communications. Develops an understanding of these capabilities through projects using them individually and jointly to create functional systems.


6.90306.163
6.9030 Strobe Project Laboratory

(,)
Prereqs: GIR:PHY2 or permission of instructor
Units: 2-8-2

Application of electronic flash sources to measurement and photography. First half covers fundamentals of photography and electronic flashes, including experiments on application of electronic flash to photography, stroboscopy, motion analysis, and high-speed videography. Students write four extensive lab reports. In the second half, students work in small groups to select, design, and execute independent projects in measurement or photography that apply learned techniques. Project planning and execution skills are discussed and developed over the term. Students engage in extensive written and oral communication exercises. Enrollment limited.


6.90806.01
6.9080 Introduction to EECS via Robotics

()
Prereqs: 6.100A or permission of instructor
Units: 2-4-6

An integrated introduction to electrical engineering and computer science, taught using substantial laboratory experiments with mobile robots. Key issues in the design of engineered artifacts operating in the natural world: measuring and modeling system behaviors; assessing errors in sensors and effectors; specifying tasks; designing solutions based on analytical and computational models; planning, executing, and evaluating experimental tests of performance; refining models and designs. Issues addressed in the context of computer programs, control systems, probabilistic inference problems, circuits and transducers, which all play important roles in achieving robust operation of a large variety of engineered systems.


6.93506.935
6.9350 Financial Market Dynamics and Human Behavior

()
Prereqs: 15.401, 15.414, or 15.415
Units: 4-0-5

Drawing on the latest research in psychology, evolutionary biology, neuroscience, and artificial intelligence, as well as in behavioral and mainstream financial economics, provides new perspectives and insights into the role that human behavior plays in the business environment and the dynamics of financial markets and institutions. Incorporates practical applications from several industries including finance, insurance, biotechnology, pharmaceuticals, and government policy. Students apply ideas from this perspective to formulate original hypotheses regarding new career opportunities and disruptive technologies in their industry of choice. Enrollment may be limited; preference to Sloan graduate students.


6.C01
6.C01 Modeling with Machine Learning: from Algorithms to Applications

()
Prereqs/[Coreqs]: GIR:CAL2 and 6.100A; [1.C01, 2.C01, 3.C01, 7.C01, or 22.C01]
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. Students taking graduate version complete additional assignments. Students cannot receive credit without simultaneous completion of a 6-unit disciplinary module. Enrollment may be limited.

&1.C01
1.C01 Machine Learning for Sustainable Systems

()
Prereqs/[Coreqs]: (1.000 and 1.010) or permission of instructor; [6.C01]
Units: 1-1-4

Building on core material in 6.C01, emphasizes the design and operation of sustainable systems. Illustrates how to leverage heterogeneous data from urban services, cities, and the environment, and apply machine learning methods to evaluate and/or improve sustainability solutions. Provides case studies from various domains, such as transportation and urban mobility, energy and water resources, environmental monitoring, infrastructure sensing and control, climate adaptation, and disaster resilience. Projects focus on using machine learning to identify new insights or decisions that can help engineer sustainability in societal-scale systems. Students taking graduate version complete additional assignments. Students cannot receive credit without simultaneous completion of the core subject 6.C01.


6.C01
6.C01 Modeling with Machine Learning: from Algorithms to Applications

()
Prereqs/[Coreqs]: GIR:CAL2 and 6.100A; [1.C01, 2.C01, 3.C01, 7.C01, or 22.C01]
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. Students taking graduate version complete additional assignments. Students cannot receive credit without simultaneous completion of a 6-unit disciplinary module. Enrollment may be limited.

&10.C01

6.C01
6.C01 Modeling with Machine Learning: from Algorithms to Applications

()
Prereqs/[Coreqs]: GIR:CAL2 and 6.100A; [1.C01, 2.C01, 3.C01, 7.C01, or 22.C01]
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. Students taking graduate version complete additional assignments. Students cannot receive credit without simultaneous completion of a 6-unit disciplinary module. Enrollment may be limited.

&2.C01
2.C01 Physical Systems Modeling and Design Using Machine Learning

()
Prereqs/[Coreqs]: 2.086; [6.C01]
Units: 1-3-2

Building on core material in 6.C01, encourages open-ended exploration of the increasingly topical intersection between artificial intelligence and the physical sciences. Uses energy and information, and their respective optimality conditions, to define supervised and unsupervised learning algorithms as well as ordinary and partial differential equations. Subsequently, physical systems with complex constitutive relationships are drawn from elasticity, biophysics, fluid mechanics, hydrodynamics, acoustics, and electromagnetics to illustrate how machine learning-inspired optimization can approximate solutions to forward and inverse problems in these domains. Students taking graduate version complete additional assignments. Students cannot receive credit without simultaneous completion of 6.C01.


6.C01
6.C01 Modeling with Machine Learning: from Algorithms to Applications

()
Prereqs/[Coreqs]: GIR:CAL2 and 6.100A; [1.C01, 2.C01, 3.C01, 7.C01, or 22.C01]
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. Students taking graduate version complete additional assignments. Students cannot receive credit without simultaneous completion of a 6-unit disciplinary module. Enrollment may be limited.

&20.C01
20.C01 Machine Learning for Molecular Engineering

()
Prereqs/[Coreqs]: GIR:CAL2 and 6.100A; [6.C01]
Units: 2-0-4

Building on core material in 6.C01, provides an introduction to the use of machine learning to solve problems arising in the science and engineering of biology, chemistry, and materials. Equips students to design and implement machine learning approaches to challenges such as analysis of omics (genomics, transcriptomics, proteomics, etc.), microscopy, spectroscopy, or crystallography data and design of new molecules and materials such as drugs, catalysts, polymer, alloys, ceramics, and proteins. Students taking graduate version complete additional assignments. Students cannot receive credit without simultaneous completion of 6.C01.


6.C01
6.C01 Modeling with Machine Learning: from Algorithms to Applications

()
Prereqs/[Coreqs]: GIR:CAL2 and 6.100A; [1.C01, 2.C01, 3.C01, 7.C01, or 22.C01]
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. Students taking graduate version complete additional assignments. Students cannot receive credit without simultaneous completion of a 6-unit disciplinary module. Enrollment may be limited.

&22.C01

6.C01
6.C01 Modeling with Machine Learning: from Algorithms to Applications

()
Prereqs/[Coreqs]: GIR:CAL2 and 6.100A; [1.C01, 2.C01, 3.C01, 7.C01, or 22.C01]
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. Students taking graduate version complete additional assignments. Students cannot receive credit without simultaneous completion of a 6-unit disciplinary module. Enrollment may be limited.

&3.C01

6.C06
6.C06 Linear Algebra and Optimization

()
Prereqs: GIR:CAL2
Units: 5-0-7

Introductory course in linear algebra and optimization, assuming no prior exposure to linear algebra and starting from the basics, including vectors, matrices, eigenvalues, singular values, and least squares. Covers the basics in optimization including convex optimization, linear/quadratic programming, gradient descent, and regularization, building on insights from linear algebra. Explores a variety of applications in science and engineering, where the tools developed give powerful ways to understand complex systems and also extract structure from data.


6.C25
6.C25 Real World Computation with Julia

()
Prereqs: 6.100A, 18.03, and 18.06
Units: 3-0-9

Focuses on algorithms and techniques for writing and using modern technical software in a job, lab, or research group environment that may consist of interdisciplinary teams, where performance may be critical, and where the software needs to be flexible and adaptable. Topics include automatic differentiation, matrix calculus, scientific machine learning, parallel and GPU computing, and performance optimization with introductory applications to climate science, economics, agent-based modeling, and other areas. Labs and projects focus on performant, readable, composable algorithms, and software. Programming will be in Julia. Expects students to have some familiarity with Python, Matlab, or R. No Julia experience necessary.


6.C27
6.C27 Computational Imaging: Physics and Algorithms

()
Prereqs: 18.C06 and (1.00, 1.000, 2.086, 3.019, or 6.100A)
Units: 3-0-9

Explores the contemporary computational understanding of imaging: encoding information about a physical object onto a form of radiation, transferring the radiation through an imaging system, converting it to a digital signal, and computationally decoding and presenting the information to the user. Introduces a unified formulation of computational imaging systems as a three-round "learning spiral": the first two rounds describe the physical and algorithmic parts in two exemplary imaging systems. The third round involves a class project on an imaging system chosen by students. Undergraduate and graduate versions share lectures but have different recitations. Involves optional "clinics" to even out background knowledge of linear algebra, optimization, and computational imaging-related programming best practices for students of diverse disciplinary backgrounds. Students taking graduate version complete additional assignments.


6.C35
6.C35 Interactive Data Visualization and Society

()
Prereqs: none
Units: 3-1-8

Covers the design, ethical, and technical skills for creating effective visualizations. Short assignments build familiarity with the data analysis and visualization design process. Weekly lab sessions present coding and technical skills. A final project provides experience working with real-world big data, provided by external partners, in order to expose and communicate insights about societal issues. Students taking graduate version complete additional assignments. Enrollment limited. Enrollment limited.


6.S041
6.S041 Algorithmic and Human Decision-Making

()
Prereqs: 6.3700 or 6.3800 or 18.05 or 18.600 or 14.300 or 14.32 and 6.3900 or 6.C01
Units: 3-0-9

Introduces students to problems at the intersection of algorithmic and human decision-making, focusing on problem domains such as criminal justice, the health care system, labor market, and others. Introduces the foundations in computer science, economics and psychology needed to integrate our behavioral understanding of people into machine learning. Topics include supervised learning, decision-making under uncertainty, behavioral economics, recommendation systems, and fairness/discrimination. Guest lectures by experts designing live algorithms in these domains, and culminates in student projects.


6.S046
6.S046 Silicon Photonics

()
Prereqs: 6.2300 or 8.07
Units: 3-0-9

[Meets with 6.S976] Covers the foundational concepts behind silicon photonics based in electromagnetics, optics, and device physics; the design of silicon-photonics-based devices (including waveguides, couplers, splitters, resonators, antennas, modulators, detectors, and lasers) using both theoretical analysis and numerical simulation tools; the engineering of silicon-photonics-based circuits and systems with a focus on a variety of applications areas (spanning computing, communications, sensing, quantum, displays, and biophotonics); the development of silicon-photonics-based platforms, including fabrication and materials considerations; and the characterization of these silicon-photonics-based devices and systems through hands-on laboratory demonstrations and projects. Students taking graduate version complete additional assignments.


6.S059
6.S059 Causal Inference

()
Prereqs: 6.3800, 6.3900, 6.C01, 14.32, 17.803, 18.05, 18.650, or permission of instructor
Units: 4-0-8

[Meets with 15.C08, 17.C08] Provides an accessible overview of modern quantitative methods for causal inference: testing whether an action causes an outcome to occur. Makes heavy use of applied, real-data examples using Python or R and drawn from the participating domains (economics, political science, business, public policy, etc.). Covers topics including potential outcomes, causal graphs, randomized controlled trials, observational studies, instrumental variable estimation, and a contrast with machine learning techniques. Seeks to provide an intuitive understanding of the core concepts and techniques to help students produce and consume evidence of causal claims.


6.S079
6.S079 Software Systems for Data Science

()
Prereqs: (6.100A, 6.100B, and 6.1210) or permission of instructor
Units: 3-0-9

In this course we review the important role of semiconductor devices in patient monitoring and point of care. This includes technologies such as electrochemical, ultrasonic,magnetic, optical, and RF sensing modalities. We cover some of the basics of each device as well as physics and biology of device/human interaction.


6.UAR
6.UAR Seminar in Undergraduate Advanced Research

(,)
Prereqs: Permission of instructor
Units: 2-0-4

Instruction in effective undergraduate research, including choosing and developing a research topic, surveying previous work and publications, research topics in EECS and the School of Engineering, industry best practices, design for robustness, technical presentation, authorship and collaboration, and ethics. Students engage in extensive written and oral communication exercises, in the context of an approved advanced research project. A total of 12 units of credit is awarded for completion of the fall and subsequent spring term offerings. Application required; consult EECS SuperUROP website for more information.


6.UAT
6.UAT Oral Communication

()
Prereqs: none
Units: 3-0-6

Provides instruction in aspects of effective technical oral presentations and exposure to communication skills useful in a workplace setting. Students create, give and revise a number of presentations of varying length targeting a range of different audiences. Enrollment may be limited.


CC.1803
CC.1803 Differential Equations

()
Prereqs/[Coreqs]: [GIR:CAL2 and (CC.010, CC.011, or CC.A10)]
Units: 5-0-7

Equivalent to 18.03; see 18.03 for description. Limited to students in Concourse.


ES.1803
ES.1803 Differential Equations

(,)
Prereqs/[Coreqs]: [GIR:CAL2]
Units: 5-0-7

Equivalent to 18.03; see 18.03 for description. Instruction provided through small, interactive classes. Limited to students in ESG.


EE12: EE subjects at levels 1 and 2
6.20006.002
6.2000 Electrical Circuits: Modeling and Design of Physical Systems

(,)
Prereqs: GIR:PHY2
Units: 3-2-7

Fundamentals of linear systems, and abstraction modeling of multi-physics lumped and distributed systems using lumped electrical circuits. Linear networks involving independent and dependent sources, resistors, capacitors, and inductors. Extensions to include operational amplifiers and transducers. Dynamics of first- and second-order networks; analysis and design in the time and frequency domains; signal and energy processing applications. Design exercises. Weekly laboratory with microcontroller and transducers.


6.22106.014
6.2210 Electromagnetic Fields, Forces and Motion

()
Prereqs: GIR:PHY2 and 18.03
Units: 4-0-8

Study of electromagnetics and electromagnetic energy conversion leading to an understanding of devices, including electromagnetic sensors, actuators, motors and generators. Quasistatic Maxwell's equations and the Lorentz force law. Studies of the quasistatic fields and their sources through solutions of Poisson's and Laplace's equations. Boundary conditions and multi-region boundary-value problems. Steady-state conduction, polarization, and magnetization. Charge conservation and relaxation, and magnetic induction and diffusion. Extension to moving materials. Electric and magnetic forces and force densities derived from energy, and stress tensors. Extensive use of engineering examples. Students taking graduate version complete additional assignments.


6.23006.013
6.2300 Electromagnetics Waves and Applications

()
Prereqs: GIR:CAL2 and GIR:PHY2
Units: 3-5-4

Analysis and design of modern applications that employ electromagnetic phenomena for signals and power transmission in RF, microwaves, optical and wireless communication systems. Fundamentals include dynamic solutions for Maxwell's equations; electromagnetic power and energy, waves in media, metallic and dielectric waveguides, radiation, and diffraction; resonance; filters; and acoustic analogs. Lab activities range from building to testing of devices and systems (e.g., antenna arrays, radars, dielectric waveguides). Students work in teams on self-proposed maker-style design projects with a focus on fostering creativity, teamwork, and debugging skills. 6.2000 and 6.3000 are recommended but not required.


6.25006.012
6.2500 Nanoelectronics and Computing Systems

()
Prereqs: 6.2000
Units: 4-0-8

Studies interaction between materials, semiconductor physics, electronic devices, and computing systems. Develops intuition of how transistors operate. Topics range from introductory semiconductor physics to modern state-of-the-art nano-scale devices. Considers how innovations in devices have driven historical progress in computing, and explores ideas for further improvements in devices and computing. Students apply material to understand how building improved computing systems requires knowledge of devices, and how making the correct device requires knowledge of computing systems. Includes a design project for practical application of concepts, and labs for experience building silicon transistors and devices.

6.30006.003
6.3000 Signal Processing

(,)
Prereqs: 6.100A and 18.03
Units: 6-0-6

Fundamentals of signal processing, focusing on the use of Fourier methods to analyze and process signals such as sounds and images. Topics include Fourier series, Fourier transforms, the Discrete Fourier Transform, sampling, convolution, deconvolution, filtering, noise reduction, and compression. Applications draw broadly from areas of contemporary interest with emphasis on both analysis and design.


6.30106.011
6.3010 Signals, Systems and Inference

()
Prereqs: 6.3000 and (6.3700, 6.3800, or 18.05)
Units: 4-0-8

Covers signals, systems and inference in communication, control and signal processing. Topics include input-output and state-space models of linear systems driven by deterministic and random signals; time- and transform-domain representations in discrete and continuous time; and group delay. State feedback and observers. Probabilistic models; stochastic processes, correlation functions, power spectra, spectral factorization. Least-mean square error estimation; Wiener filtering. Hypothesis testing; detection; matched filters.


6.48106.021
6.4810 Cellular Neurophysiology and Computing

()
Prereqs: (GIR:PHY2, 18.03, and (2.005, 6.2000, 6.3000, 10.301, or 20.110)) or permission of instructor
Units: 5-2-5

Integrated overview of the biophysics of cells from prokaryotes to neurons, with a focus on mass transport and electrical signal generation across cell membrane. First third of course focuses on mass transport through membranes: diffusion, osmosis, chemically mediated, and active transport. Second third focuses on electrical properties of cells: ion transport to action potential generation and propagation in electrically excitable cells. Synaptic transmission. Electrical properties interpreted via kinetic and molecular properties of single voltage-gated ion channels. Final third focuses on biophysics of synaptic transmission and introduction to neural computing. Laboratory and computer exercises illustrate the concepts. Students taking graduate version complete different assignments. Preference to juniors and seniors.


6.62106.640
6.6210 Electromagnetic Fields, Forces and Motion

()
Prereqs: GIR:PHY2 and 18.03
Units: 4-0-8

Study of electromagnetics and electromagnetic energy conversion leading to an understanding of devices, including electromagnetic sensors, actuators, motors and generators. Quasistatic Maxwell's equations and the Lorentz force law. Studies of the quasistatic fields and their sources through solutions of Poisson's and Laplace's equations. Boundary conditions and multi-region boundary-value problems. Steady-state conduction, polarization, and magnetization. Charge conservation and relaxation, and magnetic induction and diffusion. Extension to moving materials. Electric and magnetic forces and force densities derived from energy, and stress tensors. Extensive use of engineering examples. Students taking graduate version complete additional assignments.


EECS12: EECS subjects at levels 1 and 2
6.19106.004
6.1910 Computation Structures

(,)
Prereqs: GIR:PHY2, 6.100A, and (6.1900 or 6.9010)
Units: 4-0-8

Provides an introduction to the design of digital systems and computer architecture. Emphasizes expressing all hardware designs in a high-level hardware language and synthesizing the designs. Topics include combinational and sequential circuits, instruction set abstraction for programmable hardware, single-cycle and pipelined processor implementations, multi-level memory hierarchies, virtual memory, exceptions and I/O, and parallel systems.


6.38006.008
6.3800 Introduction to Inference

()
Prereqs: GIR:CAL2 or permission of instructor
Units: 4-4-4

Introduces probabilistic modeling for problems of inference and machine learning from data, emphasizing analytical and computational aspects. Distributions, marginalization, conditioning, and structure, including graphical and neural network representations. Belief propagation, decision-making, classification, estimation, and prediction. Sampling methods and analysis. Introduces asymptotic analysis and information measures. Computational laboratory component explores the concepts introduced in class in the context of contemporary applications. Students design inference algorithms, investigate their behavior on real data, and discuss experimental results.


6.39006.036
6.3900 Introduction to Machine Learning

(,)
Prereqs: (6.1010 or 6.1210) and (18.06, 18.700, or 18.C06)
Units: 4-0-8

Introduces principles, algorithms, and applications of machine learning from the point of view of modeling and prediction; formulation of learning problems; representation, over-fitting, generalization; clustering, classification, probabilistic modeling; and methods such as support vector machines, hidden Markov models, and neural networks. Recommended prerequisites: 6.1210 and 18.06. Enrollment may be limited.


SERC: Social and Ethical Responsibilies of Computing
6.39006.036
6.3900 Introduction to Machine Learning

(,)
Prereqs: (6.1010 or 6.1210) and (18.06, 18.700, or 18.C06)
Units: 4-0-8

Introduces principles, algorithms, and applications of machine learning from the point of view of modeling and prediction; formulation of learning problems; representation, over-fitting, generalization; clustering, classification, probabilistic modeling; and methods such as support vector machines, hidden Markov models, and neural networks. Recommended prerequisites: 6.1210 and 18.06. Enrollment may be limited.


6.39506.404
6.3950 AI, Decision Making, and Society

()
Prereqs/[Coreqs]: [6.1200, 6.3700, 6.3800, 18.05, or 18.600]
Units: 4-0-8

Introduction to fundamentals of modern data-driven decision-making frameworks, such as causal inference and hypothesis testing in statistics as well as supervised and reinforcement learning in machine learning. Explores how these frameworks are being applied in various societal contexts, including criminal justice, healthcare, finance, and social media. Emphasis on pinpointing the non-obvious interactions, undesirable feedback loops, and unintended consequences that arise in such settings. Enables students to develop their own principled perspective on the interface of data-driven decision making and society. Students taking graduate version complete additional assignments.


6.45906.805
6.4590 Foundations of Information Policy

()
Prereqs: Permission of instructor
Units: 3-0-9

Studies the growth of computer and communications technology and the new legal and ethical challenges that reflect tensions between individual rights and societal needs. Topics include computer crime; intellectual property restrictions on software; encryption, privacy, and national security; academic freedom and free speech. Students meet and question technologists, activists, law enforcement agents, journalists, and legal experts. Instruction and practice in oral and written communication provided. Students taking graduate version complete additional assignments. Enrollment limited.

6.83016.819
6.8301 Advances in Computer Vision

()
Prereqs: (6.1200 or 6.3700) and (18.06 or 18.C06)
Units: 4-0-11

Advanced topics in computer vision with a focus on the use of machine learning techniques and applications in graphics and human-computer interface. Covers image representations, texture models, structure-from-motion algorithms, Bayesian techniques, object and scene recognition, tracking, shape modeling, and image databases. Applications may include face recognition, multimodal interaction, interactive systems, cinematic special effects, and photorealistic rendering. Includes instruction and practice in written and oral communication. Students taking graduate version complete additional assignments.


6.86116.806
6.8611 Quantitative Methods for Natural Language Processing

()
Prereqs: 6.3900 and (18.06 or 18.C06)
Units: 4-0-11

Introduces the study of human language from a computational perspective, including syntactic, semantic and discourse processing models. Emphasizes machine learning methods and algorithms. Uses these methods and models in applications such as syntactic parsing, information extraction, statistical machine translation, dialogue systems. Instruction and practice in oral and written communication provided. Students taking graduate version complete additional assignments.


6.S041
6.S041 Algorithmic and Human Decision-Making

()
Prereqs: 6.3700 or 6.3800 or 18.05 or 18.600 or 14.300 or 14.32 and 6.3900 or 6.C01
Units: 3-0-9

Introduces students to problems at the intersection of algorithmic and human decision-making, focusing on problem domains such as criminal justice, the health care system, labor market, and others. Introduces the foundations in computer science, economics and psychology needed to integrate our behavioral understanding of people into machine learning. Topics include supervised learning, decision-making under uncertainty, behavioral economics, recommendation systems, and fairness/discrimination. Guest lectures by experts designing live algorithms in these domains, and culminates in student projects.


II: Independent inquiry. Also see grad_II list below. A subject provides an II experience if at least 40% of the grade in a 12-unit subject depends on a single relatively open-ended project. The student should be involved in defining the project. Projects may be done singly or in groups; they may be analytical or empirical in nature. They should be supervised in the sense that at least one milestone (proposal, outline, presentation) is evaluated and the student given feedback before the final deadline.
6.10406.170
6.1040 Software Design

()
Prereqs: 6.1020 and 6.1200
Units: 4-0-14

Provides design-focused instruction on how to build complex software applications. Design topics include classic human-computer interaction (HCI) design tactics (need finding, heuristic evaluation, prototyping, user testing), conceptual design (inventing, modeling and evaluating constituent concepts), social and ethical implications, abstract data modeling, and visual design. Implementation topics include reactive front-ends, web services, and databases. Students work both on individual projects and a larger team project in which they design and build full-stack web applications.


6.10606.172
6.1060 Software Performance Engineering

()
Prereqs: 6.1020, 6.1210, and 6.1910
Units: 3-12-3

Project-based introduction to building efficient, high-performance and scalable software systems. Topics include performance analysis, algorithmic techniques for high performance, instruction-level optimizations, vectorization, cache and memory hierarchy optimization, and parallel programming.


6.11006.035
6.1100 Computer Language Engineering

()
Prereqs: 6.1020 and 6.1910
Units: 4-4-4

Analyzes issues associated with the implementation of higher-level programming languages. Fundamental concepts, functions, and structures of compilers. The interaction of theory and practice. Using tools in building software. Includes a multi-person project on compiler design and implementation.


6.11206.818
6.1120 Dynamic Computer Language Engineering

()
Prereqs: 6.1020 or 6.1910
Units: 4-4-4

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. Includes a semester-long, group project that delivers a virtual machine that spans all of these topics.


6.14206.054
6.1420 Fixed Parameter and Fine-grained Computation

()
Prereqs: 6.1200, 6.1210, and (6.1220, 6.1400, or 18.404)
Units: 3-0-9

An overview of the theory of parameterized algorithms and the "problem-centric" theory of fine-grained complexity, both of which reconsider how to measure the difficulty and feasibility of solving computational problems. Topics include: fixed-parameter tractability (FPT) and its characterizations, the W-hierarchy (W[1], W[2], W[P], etc.), 3-sum-hardness, all-pairs shortest paths (APSP)-equivalences, strong exponential time hypothesis (SETH) hardness of problems, and the connections to circuit complexity and other aspects of computing.


6.18206.808
6.1820 Mobile and Sensor Computing

()
Prereqs: 6.1800 or permission of instructor
Units: 3-0-9

Focuses on "Internet of Things" (IoT) systems and technologies, sensing, computing, and communication. Explores fundamental design and implementation issues in the engineering of mobile and sensor computing systems. Topics include battery-free sensors, seeing through wall, robotic sensors, vital sign sensors (breathing, heartbeats, emotions), sensing in cars and autonomous vehicles, subsea IoT, sensor security, positioning technologies (including GPS and indoor WiFi), inertial sensing (accelerometers, gyroscopes, inertial measurement units, dead-reckoning), embedded and distributed system architectures, sensing with radio signals, sensing with microphones and cameras, wireless sensor networks, embedded and distributed system architectures, mobile libraries and APIs to sensors, and application case studies. Includes readings from research literature, as well as laboratory assignments and a significant term project.


6.18506.052
6.1850 Computer Systems and Society

()
Prereqs: 6.1800
Units: 3-0-9

Explores the impact of computer systems on individual humans, society, and the environment. Examines large- and small-scale power structures that stem from low-level technical design decisions, the consequences of those structures on society, and how they can limit or provide access to certain technologies. Students learn to assess 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 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; and the environmental impact of proof-of-work-based systems such as Bitcoin. Enrollment may be limited.


6.20406.101
6.2040 Analog Electronics Laboratory

()
Prereqs: 6.2000
Units: 2-9-1

Experimental laboratory explores the design, construction, and debugging of analog electronic circuits. Lectures and laboratory projects in the first half of the course investigate the performance characteristics of semiconductor devices (diodes, BJTs, and MOSFETs) and functional analog building blocks, including single-stage amplifiers, op amps, small audio amplifier, filters, converters, sensor circuits, and medical electronics (ECG, pulse-oximetry). Projects involve design, implementation, and presentation in an environment similar to that of industry engineering design teams. Instruction and practice in written and oral communication provided. Opportunity to simulate real-world problems and solutions that involve tradeoffs and the use of engineering judgment.


6.20506.111
6.2050 Digital Systems Laboratory

()
Prereqs: 6.1910 or permission of instructor
Units: 3-7-2

Lab-intensive subject that investigates digital systems with a focus on FPGAs. Lectures and labs cover logic, flip flops, counters, timing, synchronization, finite-state machines, digital signal processing, communication protocols, and modern sensors. Prepares students for the design and implementation of a large-scale final project of their choice: games, music, digital filters, wireless communications, video, or graphics. Extensive use of System/Verilog for describing and implementing and verifying digital logic designs.

6.20616.1151
6.2061 Microcomputer Project Laboratory - Independent Inquiry

()
Prereqs: 6.1910, 6.2000, or 6.3000
Units: 3-9-3

Introduces analysis and design of embedded systems. Microcontrollers provide adaptation, flexibility, and real-time control. Emphasizes construction of complete systems, including a five-axis robot arm, a fluorescent lamp ballast, a tomographic imaging station (e.g., a CAT scan), and a simple calculator. Presents a wide range of basic tools, including software and development tools, programmable system on chip, peripheral components such as A/D converters, communication schemes, signal processing techniques, closed-loop digital feedback control, interface and power electronics, and modeling of electromechanical systems. Includes a sequence of assigned projects, followed by a final project of the student's choice, emphasizing creativity and uniqueness. Provides instruction in written and oral communication. Students taking independent inquiry version 6.2061 expand the scope of their laboratory project.


6.22216.1311
6.2221 Power Electronics Laboratory - Independent Inquiry

()
Prereqs: 6.2000 or 6.3000
Units: 3-9-3

Introduces the design and construction of power electronic circuits and motor drives. Laboratory exercises 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 include DC, induction, and permanent magnet motors, with drive considerations. Provides instruction in written and oral communication. To satisfy the independent inquiry component of this subject, students expand the scope of their laboratory project.


6.23706.161
6.2370 Modern Optics Project Laboratory

()
Prereqs: 6.3000
Units: 3-5-4

Lectures, laboratory exercises and projects on optical signal generation, transmission, detection, storage, processing and display. Topics include polarization properties of light; reflection and refraction; coherence and interference; Fraunhofer and Fresnel diffraction; holography; Fourier optics; coherent and incoherent imaging and signal processing systems; optical properties of materials; lasers and LEDs; electro-optic and acousto-optic light modulators; photorefractive and liquid-crystal light modulation; display technologies; optical waveguides and fiber-optic communication systems; photodetectors. Students may use this subject to find an advanced undergraduate project. Students engage in extensive oral and written communication exercises. Recommended prerequisite: 8.03.


6.24106.157
6.2410 Quantum Engineering Platforms

()
Prereqs: 6.2400, 6.6400, 18.435, or (8.04 and 8.05)
Units: 1-5-6

Provides practical knowledge and quantum engineering experience with several physical platforms for quantum computation, communication, and sensing, including photonics, superconducting qubits, and trapped ions. Labs include both a hardware component — to gain experience with challenges, design, and non-idealities — and a cloud component to run algorithms on state of the art commercial systems. Use entangled photons to communicate securely (quantum key distribution). Run quantum algorithms on trapped ion and superconducting quantum computers. 


6.37306.419
6.3730 Statistics, Computation and Applications

()
Prereqs: (6.100B, (18.03, 18.06, or 18.C06), and (6.3700, 6.3800, 14.30, 16.09, or 18.05)) or permission of instructor
Units: 3-1-8

Hands-on analysis of data demonstrates the interplay between statistics and computation. Includes four modules, each centered on a specific data set, and introduced by a domain expert. Provides instruction in specific, relevant analysis methods and corresponding algorithmic aspects. Potential modules may include medical data, gene regulation, social networks, finance data (time series), traffic, transportation, weather forecasting, policy, or industrial web applications. Projects address a large-scale data analysis question. Students taking graduate version complete additional assignments. Enrollment limited; priority to Statistics and Data Science minors, and to juniors and seniors.


6.41206.804
6.4120 Computational Cognitive Science

()
Prereqs: 6.3700, 6.3800, 9.40, 18.05, 6.3900, or permission of instructor
Units: 3-0-9

Introduction to computational theories of human cognition. Focus on principles of inductive learning and inference, and the representation of knowledge. Computational frameworks covered include Bayesian and hierarchical Bayesian models; probabilistic graphical models; nonparametric statistical models and the Bayesian Occam's razor; sampling algorithms for approximate learning and inference; and probabilistic models defined over structured representations such as first-order logic, grammars, or relational schemas. Applications to understanding core aspects of cognition, such as concept learning and categorization, causal reasoning, theory formation, language acquisition, and social inference. Graduate students complete a final project.


6.42006.141
6.4200 Robotics: Science and Systems

()
Prereqs: ((1.00 or 6.100A) and (2.003, 6.1010, 6.1210, or 16.06)) or permission of instructor
Units: 2-6-4

Presents concepts, principles, and algorithmic foundations for robots and autonomous vehicles operating in the physical world. Topics include sensing, kinematics and dynamics, state estimation, computer vision, perception, learning, control, motion planning, and embedded system development. Students design and implement advanced algorithms on complex robotic platforms capable of agile autonomous navigation and real-time interaction with the physical word. Students engage in extensive written and oral communication exercises. Enrollment limited.


6.42106.800
6.4210 Robotic Manipulation

()
Prereqs: (6.100A and 6.3900) or permission of instructor
Units: 4-2-9

Introduces the fundamental algorithmic approaches for creating robot systems that can autonomously manipulate physical objects in unstructured environments such as homes and restaurants. Topics include perception (including approaches based on deep learning and approaches based on 3D geometry), planning (robot kinematics and trajectory generation, collision-free motion planning, task-and-motion planning, and planning under uncertainty), as well as dynamics and control (both model-based and learning-based). Students taking graduate version complete additional assignments. Students engage in extensive written and oral communication exercises.


6.44206.807
6.4420 Computational Design and Fabrication

()
Prereqs: GIR:CAL2 and (6.1010 or permission of instructor)
Units: 3-0-9

Introduces computational aspects of computer-aided design and manufacturing. Explores relevant methods in the context of additive manufacturing (e.g., 3D printing). Topics include computer graphics (geometry modeling, solid modeling, procedural modeling), physically-based simulation (kinematics, finite element method), 3D scanning/geometry processing, and an overview of 3D fabrication methods. Exposes students to the latest research in computational fabrication. Students taking the graduate version complete additional assignments.

6.45106.810
6.4510 Engineering Interactive Technologies

()
Prereqs: 6.1020, 6.2050, 6.2060, 6.9010, or permission of instructor
Units: 1-5-6

Provides instruction in building cutting-edge interactive technologies, explains the underlying engineering concepts, and shows how those technologies evolved over time. Students use a studio format (i.e., extended periods of time) for constructing software and hardware prototypes. Topics include interactive technologies, such as multi-touch, augmented reality, haptics, wearables, and shape-changing interfaces. In a group project, students build their own interactive hardware/software prototypes and present them in a live demo at the end of term. Enrollment may be limited.


6.45306.811
6.4530 Principles and Practice of Assistive Technology

()
Prereqs: Permission of instructor
Units: 2-4-6

Students work closely with people with disabilities to develop assistive and adaptive technologies that help them live more independently. Covers design methods and problem-solving strategies; human factors; human-machine interfaces; community perspectives; social and ethical aspects; and assistive technology for motor, cognitive, perceptual, and age-related impairments. Prior knowledge of one or more of the following areas useful: software; electronics; human-computer interaction; cognitive science; mechanical engineering; control; or MIT hobby shop, MIT PSC, or other relevant independent project experience. Enrollment may be limited.


6.45906.805
6.4590 Foundations of Information Policy

()
Prereqs: Permission of instructor
Units: 3-0-9

Studies the growth of computer and communications technology and the new legal and ethical challenges that reflect tensions between individual rights and societal needs. Topics include computer crime; intellectual property restrictions on software; encryption, privacy, and national security; academic freedom and free speech. Students meet and question technologists, activists, law enforcement agents, journalists, and legal experts. Instruction and practice in oral and written communication provided. Students taking graduate version complete additional assignments. Enrollment limited.


6.48806.129
6.4880 Biological Circuit Engineering Laboratory

()
Prereqs: GIR:BIOL and GIR:CAL2
Units: 2-8-2

Students assemble individual genes and regulatory elements into larger-scale circuits; they experimentally characterize these circuits in yeast cells using quantitative techniques, including flow cytometry, and model their results computationally. Emphasizes concepts and techniques to perform independent experimental and computational synthetic biology research. Discusses current literature and ongoing research in the field of synthetic biology. Instruction and practice in oral and written communication provided. Enrollment limited.


6.51516.905
6.5151 Large-scale Symbolic Systems

()
Prereqs: 6.4100 or permission of instructor
Units: 3-0-9

Concepts and techniques for the design and implementation of large software systems that can be adapted to uses not anticipated by the designer. Applications include compilers, computer-algebra systems, deductive systems, and some artificial intelligence applications. Covers means for decoupling goals from strategy, mechanisms for implementing additive data-directed invocation, work with partially-specified entities, and how to manage multiple viewpoints. Topics include combinators, generic operations, pattern matching, pattern-directed invocation, rule systems, backtracking, dependencies, indeterminacy, memoization, constraint propagation, and incremental refinement. Students taking graduate version complete additional assignments.


6.83016.819
6.8301 Advances in Computer Vision

()
Prereqs: (6.1200 or 6.3700) and (18.06 or 18.C06)
Units: 4-0-11

Advanced topics in computer vision with a focus on the use of machine learning techniques and applications in graphics and human-computer interface. Covers image representations, texture models, structure-from-motion algorithms, Bayesian techniques, object and scene recognition, tracking, shape modeling, and image databases. Applications may include face recognition, multimodal interaction, interactive systems, cinematic special effects, and photorealistic rendering. Includes instruction and practice in written and oral communication. Students taking graduate version complete additional assignments.


6.86116.806
6.8611 Quantitative Methods for Natural Language Processing

()
Prereqs: 6.3900 and (18.06 or 18.C06)
Units: 4-0-11

Introduces the study of human language from a computational perspective, including syntactic, semantic and discourse processing models. Emphasizes machine learning methods and algorithms. Uses these methods and models in applications such as syntactic parsing, information extraction, statistical machine translation, dialogue systems. Instruction and practice in oral and written communication provided. Students taking graduate version complete additional assignments.


6.87016.047
6.8701 Computational Biology: Genomes, Networks, Evolution

()
Prereqs: (GIR:BIOL, 6.1210, and 6.3700) or permission of instructor
Units: 3-0-9

Covers the algorithmic and machine learning foundations of computational biology, combining theory with practice. Principles of algorithm design, influential problems and techniques, and analysis of large-scale biological datasets. Topics include (a) genomes: sequence analysis, gene finding, RNA folding, genome alignment and assembly, database search; (b) networks: gene expression analysis, regulatory motifs, biological network analysis; (c) evolution: comparative genomics, phylogenetics, genome duplication, genome rearrangements, evolutionary theory. These are coupled with fundamental algorithmic techniques including: dynamic programming, hashing, Gibbs sampling, expectation maximization, hidden Markov models, stochastic context-free grammars, graph clustering, dimensionality reduction, Bayesian networks.


6.90006.010
6.9000 Engineering for Impact

()
Prereqs: 6.1910, 6.2000, and 6.3100
Units: 2-3-7

Students work in large teams to engineer hardware/software systems that solve important problems in society. Topics include requirements, specifications, system design and partitioning, detailed engineering design, prototyping and implementation, test and verification, and the ethical implications of these choices. Explores case studies of existing hardware/software systems to understand implications of different system design choices. Teams design and build functional prototypes of useful systems. Grading is based on individual- and team-based elements. Enrollment may be limited due to staffing and space requirements.

6.90306.163
6.9030 Strobe Project Laboratory

(,)
Prereqs: GIR:PHY2 or permission of instructor
Units: 2-8-2

Application of electronic flash sources to measurement and photography. First half covers fundamentals of photography and electronic flashes, including experiments on application of electronic flash to photography, stroboscopy, motion analysis, and high-speed videography. Students write four extensive lab reports. In the second half, students work in small groups to select, design, and execute independent projects in measurement or photography that apply learned techniques. Project planning and execution skills are discussed and developed over the term. Students engage in extensive written and oral communication exercises. Enrollment limited.


6.C01
6.C01 Modeling with Machine Learning: from Algorithms to Applications

()
Prereqs/[Coreqs]: GIR:CAL2 and 6.100A; [1.C01, 2.C01, 3.C01, 7.C01, or 22.C01]
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. Students taking graduate version complete additional assignments. Students cannot receive credit without simultaneous completion of a 6-unit disciplinary module. Enrollment may be limited.

&6.S052
6.S052 Modeling with Machine Learning for Computer Science

()
Prereqs: 6.S084/18.061 or 18.06 or equivalent; 6.1200 or 6.3700, 6.100A or equivalent; Co-req 6.C01
Units: 3-0-3

[Meets with 6.S952] Focuses on in-depth modeling of engineering tasks as machine learning problems. Emphasizes framing, method design, and interpretation of results. In comparison to broader co-requisite 6.C01/6.C51, this project oriented subject consists of deep dives into select technical areas or engineering tasks involving both supervised and exploratory uses of machine learning. Deep dives into technical areas such robustness, interpretability, privacy or causal discovery; engineering tasks such as recommender systems, performance optimization, or automated design. This 6-unit subject must be taken together with the 6-unit core subject 6.C01. Enrollment may be limited.


6.C25
6.C25 Real World Computation with Julia

()
Prereqs: 6.100A, 18.03, and 18.06
Units: 3-0-9

Focuses on algorithms and techniques for writing and using modern technical software in a job, lab, or research group environment that may consist of interdisciplinary teams, where performance may be critical, and where the software needs to be flexible and adaptable. Topics include automatic differentiation, matrix calculus, scientific machine learning, parallel and GPU computing, and performance optimization with introductory applications to climate science, economics, agent-based modeling, and other areas. Labs and projects focus on performant, readable, composable algorithms, and software. Programming will be in Julia. Expects students to have some familiarity with Python, Matlab, or R. No Julia experience necessary.


6.C35
6.C35 Interactive Data Visualization and Society

()
Prereqs: none
Units: 3-1-8

Covers the design, ethical, and technical skills for creating effective visualizations. Short assignments build familiarity with the data analysis and visualization design process. Weekly lab sessions present coding and technical skills. A final project provides experience working with real-world big data, provided by external partners, in order to expose and communicate insights about societal issues. Students taking graduate version complete additional assignments. Enrollment limited. Enrollment limited.


6.S041
6.S041 Algorithmic and Human Decision-Making

()
Prereqs: 6.3700 or 6.3800 or 18.05 or 18.600 or 14.300 or 14.32 and 6.3900 or 6.C01
Units: 3-0-9

Introduces students to problems at the intersection of algorithmic and human decision-making, focusing on problem domains such as criminal justice, the health care system, labor market, and others. Introduces the foundations in computer science, economics and psychology needed to integrate our behavioral understanding of people into machine learning. Topics include supervised learning, decision-making under uncertainty, behavioral economics, recommendation systems, and fairness/discrimination. Guest lectures by experts designing live algorithms in these domains, and culminates in student projects.


6.S079
6.S079 Software Systems for Data Science

()
Prereqs: (6.100A, 6.100B, and 6.1210) or permission of instructor
Units: 3-0-9

In this course we review the important role of semiconductor devices in patient monitoring and point of care. This includes technologies such as electrochemical, ultrasonic,magnetic, optical, and RF sensing modalities. We cover some of the basics of each device as well as physics and biology of device/human interaction.


6.UAR
6.UAR Seminar in Undergraduate Advanced Research

(,)
Prereqs: Permission of instructor
Units: 2-0-4

Instruction in effective undergraduate research, including choosing and developing a research topic, surveying previous work and publications, research topics in EECS and the School of Engineering, industry best practices, design for robustness, technical presentation, authorship and collaboration, and ethics. Students engage in extensive written and oral communication exercises, in the context of an approved advanced research project. A total of 12 units of credit is awarded for completion of the fall and subsequent spring term offerings. Application required; consult EECS SuperUROP website for more information.


PLAB: Project-Based Design Laboratory for 6-2 (new)
6.11006.035
6.1100 Computer Language Engineering

()
Prereqs: 6.1020 and 6.1910
Units: 4-4-4

Analyzes issues associated with the implementation of higher-level programming languages. Fundamental concepts, functions, and structures of compilers. The interaction of theory and practice. Using tools in building software. Includes a multi-person project on compiler design and implementation.


6.18206.808
6.1820 Mobile and Sensor Computing

()
Prereqs: 6.1800 or permission of instructor
Units: 3-0-9

Focuses on "Internet of Things" (IoT) systems and technologies, sensing, computing, and communication. Explores fundamental design and implementation issues in the engineering of mobile and sensor computing systems. Topics include battery-free sensors, seeing through wall, robotic sensors, vital sign sensors (breathing, heartbeats, emotions), sensing in cars and autonomous vehicles, subsea IoT, sensor security, positioning technologies (including GPS and indoor WiFi), inertial sensing (accelerometers, gyroscopes, inertial measurement units, dead-reckoning), embedded and distributed system architectures, sensing with radio signals, sensing with microphones and cameras, wireless sensor networks, embedded and distributed system architectures, mobile libraries and APIs to sensors, and application case studies. Includes readings from research literature, as well as laboratory assignments and a significant term project.


6.20406.101
6.2040 Analog Electronics Laboratory

()
Prereqs: 6.2000
Units: 2-9-1

Experimental laboratory explores the design, construction, and debugging of analog electronic circuits. Lectures and laboratory projects in the first half of the course investigate the performance characteristics of semiconductor devices (diodes, BJTs, and MOSFETs) and functional analog building blocks, including single-stage amplifiers, op amps, small audio amplifier, filters, converters, sensor circuits, and medical electronics (ECG, pulse-oximetry). Projects involve design, implementation, and presentation in an environment similar to that of industry engineering design teams. Instruction and practice in written and oral communication provided. Opportunity to simulate real-world problems and solutions that involve tradeoffs and the use of engineering judgment.


6.20506.111
6.2050 Digital Systems Laboratory

()
Prereqs: 6.1910 or permission of instructor
Units: 3-7-2

Lab-intensive subject that investigates digital systems with a focus on FPGAs. Lectures and labs cover logic, flip flops, counters, timing, synchronization, finite-state machines, digital signal processing, communication protocols, and modern sensors. Prepares students for the design and implementation of a large-scale final project of their choice: games, music, digital filters, wireless communications, video, or graphics. Extensive use of System/Verilog for describing and implementing and verifying digital logic designs.


6.20606.115
6.2060 Microcomputer Project Laboratory

()
Prereqs: 6.1910, 6.2000, or 6.3000
Units: 3-6-3

Introduces analysis and design of embedded systems. Microcontrollers provide adaptation, flexibility, and real-time control. Emphasizes construction of complete systems, including a five-axis robot arm, a fluorescent lamp ballast, a tomographic imaging station (e.g., a CAT scan), and a simple calculator. Presents a wide range of basic tools, including software and development tools, programmable system on chip, peripheral components such as A/D converters, communication schemes, signal processing techniques, closed-loop digital feedback control, interface and power electronics, and modeling of electromechanical systems. Includes a sequence of assigned projects, followed by a final project of the student's choice, emphasizing creativity and uniqueness. Provides instruction in written and oral communication. To satisfy the independent inquiry component of this subject, students expand the scope of their laboratory project.

6.22206.131
6.2220 Power Electronics Laboratory

()
Prereqs: 6.2000 or 6.3100
Units: 3-6-3

Introduces the design and construction of power electronic circuits and motor drives. Laboratory exercises 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 include DC, induction, and permanent magnet motors, with drive considerations. Provides instruction in written and oral communication. Students taking independent inquiry version 6.2221 expand the scope of their laboratory project.


6.22216.1311
6.2221 Power Electronics Laboratory - Independent Inquiry

()
Prereqs: 6.2000 or 6.3000
Units: 3-9-3

Introduces the design and construction of power electronic circuits and motor drives. Laboratory exercises 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 include DC, induction, and permanent magnet motors, with drive considerations. Provides instruction in written and oral communication. To satisfy the independent inquiry component of this subject, students expand the scope of their laboratory project.


6.23706.161
6.2370 Modern Optics Project Laboratory

()
Prereqs: 6.3000
Units: 3-5-4

Lectures, laboratory exercises and projects on optical signal generation, transmission, detection, storage, processing and display. Topics include polarization properties of light; reflection and refraction; coherence and interference; Fraunhofer and Fresnel diffraction; holography; Fourier optics; coherent and incoherent imaging and signal processing systems; optical properties of materials; lasers and LEDs; electro-optic and acousto-optic light modulators; photorefractive and liquid-crystal light modulation; display technologies; optical waveguides and fiber-optic communication systems; photodetectors. Students may use this subject to find an advanced undergraduate project. Students engage in extensive oral and written communication exercises. Recommended prerequisite: 8.03.


6.24106.157
6.2410 Quantum Engineering Platforms

()
Prereqs: 6.2400, 6.6400, 18.435, or (8.04 and 8.05)
Units: 1-5-6

Provides practical knowledge and quantum engineering experience with several physical platforms for quantum computation, communication, and sensing, including photonics, superconducting qubits, and trapped ions. Labs include both a hardware component — to gain experience with challenges, design, and non-idealities — and a cloud component to run algorithms on state of the art commercial systems. Use entangled photons to communicate securely (quantum key distribution). Run quantum algorithms on trapped ion and superconducting quantum computers. 


6.26006.152
6.2600 Micro/Nano Processing Technology

()
Prereqs: GIR:CAL2, GIR:CHEM, GIR:PHY2, or permission of instructor
Units: 3-4-5

Introduces the theory and technology of micro/nano fabrication. Includes lectures and laboratory sessions on processing techniques: wet and dry etching, chemical and physical deposition, lithography, thermal processes, packaging, and device and materials characterization. Homework uses process simulation tools to build intuition about higher order effects. Emphasizes interrelationships between material properties and processing, device structure, and the electrical, mechanical, optical, chemical or biological behavior of devices. Students fabricate solar cells, and a choice of MEMS cantilevers or microfluidic mixers. Students formulate their own device idea, either based on cantilevers or mixers, then implement and test their designs in the lab. Students engage in extensive written and oral communication exercises. Course provides background for research work related to micro/nano fabrication. Enrollment limited.

6.42006.141
6.4200 Robotics: Science and Systems

()
Prereqs: ((1.00 or 6.100A) and (2.003, 6.1010, 6.1210, or 16.06)) or permission of instructor
Units: 2-6-4

Presents concepts, principles, and algorithmic foundations for robots and autonomous vehicles operating in the physical world. Topics include sensing, kinematics and dynamics, state estimation, computer vision, perception, learning, control, motion planning, and embedded system development. Students design and implement advanced algorithms on complex robotic platforms capable of agile autonomous navigation and real-time interaction with the physical word. Students engage in extensive written and oral communication exercises. Enrollment limited.


6.44206.807
6.4420 Computational Design and Fabrication

()
Prereqs: GIR:CAL2 and (6.1010 or permission of instructor)
Units: 3-0-9

Introduces computational aspects of computer-aided design and manufacturing. Explores relevant methods in the context of additive manufacturing (e.g., 3D printing). Topics include computer graphics (geometry modeling, solid modeling, procedural modeling), physically-based simulation (kinematics, finite element method), 3D scanning/geometry processing, and an overview of 3D fabrication methods. Exposes students to the latest research in computational fabrication. Students taking the graduate version complete additional assignments.


6.45106.810
6.4510 Engineering Interactive Technologies

()
Prereqs: 6.1020, 6.2050, 6.2060, 6.9010, or permission of instructor
Units: 1-5-6

Provides instruction in building cutting-edge interactive technologies, explains the underlying engineering concepts, and shows how those technologies evolved over time. Students use a studio format (i.e., extended periods of time) for constructing software and hardware prototypes. Topics include interactive technologies, such as multi-touch, augmented reality, haptics, wearables, and shape-changing interfaces. In a group project, students build their own interactive hardware/software prototypes and present them in a live demo at the end of term. Enrollment may be limited.


6.45506.185
6.4550 Interactive Music Systems

(,)
Prereqs: (6.1010 and 21M.301) or permission of instructor
Units: 3-0-9

Explores audio synthesis, musical structure, human computer interaction (HCI), and visual presentation for the creation of interactive musical experiences. Topics include audio synthesis; mixing and looping; MIDI sequencing; generative composition; motion sensors; music games; and graphics for UI, visualization, and aesthetics. Includes weekly programming assignments in python. Teams build an original, dynamic, and engaging interactive music system for their final project. Students taking graduate version complete different assignments. Limited to 36.


6.48606.025
6.4860 Medical Device Design

()
Prereqs: 2.008, 6.2040, 6.2050, 6.2060, 22.071, or permission of instructor
Units: 3-3-6

Provides an intense project-based learning experience around the design of medical devices with foci ranging from mechanical to electro mechanical to electronics. Projects motivated by real-world clinical challenges provided by sponsors and clinicians who also help mentor teams. Covers the design process, project management, and fundamentals of mechanical and electrical circuit and sensor design. Students work in small teams to execute a substantial term project, with emphasis placed upon developing creative designs -- via a deterministic design process -- that are developed and optimized using analytical techniques. Includes mandatory lab. Instruction and practice in written and oral communication provided. Students taking graduate version complete additional assignments. Enrollment limited.


PROB: Probability grounding
18.05
18.05 Introduction to Probability and Statistics

()
Prereqs: GIR:CAL2
Units: 4-0-8

Elementary introduction with applications. Basic probability models. Combinatorics. Random variables. Discrete and continuous probability distributions. Statistical estimation and testing. Confidence intervals. Introduction to linear regression.


18.600
18.600 Probability and Random Variables

(,)
Prereqs: GIR:CAL2
Units: 4-0-8

Probability spaces, random variables, distribution functions. Binomial, geometric, hypergeometric, Poisson distributions. Uniform, exponential, normal, gamma and beta distributions. Conditional probability, Bayes theorem, joint distributions. Chebyshev inequality, law of large numbers, and central limit theorem. Credit cannot also be received for 6.041A or 6.041B.


6.12006.042
6.1200 Mathematics for Computer Science

(,)
Prereqs: GIR:CAL1
Units: 5-0-7

Elementary discrete mathematics for science and engineering, with a focus on mathematical tools and proof techniques useful in computer science. Topics include logical notation, sets, relations, elementary graph theory, state machines and invariants, induction and proofs by contradiction, recurrences, asymptotic notation, elementary analysis of algorithms, elementary number theory and cryptography, permutations and combinations, counting tools, and discrete probability.


6.37006.041
6.3700 Introduction to Probability

(,)
Prereqs: GIR:CAL2
Units: 4-0-8

An introduction to probability theory, the modeling and analysis of probabilistic systems, and elements of statistical inference. Probabilistic models, conditional probability. Discrete and continuous random variables. Expectation and conditional expectation, and further topics about random variables. Limit Theorems. Bayesian estimation and hypothesis testing. Elements of classical statistical inference. Bernoulli and Poisson processes. Markov chains. Students taking graduate version complete additional assignments.


6.38006.008
6.3800 Introduction to Inference

()
Prereqs: GIR:CAL2 or permission of instructor
Units: 4-4-4

Introduces probabilistic modeling for problems of inference and machine learning from data, emphasizing analytical and computational aspects. Distributions, marginalization, conditioning, and structure, including graphical and neural network representations. Belief propagation, decision-making, classification, estimation, and prediction. Sampling methods and analysis. Introduces asymptotic analysis and information measures. Computational laboratory component explores the concepts introduced in class in the context of contemporary applications. Students design inference algorithms, investigate their behavior on real data, and discuss experimental results.


grad_AUS2: Graduate subjects that satisfy the AUS2 or EECS requirements
16.420
16.420 Planning Under Uncertainty

()
Prereqs: 16.413
Units: 3-0-9

Concepts, principles, and methods for planning with imperfect knowledge. Topics include state estimation, planning in information space, partially observable Markov decision processes, reinforcement learning and planning with uncertain models. Students will develop an understanding of how different planning algorithms and solutions techniques are useful in different problem domains. Previous coursework in artificial intelligence and state estimation strongly recommended.


6.20926.321
6.2092 Solid-State Circuits

()
Prereqs: 6.2040, 6.2080, or permission of instructor
Units: 3-2-7

Fosters deep understanding and intuition that is crucial in innovating analog circuits and optimizing the whole system in bipolar junction transistor (BJT) and metal oxide semiconductor (MOS) technologies. Covers both theory and real-world applications of basic amplifier structures, operational amplifiers, temperature sensors, bandgap references. Covers topics such as noise, linearity and stability. Homework and labs give students access to CAD/EDA tools to design and analyze analog circuits. Provides practical experience through lab exercises, including a broadband amplifier design and characterization. Students taking graduate version complete additional assignments.


6.25326.719
6.2532 Nanoelectronics

()
Prereqs: 6.3000
Units: 4-0-8

Meets with undergraduate subject 6.2530, but requires the completion of additional/different homework assignments and or projects. See subject description under 6.2530.


6.31026.320
6.3102 Dynamical System Modeling and Control Design

(,)
Prereqs: GIR:PHY2 and (18.06 or 18.C06)
Units: 4-4-4

A learn-by-design introduction to modeling and control of discrete- and continuous-time systems, from intuition-building analytical techniques to more computational and data-centric strategies. Topics include: linear difference/differential equations (natural frequencies, transfer functions); controller metrics (stability, tracking, disturbance rejection); analytical techniques (PID, root-loci, lead-lag, phase margin); computational strategies (state-space, eigen-placement, LQR); and data-centric approaches (state estimation, regression and identification). Concepts are introduced with lectures and on-line problems, and then mastered during weekly labs. In lab, students model, design, test and explain systems and controllers involving sensors, actuators, and a microcontroller (e.g. optimizing thrust-driven positioners or stabilizing magnetic levitators). Students in the graduate version complete additional problems and labs.


6.37226.481
6.3722 Introduction to Statistical Data Analysis

()
Prereqs: 6.100A and (6.3700, 6.3800, 18.600, or permission of instructor)
Units: 4-0-8

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.37326.439
6.3732 Statistics, Computation and Applications

()
Prereqs: (6.100B, (18.03, 18.06, or 18.C06), and (6.3700, 6.3800, 14.30, 16.09, or 18.05)) or permission of instructor
Units: 3-1-8

Hands-on analysis of data demonstrates the interplay between statistics and computation. Includes four modules, each centered on a specific data set, and introduced by a domain expert. Provides instruction in specific, relevant analysis methods and corresponding algorithmic aspects. Potential modules may include medical data, gene regulation, social networks, finance data (time series), traffic, transportation, weather forecasting, policy, or industrial web applications. Projects address a large-scale data analysis question. Students taking graduate version complete additional assignments. Limited enrollment; priority to Statistics and Data Science minors and to juniors and seniors.


6.42126.843
6.4212 Robotic Manipulation

()
Prereqs: (6.100A and 6.3900) or permission of instructor
Units: 3-0-9

Introduces the fundamental algorithmic approaches for creating robot systems that can autonomously manipulate physical objects in unstructured environments such as homes and restaurants. Topics include perception (including approaches based on deep learning and approaches based on 3D geometry), planning (robot kinematics and trajectory generation, collision-free motion planning, task-and-motion planning, and planning under uncertainty), as well as dynamics and control (both model-based and learning-based. Students taking graduate version complete additional assignments.


6.48126.521
6.4812 Cellular Neurophysiology and Computing

()
Prereqs: (GIR:PHY2, 18.03, and (2.005, 6.2000, 6.3000, 10.301, or 20.110)) or permission of instructor
Units: 5-2-5

Integrated overview of the biophysics of cells from prokaryotes to neurons, with a focus on mass transport and electrical signal generation across cell membrane. First third of course focuses on mass transport through membranes: diffusion, osmosis, chemically mediated, and active transport. Second third focuses on electrical properties of cells: ion transport to action potential generation and propagation in electrically excitable cells. Synaptic transmission. Electrical properties interpreted via kinetic and molecular properties of single voltage-gated ion channels. Final third focuses on biophysics of synaptic transmission and introduction to neural computing. Laboratory and computer exercises illustrate the concepts. Students taking graduate version complete different assignments.


6.48226.522
6.4822 Quantitative Physiology: Organ Transport Systems

()
Prereqs: 6.4810 and (2.006 or 6.2300)
Units: 4-2-6

Application of the principles of energy and mass flow to major human organ systems. Anatomical, physiological and clinical features of the cardiovascular, respiratory and renal systems. Mechanisms of regulation and homeostasis. Systems, features and devices that are most illuminated by the methods of physical sciences and engineering models. Required laboratory work includes animal studies. Students taking graduate version complete additional assignments.


6.48326.561
6.4832 Fields, Forces, and Flows in Biological Systems

()
Prereqs: Permission of instructor
Units: 3-0-9

Molecular diffusion, diffusion-reaction, conduction, convection in biological systems; fields in heterogeneous media; electrical double layers; Maxwell stress tensor, electrical forces in physiological systems. Fluid and solid continua: equations of motion useful for porous, hydrated biological tissues. Case studies of membrane transport, electrode interfaces, electrical, mechanical, and chemical transduction in tissues, convective-diffusion/reaction, electrophoretic, electroosmotic flows in tissues/MEMs, and ECG. Electromechanical and physicochemical interactions in cells and biomaterials; musculoskeletal, cardiovascular, and other biological and clinical examples. Prior undergraduate coursework in transport recommended.


6.51106.820
6.5110 Foundations of Program Analysis

()
Prereqs: 6.1100
Units: 3-0-9

Presents major principles and techniques for program analysis. Includes formal semantics, type systems and type-based program analysis, abstract interpretation and model checking and synthesis. Emphasis on Haskell and Ocaml, but no prior experience in these languages is assumed. Student assignments include implementing of techniques covered in class, including building simple verifiers.


6.51206.822
6.5120 Formal Reasoning About Programs

()
Prereqs: 6.1020 and 6.1200
Units: 3-0-9

Surveys techniques for rigorous mathematical reasoning about correctness of software, emphasizing commonalities across approaches. Introduces interactive computer theorem proving with the Coq proof assistant, which is used for all assignments, providing immediate feedback on soundness of logical arguments. Covers common program-proof techniques, including operational semantics, model checking, abstract interpretation, type systems, program logics, and their applications to functional, imperative, and concurrent programs. Develops a common conceptual framework based on invariants, abstraction, and modularity applied to state and labeled transition systems.


6.52106.854
6.5210 Advanced Algorithms

()
Prereqs: 6.1220 and (6.1200, 6.3700, or 18.600)
Units: 5-0-7

First-year graduate subject in algorithms. Emphasizes fundamental algorithms and advanced methods of algorithmic design, analysis, and implementation. Surveys a variety of computational models and the algorithms for them. Data structures, network flows, linear programming, computational geometry, approximation algorithms, online algorithms, parallel algorithms, external memory, streaming algorithms.


6.52306.851
6.5230 Advanced Data Structures

()
Prereqs: 6.1220
Units: 3-0-9

More advanced and powerful data structures for answering several queries on the same data. Such structures are crucial in particular for designing efficient algorithms. Dictionaries; hashing; search trees. Self-adjusting data structures; linear search; splay trees; dynamic optimality. Integer data structures; word RAM. Predecessor problem; van Emde Boas priority queues; y-fast trees; fusion trees. Lower bounds; cell-probe model; round elimination. Dynamic graphs; link-cut trees; dynamic connectivity. Strings; text indexing; suffix arrays; suffix trees. Static data structures; compact arrays; rank and select. Succinct data structures; tree encodings; implicit data structures. External-memory and cache-oblivious data structures; B-trees; buffer trees; tree layout; ordered-file maintenance. Temporal data structures; persistence; retroactivity.


6.52506.852
6.5250 Distributed Algorithms

()
Prereqs: 6.1220
Units: 3-0-9

Design and analysis of concurrent algorithms, emphasizing those suitable for use in distributed networks. Process synchronization, allocation of computational resources, distributed consensus, distributed graph algorithms, election of a leader in a network, distributed termination, deadlock detection, concurrency control, communication, and clock synchronization. Special consideration given to issues of efficiency and fault tolerance. Formal models and proof methods for distributed computation.


6.53106.849
6.5310 Geometric Folding Algorithms: Linkages, Origami, Polyhedra

()
Prereqs: 6.1220 or permission of instructor
Units: 3-0-9

Covers discrete geometry and algorithms underlying the reconfiguration of foldable structures, with applications to robotics, manufacturing, and biology. Linkages made from one-dimensional rods connected by hinges: constructing polynomial curves, characterizing rigidity, characterizing unfoldable versus locked, protein folding. Folding two-dimensional paper (origami): characterizing flat foldability, algorithmic origami design, one-cut magic trick. Unfolding and folding three-dimensional polyhedra: edge unfolding, vertex unfolding, gluings, Alexandrov's Theorem, hinged dissections.


6.53206.850
6.5320 Geometric Computing

()
Prereqs: 6.1220
Units: 3-0-9

Introduction to the design and analysis of algorithms for geometric problems, in low- and high-dimensional spaces. Algorithms: convex hulls, polygon triangulation, Delaunay triangulation, motion planning, pattern matching. Geometric data structures: point location, Voronoi diagrams, Binary Space Partitions. Geometric problems in higher dimensions: linear programming, closest pair problems. High-dimensional nearest neighbor search and low-distortion embeddings between metric spaces. Geometric algorithms for massive data sets: external memory and streaming algorithms. Geometric optimization.


6.53406.853
6.5340 Topics in Algorithmic Game Theory

()
Prereqs: 6.1210 or 6.1220
Units: 3-0-9

Presents research topics at the interface of computer science and game theory, with an emphasis on algorithms and computational complexity. Explores the types of game-theoretic tools that are applicable to computer systems, the loss in system performance due to the conflicts of interest of users and administrators, and the design of systems whose performance is robust with respect to conflicts of interest inside the system. Algorithmic focus is on algorithms for equilibria, the complexity of equilibria and fixed points, algorithmic tools in mechanism design, learning in games, and the price of anarchy.


6.54006.840
6.5400 Theory of Computation

()
Prereqs: 6.1200 or 18.200
Units: 4-0-8

A more extensive and theoretical treatment of the material in 6.1400J/18.400J, emphasizing computability and computational complexity theory. Regular and context-free languages. Decidable and undecidable problems, reducibility, recursive function theory. Time and space measures on computation, completeness, hierarchy theorems, inherently complex problems, oracles, probabilistic computation, and interactive proof systems. Students in Course 18 must register for the undergraduate version, 18.404.


6.54106.841
6.5410 Advanced Complexity Theory

()
Prereqs: 18.404
Units: 3-0-9

Current research topics in computational complexity theory. Nondeterministic, alternating, probabilistic, and parallel computation models. Boolean circuits. Complexity classes and complete sets. The polynomial-time hierarchy. Interactive proof systems. Relativization. Definitions of randomness. Pseudo-randomness and derandomizations. Interactive proof systems and probabilistically checkable proofs.


6.56106.857
6.5610 Applied Cryptography and Security

()
Prereqs: 6.1200 and 6.1800
Units: 4-0-8

Emphasis on applied cryptography. May include: basic notion of systems security, cryptographic hash functions, symmetric cryptography (one-time pad, block ciphers, stream ciphers, message authentication codes), hash functions, key-exchange, public-key cryptography (encryption, digital signatures), elliptic curve cryptography,  secret-sharing, fully homomorphic encryption, zero-knowledge proofs, and electronic voting. Assignments include a final group project. Topics may vary year to year.


6.56206.875
6.5620 Cryptography and Cryptanalysis

()
Prereqs: 6.1220
Units: 3-0-9

A rigorous introduction to modern cryptography. Emphasis on the fundamental cryptographic primitives of public-key encryption, digital signatures, pseudo-random number generation, and basic protocols and their computational complexity requirements.

6.56606.858
6.5660 Computer Systems Security

()
Prereqs: 6.1020 and 6.1800
Units: 3-6-3

Design and implementation of secure computer systems. Lectures cover attacks that compromise security as well as techniques for achieving security, based on recent research papers. Topics include operating system security, privilege separation, capabilities, language-based security, cryptographic network protocols, trusted hardware, and security in web applications and mobile phones. Labs involve implementing and compromising a web application that sandboxes arbitrary code, and a group final project.


6.56906.885
6.58106.828
6.5810 Operating System Engineering

()
Prereqs: 6.1020 and 6.1800
Units: 3-6-3

Fundamental design and implementation issues in the engineering of operating systems. Lectures based on the study of a symmetric multiprocessor version of UNIX version 6 and research papers. Topics include virtual memory; file system; threads; context switches; kernels; interrupts; system calls; interprocess communication; coordination, and interaction between software and hardware. Individual laboratory assignments accumulate in the construction of a minimal operating system (for an x86-based personal computer) that implements the basic operating system abstractions and a shell. Knowledge of programming in the C language is a prerequisite.


6.58206.829
6.5820 Computer Networks

()
Prereqs: 6.1800 or permission of instructor
Units: 4-0-8

Topics on the engineering and analysis of network protocols and architecture, including architectural principles for designing heterogeneous networks; transport protocols; Internet routing; router design; congestion control and network resource management; wireless networks; network security; naming; overlay and peer-to-peer networks. Readings from original research papers. Semester-long project and paper.


6.58306.830
6.5830 Database Systems

()
Prereqs: (6.1800 and (6.1210 or 6.1220)) or permission of instructor
Units: 3-0-9

Topics related to the engineering and design of database systems, including data models; database and schema design; schema normalization and integrity constraints; query processing; query optimization and cost estimation; transactions; recovery; concurrency control; isolation and consistency; distributed, parallel and heterogeneous databases; adaptive databases; trigger systems; pub-sub systems; semi structured data and XML querying. Lecture and readings from original research papers. Semester-long project and paper. Students taking graduate version complete different assignments. Enrollment may be limited.


6.58406.824
6.5840 Distributed Computer Systems Engineering

()
Prereqs: 6.1800 and permission of instructor
Units: 3-0-9

Abstractions and implementation techniques for engineering distributed systems: remote procedure call, threads and locking, client/server, peer-to-peer, consistency, fault tolerance, and security. Readings from current literature. Individual laboratory assignments culminate in the construction of a fault-tolerant and scalable network file system. Programming experience with C/C++ required. Enrollment limited.


6.58506.826
6.5850 Principles of Computer Systems

()
Prereqs: Permission of instructor
Units: 3-0-9

Introduction to the basic principles of computer systems with emphasis on the use of rigorous techniques as an aid to understanding and building modern computing systems. Particular attention paid to concurrent and distributed systems. Topics include: specification and verification, concurrent algorithms, synchronization, naming, Networking, replication techniques (including distributed cache management), and principles and algorithms for achieving reliability.


6.59006.823
6.5900 Computer System Architecture

()
Prereqs: 6.1910
Units: 4-0-8

Introduction to the principles underlying modern computer architecture. Emphasizes the relationship among technology, hardware organization, and programming systems in the evolution of computer architecture. Topics include pipelined, out-of-order, and speculative execution; caches, virtual memory and exception handling, superscalar, very long instruction word (VLIW), vector, and multithreaded processors; on-chip networks, memory models, synchronization, and cache coherence protocols for multiprocessors.


6.59106.375
6.5910 Complex Digital Systems Design

()
Prereqs: 6.1910
Units: 5-5-2

Introduction to the design and implementation of large-scale digital systems using hardware description languages and high-level synthesis tools in conjunction with standard commercial electronic design automation (EDA) tools. Emphasizes modular and robust designs, reusable modules, correctness by construction, architectural exploration, meeting area and timing constraints, and developing functional field-programmable gate array (FPGA) prototypes. Extensive use of CAD tools in weekly labs serve as preparation for a multi-person design project on multi-million gate FPGAs. Enrollment may be limited.


6.59306.825
6.5930 Hardware Architecture for Deep Learning

()
Prereqs: 6.1910 and (6.3000 or 6.3900)
Units: 3-3-6

Introduction to the design and implementation of hardware architectures for efficient processing of deep learning algorithms and tensor algebra in AI systems. Topics include basics of deep learning, optimization principles for programmable platforms, design principles of accelerator architectures, co-optimization of algorithms and hardware (including sparsity) and use of advanced technologies (including memristors and optical computing). Includes labs involving modeling and analysis of hardware architectures, architecting deep learning inference systems, and an open-ended design project. Students taking graduate version complete additional assignments.


6.5940
6.5940 TinyML and Efficient Deep Learning Computing

()
Prereqs: 6.1910 and 6.3900
Units: 3-0-9

Introduces efficient deep learning computing techniques that enable powerful deep learning applications on resource-constrained devices. Topics include model compression, pruning, quantization, neural architecture search, distributed training, data/model parallellism, gradient compression, on-device fine-tuning. It also introduces application-specific acceleration techniques for video recognition, point cloud, and generative AI (diffusion model, LLM). Students will get hands-on experience accelerating deep learning applications with an open-ended design project.


6.5950
6.5950 Secure Hardware Design

()
Prereqs: 6.1910
Units: 3-0-9

Introduction to basic concepts, principles, and implementation issues in the designing of secure hardware systems. Through a mixture of lectures and paper discussions, covers state-of-the-art security attacks and defenses targeting the computer architecture, digital circuits, and physics layers of computer systems. Emphasizes both the conceptual and the practical aspects of security issues in modern hardware systems. Topics include microarchitectural timing side channels, speculative execution attacks, RowHammer, Trusted Execution Environment, physical attacks, hardware support for software security, and verification of digital systems. Students taking graduate version complete additional assignments.


6.60006.775
6.6000 CMOS Analog and Mixed-Signal Circuit Design

()
Prereqs: 6.2090
Units: 3-0-9

A detailed exposition of the principles involved in designing and optimizing analog and mixed-signal circuits in CMOS technologies. Small-signal and large-signal models. Systemic methodology for device sizing and biasing. Basic circuit building blocks. Operational amplifier design. Large signal considerations. Principles of switched capacitor networks including switched-capacitor and continuous-time integrated filters. Basic and advanced A/D and D/A converters, delta-sigma modulators, RF and other signal processing circuits. Design projects on op amps and subsystems are a required part of the subject.


6.60106.374
6.6010 Analysis and Design of Digital Integrated Circuits

()
Prereqs: 6.1910 and (6.2080 or 6.2500)
Units: 3-3-6

Device and circuit level optimization of digital building blocks. Circuit design styles for logic, arithmetic, and sequential blocks. Estimation and minimization of energy consumption. Interconnect models and parasitics, device sizing and logical effort, timing issues (clock skew and jitter), and active clock distribution techniques. Memory architectures, circuits (sense amplifiers), and devices. Evaluation of how design choices affect tradeoffs across key metrics including energy consumption, speed, robustness, and cost. Extensive use of modern design flow and EDA/CAD tools for the analysis and design of digital building blocks and digital VLSI design for labs and design projects


6.60206.776
6.6020 High Speed Communication Circuits

()
Prereqs: 6.2090
Units: 3-3-6

Principles and techniques of high-speed integrated circuits used in wireless/wireline data links and remote sensing. On-chip passive component design of inductors, capacitors, and antennas. Analysis of distributed effects, such as transmission line modeling, S-parameters, and Smith chart. Transceiver architectures and circuit blocks, which include low-noise amplifiers, mixers, voltage-controlled oscillators, power amplifiers, and frequency dividers. Involves IC/EM simulation and laboratory projects.


6.62106.640
6.6210 Electromagnetic Fields, Forces and Motion

()
Prereqs: GIR:PHY2 and 18.03
Units: 4-0-8

Study of electromagnetics and electromagnetic energy conversion leading to an understanding of devices, including electromagnetic sensors, actuators, motors and generators. Quasistatic Maxwell's equations and the Lorentz force law. Studies of the quasistatic fields and their sources through solutions of Poisson's and Laplace's equations. Boundary conditions and multi-region boundary-value problems. Steady-state conduction, polarization, and magnetization. Charge conservation and relaxation, and magnetic induction and diffusion. Extension to moving materials. Electric and magnetic forces and force densities derived from energy, and stress tensors. Extensive use of engineering examples. Students taking graduate version complete additional assignments.


6.62206.334
6.6220 Power Electronics

()
Prereqs: 6.2500
Units: 3-0-9

The application of electronics to energy conversion and control. Modeling, analysis, and control techniques. Design of power circuits including inverters, rectifiers, and dc-dc converters. Analysis and design of magnetic components and filters. Characteristics of power semiconductor devices. Numerous application examples, such as motion control systems, power supplies, and radio-frequency power amplifiers.


6.63106.631
6.6310 Optics and Photonics

()
Prereqs: 6.2300 or 8.03
Units: 3-0-9

Introduction to fundamental concepts and techniques of optics, photonics, and fiber optics, aimed at developing skills for independent research. Topics include: Review of Maxwell's equations, light propagation, reflection and transmission, dielectric mirrors and filters. Scattering matrices, interferometers, and interferometric measurement. Fresnel and Fraunhoffer diffraction theory. Lenses, optical imaging systems, and software design tools. Gaussian beams, propagation and resonator design. Optical waveguides, optical fibers and photonic devices for encoding and detection. Discussion of research operations / funding and professional development topics. The course reviews and introduces mathematical methods and techniques, which are fundamental in optics and photonics, but also useful in many other engineering specialties.


6.63306.621
6.6330 Fundamentals of Photonics

()
Prereqs: 2.71, 6.2300, or 8.07
Units: 3-0-9

Covers the fundamentals of optics and the interaction of light and matter, leading to devices such as light emitting diodes, optical amplifiers, and lasers. Topics include classical ray, wave, beam, and Fourier optics; Maxwell's electromagnetic waves; resonators; quantum theory of photons; light-matter interaction; laser amplification; lasers; and semiconductors optoelectronics. Students taking graduate version complete additional assignments.


6.63406.634
6.6340 Nonlinear Optics

()
Prereqs: 6.2300 or 8.03
Units: 3-0-9

Techniques of nonlinear optics with emphasis on fundamentals for research in optics, photonics, spectroscopy, and ultrafast science. Topics include: electro-optic modulators and devices, sum and difference frequency generation, and parametric conversion. Nonlinear propagation effects in optical fibers including self-phase modulation, pulse compression, solitons, communication, and femtosecond fiber lasers. Review of quantum mechanics, interaction of light with matter, laser gain and operation, density matrix techniques, perturbation theory, diagrammatic methods, nonlinear spectroscopies, ultrafast lasers and measurements. Discussion of research operations and funding and professional development topics. Introduces fundamental methods and techniques needed for independent research in advanced optics and photonics, but useful in many other engineering and physics disciplines.


6.64006.728
6.6400 Applied Quantum and Statistical Physics

()
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.64106.445
6.6410 Quantum Computation

()
Prereqs: 8.05, 18.06, 18.700, 18.701, or 18.C06
Units: 3-0-9

Provides an introduction to the theory and practice of quantum computation. Topics covered: physics of information processing; quantum algorithms including the factoring algorithm and Grover's search algorithm; quantum error correction; quantum communication and cryptography. Knowledge of quantum mechanics helpful but not required.

6.64206.443
6.6420 Quantum Information Science

()
Prereqs: 18.435
Units: 3-0-9

Examines quantum computation and quantum information. Topics include quantum circuits, the quantum Fourier transform and search algorithms, the quantum operations formalism, quantum error correction, Calderbank-Shor-Steane and stabilizer codes, fault tolerant quantum computation, quantum data compression, quantum entanglement, capacity of quantum channels, and quantum cryptography and the proof of its security. Prior knowledge of quantum mechanics required.


6.64406.644
6.65006.720
6.6500 Integrated Microelectronic Devices

()
Prereqs: 3.42 or 6.2500
Units: 4-0-8

Covers physics of microelectronic semiconductor devices for integrated circuit applications. Topics include semiconductor fundamentals, p-n junction, metal-oxide semiconductor structure, metal-semiconductor junction, MOS field-effect transistor, and bipolar junction transistor.  Emphasizes physical understanding of device operation through energy band diagrams and short-channel MOSFET device design and modern device scaling. Familiarity with MATLAB recommended.


6.65106.730
6.6510 Physics for Solid-State Applications

()
Prereqs: 6.2300 and 6.6400
Units: 5-0-7

Classical and quantum models of electrons and lattice vibrations in solids, emphasizing physical models for elastic properties, electronic transport, and heat capacity. Crystal lattices, electronic energy band structures, phonon dispersion relations, effective mass theorem, semiclassical equations of motion, electron scattering and semiconductor optical properties. Band structure and transport properties of selected semiconductors. Connection of quantum theory of solids with quasi-Fermi levels and Boltzmann transport used in device modeling.


6.70006.341
6.7000 Discrete-Time Signal Processing

()
Prereqs: 6.3010
Units: 4-0-8

Representation, analysis, and design of discrete time signals and systems. Decimation, interpolation, and sampling rate conversion. Noise shaping. Flowgraph structures for DT systems. IIR and FIR filter design techniques. Parametric signal modeling, linear prediction, and lattice filters. Discrete Fourier transform, DFT computation, and FFT algorithms. Spectral analysis, time-frequency analysis, relation to filter banks. Multirate signal processing, perfect reconstruction filter banks, and connection to wavelets.


6.70106.344
6.7010 Digital Image Processing

()
Prereqs: 6.3000 and 6.3700
Units: 3-0-9

Introduces models, theories, and algorithms key to digital image processing. Core topics covered include models of image formation, image processing fundamentals, filtering in the spatial and frequency domains, image transforms, and feature extraction. Additional topics include image enhancement, image restoration and reconstruction, compression of images and videos, visual recognition, and the application of machine learning-based approaches to image processing. Includes student-driven term project.


6.71006.241
6.7100 Dynamic Systems and Control

()
Prereqs: 6.3000 and 18.06
Units: 4-0-8

Linear, discrete- and continuous-time, multi-input-output systems in control, related areas. Least squares and matrix perturbation problems. State-space models, modes, stability, controllability, observability, transfer function matrices, poles and zeros, and minimality. Internal stability of interconnected systems, feedback compensators, state feedback, optimal regulation, observers, and observer-based compensators. Measures of control performance, robustness issues using singular values of transfer functions. Introductory ideas on nonlinear systems. Recommended prerequisite: 6.3100.


6.7121
6.7121 Principles of Modeling, Computing and Control for Decarbonized Electric Energy Systems

()
Prereqs: 6.2200, (6.2000 and 6.3100), or permission of instructor
Units: 4-0-8

Introduces fundamentals of electric energy systems as complex dynamical network systems. Topics include coordinated and distributed modeling and control methods for efficient and reliable power generation, delivery, and consumption; data-enabled algorithms for integrating clean intermittent resources, storage, and flexible demand, including electric vehicles; examples of network congestion management, frequency, and voltage control in electrical grids at various scales; and design and operation of supporting markets. Students taking graduate version complete additional assignments.


6.72006.255
6.7200 Optimization Methods

()
Prereqs: 18.06
Units: 4-0-8

Introduces the principal algorithms for linear, network, discrete, robust, nonlinear, and dynamic optimization. Emphasizes methodology and the underlying mathematical structures. Topics include the simplex method, network flow methods, branch and bound and cutting plane methods for discrete optimization, optimality conditions for nonlinear optimization, interior point methods for convex optimization, Newton's method, heuristic methods, and dynamic programming and optimal control methods. Expectations and evaluation criteria differ for students taking graduate version; consult syllabus or instructor for specific details.


6.72106.251
6.7210 Introduction to Mathematical Programming

()
Prereqs: 18.06
Units: 4-0-8

Introduction to linear optimization and its extensions emphasizing both methodology and the underlying mathematical structures and geometrical ideas. Covers classical theory of linear programming as well as some recent advances in the field. Topics: simplex method; duality theory; sensitivity analysis; network flow problems; decomposition; robust optimization; integer programming; interior point algorithms for linear programming; and introduction to combinatorial optimization and NP-completeness.


6.72206.252
6.7220 Nonlinear Optimization

()
Prereqs: 18.06 and (18.100A, 18.100B, or 18.100Q)
Units: 4-0-8

Unified analytical and computational approach to nonlinear optimization problems. Unconstrained optimization methods include gradient, conjugate direction, Newton, sub-gradient and first-order methods. Constrained optimization methods include feasible directions, projection, interior point methods, and Lagrange multiplier methods. Convex analysis, Lagrangian relaxation, nondifferentiable optimization, and applications in integer programming. Comprehensive treatment of optimality conditions and Lagrange multipliers. Geometric approach to duality theory. Applications drawn from control, communications, machine learning, and resource allocation problems.


6.73006.336
6.7300 Introduction to Modeling and Simulation

()
Prereqs: 18.03 or 18.06
Units: 3-6-3

Introduction to computational techniques for modeling and simulation of a variety of large and complex engineering, science, and socio-economical systems. Prepares students for practical use and development of computational engineering in their own research and future work. Topics include mathematical formulations (e.g., automatic assembly of constitutive and conservation principles); linear system solvers (sparse and iterative); nonlinear solvers (Newton and homotopy); ordinary, time-periodic and partial differential equation solvers; and model order reduction. Students develop their own models and simulators for self-proposed applications, with an emphasis on creativity, teamwork, and communication. Prior basic linear algebra required and at least one numerical programming language (e.g., MATLAB, Julia, Python, etc.) helpful.


6.73106.337
6.7310 Introduction to Numerical Methods

()
Prereqs: 18.06, 18.700, or 18.701
Units: 3-0-9

Advanced introduction to numerical analysis: accuracy and efficiency of numerical algorithms. In-depth coverage of sparse-matrix/iterative and dense-matrix algorithms in numerical linear algebra (for linear systems and eigenproblems). Floating-point arithmetic, backwards error analysis, conditioning, and stability. Other computational topics (e.g., numerical integration or nonlinear optimization) may also be surveyed. Final project involves some programming.


6.73206.338
6.7320 Parallel Computing and Scientific Machine Learning

()
Prereqs: 18.06, 18.700, or 18.701
Units: 3-0-9

Introduction to scientific machine learning with an emphasis on developing scalable differentiable programs. Covers scientific computing topics (numerical differential equations, dense and sparse linear algebra, Fourier transformations, parallelization of large-scale scientific simulation) simultaneously with modern data science (machine learning, deep neural networks, automatic differentiation), focusing on the emerging techniques at the connection between these areas, such as neural differential equations and physics-informed deep learning. Provides direct experience with the modern realities of optimizing code performance for supercomputers, GPUs, and multicores in a high-level language.


6.74206.267
6.7420 Heterogeneous Networks: Architecture, Transport, Proctocols, and Management

()
Prereqs: 6.1200 or 6.3700
Units: 4-0-8

Introduction to modern heterogeneous networks and the provision of heterogeneous services. Architectural principles, analysis, algorithmic techniques, performance analysis, and existing designs are developed and applied to understand current problems in network design and architecture. Begins with basic principles of networking. Emphasizes development of mathematical and algorithmic tools; applies them to understanding network layer design from the performance and scalability viewpoint. Concludes with network management and control, including the architecture and performance analysis of interconnected heterogeneous networks. Provides background and insight to understand current network literature and to perform research on networks with the aid of network design projects.


6.77006.436
6.7700 Fundamentals of Probability

()
Prereqs: GIR:CAL2
Units: 4-0-8

Introduction to probability theory. Probability spaces and measures. Discrete and continuous random variables. Conditioning and independence. Multivariate normal distribution. Abstract integration, expectation, and related convergence results. Moment generating and characteristic functions. Bernoulli and Poisson process. Finite-state Markov chains. Convergence notions and their relations. Limit theorems. Familiarity with elementary probability and real analysis is desirable.


6.77106.262
6.7710 Discrete Stochastic Processes

()
Prereqs: 6.3702 or 18.204
Units: 4-0-8

Review of probability and laws of large numbers; Poisson counting process and renewal processes; Markov chains (including Markov decision theory), branching processes, birth-death processes, and semi-Markov processes; continuous-time Markov chains and reversibility; random walks, martingales, and large deviations; applications from queueing, communication, control, and operations research.


6.77206.265
6.7720 Discrete Probability and Stochastic Processes

()
Prereqs: 6.3702, 6.7700, 18.100A, 18.100B, or 18.100Q
Units: 3-0-9

Provides an introduction to tools used for probabilistic reasoning in the context of discrete systems and processes. Tools such as the probabilistic method, first and second moment method, martingales, concentration and correlation inequalities, theory of random graphs, weak convergence, random walks and Brownian motion, branching processes, Markov chains, Markov random fields, correlation decay method, isoperimetry, coupling, influences and other basic tools of modern research in probability will be presented. Algorithmic aspects and connections to statistics and machine learning will be emphasized.


6.78006.437
6.7800 Inference and Information

()
Prereqs: 6.3700, 6.3800, or 6.7700
Units: 4-0-8

Introduction to principles of Bayesian and non-Bayesian statistical inference. Hypothesis testing and parameter estimation, sufficient statistics; exponential families. EM agorithm. Log-loss inference criterion, entropy and model capacity. Kullback-Leibler distance and information geometry. Asymptotic analysis and large deviations theory. Model order estimation; nonparametric statistics. Computational issues and approximation techniques; Monte Carlo methods. Selected topics such as universal inference and learning, and universal features and neural networks.


6.78106.438
6.7810 Algorithms for Inference

()
Prereqs: 18.06 and (6.3700, 6.3800, or 6.7700)
Units: 4-0-8

Introduction to statistical inference with probabilistic graphical models. Directed and undirected graphical models, and factor graphs, over discrete and Gaussian distributions; hidden Markov models, linear dynamical systems. Sum-product and junction tree algorithms; forward-backward algorithm, Kalman filtering and smoothing. Min-sum and Viterbi algorithms. Variational methods, mean-field theory, and loopy belief propagation. Particle methods and filtering. Building graphical models from data, including parameter estimation and structure learning; Baum-Welch and Chow-Liu algorithms. Selected special topics.


6.79006.867
6.7900 Machine Learning

()
Prereqs: 18.06 and (6.3700, 6.3800, or 18.600)
Units: 3-0-9

Principles, techniques, and algorithms in machine learning from the point of view of statistical inference; representation, generalization, and model selection; and methods such as linear/additive models, active learning, boosting, support vector machines, non-parametric Bayesian methods, hidden Markov models, Bayesian networks, and convolutional and recurrent neural networks. Recommended prerequisite: 6.3900 or other previous experience in machine learning. Enrollment may be limited.


6.79106.860
6.7910 Statistical Learning Theory and Applications

()
Prereqs: 6.3700, 6.7900, 18.06, or permission of instructor
Units: 3-0-9

Covers foundations and recent advances in statistical machine learning theory, with the dual goals of providing students with the theoretical knowledge to use machine learning and preparing more advanced students to contribute to progress in the field. The content is roughly divided into three parts. The first part is about classical regularization, margin, stochastic gradient methods, overparametrization, implicit regularization, and stability. The second part is about deep networks: approximation and optimization theory plus roots of generalization. The third part is about the connections between learning theory and the brain. Occasional talks by leading researchers on advanced research topics. Emphasis on current research topics.

6.79306.871
6.7930 Machine Learning for Healthcare

()
Prereqs: 6.3900, 6.4100, 6.7810, 6.7900, 6.8611, or 9.520
Units: 4-0-8

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.79406.231
6.7940 Dynamic Programming and Reinforcement Learning

()
Prereqs: 6.3700 or 18.600
Units: 4-0-8

Dynamic programming as a unifying framework for sequential decision-making under uncertainty, Markov decision problems, and stochastic control. Perfect and imperfect state information models. Finite horizon and infinite horizon problems, including discounted and average cost formulations. Value and policy iteration. Suboptimal methods. Approximate dynamic programming for large-scale problems, and reinforcement learning. Applications and examples drawn from diverse domains. While an analysis prerequisite is not required, mathematical maturity is necessary.


6.81106.834
6.8110 Cognitive Robotics

()
Prereqs: (6.4100 or 16.413) and (6.1200, 6.3700, or 16.09)
Units: 3-0-9

Highlights algorithms and paradigms for creating human-robot systems that act intelligently and robustly, by reasoning from models of themselves, their counterparts and their world. Examples include space and undersea explorers, cooperative vehicles, manufacturing robot teams and everyday embedded devices. Themes include architectures for goal-directed systems; decision-theoretic programming and robust execution; state-space programming, activity and path planning; risk-bounded programming and risk-bounded planners; self-monitoring and self-diagnosing systems, and human-robot collaboration. Student teams explore recent advances in cognitive robots through delivery of advanced lectures and final projects, in support of a class-wide grand challenge. Enrollment may be limited.


6.82006.484
6.8200 Sensorimotor Learning

()
Prereqs: 6.3900 or 6.7900
Units: 3-0-9

Provides an in-depth view of the state-of-the-art learning methods for control and the know-how of applying these techniques. Topics span reinforcement learning, self-supervised learning, imitation learning, model-based learning, and advanced deep learning architectures, and specific machine learning challenges unique to building sensorimotor systems. Discusses how to identify if learning-based control can help solve a particular problem, how to formulate the problem in the learning framework, and what algorithm to use. Applications of algorithms in robotics, logistics, recommendation systems, playing games, and other control domains covered. Instruction involves two lectures a week, practical experience through exercises, discussion of current research directions, and a group project.


6.82106.832
6.8210 Underactuated Robotics

()
Prereqs: 18.03 and 18.06
Units: 3-0-9

Covers nonlinear dynamics and control of underactuated mechanical systems, with an emphasis on computational methods. Topics include the nonlinear dynamics of robotic manipulators, applied optimal and robust control and motion planning. Discussions include examples from biology and applications to legged locomotion, compliant manipulation, underwater robots, and flying machines.


6.83006.869
6.8300 Advances in Computer Vision

()
Prereqs: (6.1200 or 6.3700) and (18.06 or 18.C06)
Units: 3-0-9

Advanced topics in computer vision with a focus on the use of machine learning techniques and applications in graphics and human-computer interface. Covers image representations, texture models, structure-from-motion algorithms, Bayesian techniques, object and scene recognition, tracking, shape modeling, and image databases. Applications may include face recognition, multimodal interaction, interactive systems, cinematic special effects, and photorealistic rendering. Covers topics complementary to 6.8390. Students taking graduate version complete additional assignments.


6.83706.865
6.8370 Advanced Computational Photography

()
Prereqs: GIR:CAL2 and 6.1020
Units: 3-0-9

Presents fundamentals and applications of hardware and software techniques used in digital and computational photography, with an emphasis on software methods. Provides sufficient background to implement solutions to photographic challenges and opportunities. Topics include cameras and image formation, image processing and image representations, high-dynamic-range imaging, human visual perception and color, single view 3-D model reconstruction, morphing, data-rich photography, super-resolution, and image-based rendering. Students taking graduate version complete additional assignments.


6.84106.838
6.8410 Shape Analysis

()
Prereqs: GIR:CAL2, 18.06, and (6.8300 or 6.4400)
Units: 3-0-9

Introduces mathematical, algorithmic, and statistical tools needed to analyze geometric data and to apply geometric techniques to data analysis, with applications to fields such as computer graphics, machine learning, computer vision, medical imaging, and architecture. Potential topics include applied introduction to differential geometry, discrete notions of curvature, metric embedding, geometric PDE via the finite element method (FEM) and discrete exterior calculus (DEC),; computational spectral geometry and relationship to graph-based learning, correspondence and mapping, level set method, descriptor, shape collections, optimal transport, and vector field design.


6.84206.839
6.8420 Computational Design and Fabrication

()
Prereqs: GIR:CAL2 and (6.1010 or permission of instructor)
Units: 3-0-9

Introduces computational aspects of computer-aided design and manufacturing. Explores relevant methods in the context of additive manufacturing (e.g., 3D printing). Topics include computer graphics (geometry modeling, solid modeling, procedural modeling), physically-based simulation (kinematics, finite element method), 3D scanning/geometry processing, and an overview of 3D fabrication methods. Exposes students to the latest research in computational fabrication. Students taking graduate version complete additional assignments.


6.85106.835
6.8510 Intelligent Multimodal User Interfaces

()
Prereqs: (6.1020 and 6.4100) or permission of instructor
Units: 3-0-9

Implementation and evaluation of intelligent multi-modal user interfaces, taught from a combination of hands-on exercises and papers from the original literature. Topics include basic technologies for handling speech, vision, pen-based interaction, and other modalities, as well as various techniques for combining modalities. Substantial readings and a term project, where students build a program that illustrates one or more of the themes of the course.


6.85306.859
6.8530 Interactive Data Visualization

()
Prereqs: 6.1020
Units: 3-0-9

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.86106.864
6.8610 Quantitative Methods for Natural Language Processing

()
Prereqs: 6.3900 and (18.06 or 18.C06)
Units: 3-0-9

Introduces the study of human language from a computational perspective, including syntactic, semantic and discourse processing models. Emphasizes machine learning methods and algorithms. Uses these methods and models in applications such as syntactic parsing, information extraction, statistical machine translation, dialogue systems. Students taking graduate version complete additional assignments.


6.86206.345
6.8620 Spoken Language Processing

()
Prereqs: 6.3000 and 6.3900
Units: 3-1-8

Introduces the rapidly developing field of spoken language processing including automatic speech recognition. Topics include acoustic theory of speech production, acoustic-phonetics, signal representation, acoustic and language modeling, search, hidden Markov modeling, neural networks models, end-to-end deep learning models, and other machine learning techniques applied to speech and language processing topics. Lecture material intersperses theory with practice. Includes problem sets, laboratory exercises, and open-ended term project.


6.86306.863
6.8630 Natural Language and the Computer Representation of Knowledge

()
Prereqs: 6.4100
Units: 3-3-6

Explores the relationship between the computer representation and acquisition of knowledge and the structure of human language, its acquisition, and hypotheses about its differentiating uniqueness. Emphasizes development of analytical skills necessary to judge the computational implications of grammatical formalisms and their role in connecting human intelligence to computational intelligence. Uses concrete examples to illustrate particular computational issues in this area.


6.87106.874
6.8710 Computational Systems Biology: Deep Learning in the Life Sciences

()
Prereqs: GIR:BIOL and (6.3700 or 18.600)
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.87206.589
6.8720 Principles of Synthetic Biology

()
Prereqs: none
Units: 3-0-9

Introduces the basics of synthetic biology, including quantitative cellular network characterization and modeling. Considers the discovery and genetic factoring of useful cellular activities into reusable functions for design. Emphasizes the principles of biomolecular system design and diagnosis of designed systems. Illustrates cutting-edge applications in synthetic biology and enhances skills in analysis and design of synthetic biological applications. Students taking graduate version complete additional assignments.


6.88006.555
6.8800 Biomedical Signal and Image Processing

()
Prereqs: (6.3700 and (2.004, 6.3000, 16.002, or 18.085)) or permission of instructor
Units: 3-1-8

Fundamentals of digital signal processing with emphasis on problems in biomedical research and clinical medicine. Basic principles and algorithms for processing both deterministic and random signals. Topics include data acquisition, imaging, filtering, coding, feature extraction, and modeling. Lab projects, performed in MATLAB, provide practical experience in processing physiological data, with examples from cardiology, speech processing, and medical imaging. Lectures cover signal processing topics relevant to the lab exercises, as well as background on the biological signals processed in the labs. Students taking graduate version complete additional assignments.


6.C51
6.C51 Modeling with Machine Learning: from Algorithms to Applications

()
Prereqs/[Coreqs]: GIR:CAL2 and 6.100A; [1.C51, 2.C51, 3.C51, 7.C51, 22.C51, or SCM.C51]
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. Students cannot receive credit without simultaneous completion of a 6-unit disciplinary module. Enrollment may be limited.

&6.S952
6.S952 Modeling with Machine Learning for Computer Science

()
Prereqs: 6.S084/18.061 or 18.06 or equivalent; 6.1200 or 6.3700, 6.100A or equivalent; Co-req 6.C51
Units: 3-0-3

[Meets with 6.S052] Focuses on in-depth modeling of engineering tasks as machine learning problems. Emphasizes framing, method design, and interpretation of results. In comparison to broader co-requisite 6.C01/6.C51, this project oriented subject consists of deep dives into select technical areas or engineering tasks involving both supervised and exploratory uses of machine learning. Deep dives into technical areas such robustness, interpretability, privacy or causal discovery; engineering tasks such as recommender systems, performance optimization, or automated design. This 6-unit subject must be taken together with the 6-unit core subject 6.C01. Enrollment may be limited.


6.C85
6.C85 Interactive Data Visualization and Society

()
Prereqs: none
Units: 3-1-8

Covers the design, ethical, and technical skills for creating effective visualizations. Short assignments build familiarity with the data analysis and visualization design process. Students participate in hour-long studio reading sessions. A final project provides experience working with real-world big data, provided by external partners, in order to expose and communicate insights about societal issues. Students taking graduate version complete additional assignments.


6.S976
6.S976 Silicon Photonics

()
Prereqs: 6.2300 or 8.07
Units: 3-0-9

[Meets with 6.S046] Covers the foundational concepts behind silicon photonics based in electromagnetics, optics, and device physics; the design of silicon-photonics-based devices (including waveguides, couplers, splitters, resonators, antennas, modulators, detectors, and lasers) using both theoretical analysis and numerical simulation tools; the engineering of silicon-photonics-based circuits and systems with a focus on a variety of applications areas (spanning computing, communications, sensing, quantum, displays, and biophotonics); the development of silicon-photonics-based platforms, including fabrication and materials considerations; and the characterization of these silicon-photonics-based devices and systems through hands-on laboratory demonstrations and projects. Students taking graduate version complete additional assignments.


grad_II: Graduate subjects that satisfy the II additional constraint.
6.37326.439
6.3732 Statistics, Computation and Applications

()
Prereqs: (6.100B, (18.03, 18.06, or 18.C06), and (6.3700, 6.3800, 14.30, 16.09, or 18.05)) or permission of instructor
Units: 3-1-8

Hands-on analysis of data demonstrates the interplay between statistics and computation. Includes four modules, each centered on a specific data set, and introduced by a domain expert. Provides instruction in specific, relevant analysis methods and corresponding algorithmic aspects. Potential modules may include medical data, gene regulation, social networks, finance data (time series), traffic, transportation, weather forecasting, policy, or industrial web applications. Projects address a large-scale data analysis question. Students taking graduate version complete additional assignments. Limited enrollment; priority to Statistics and Data Science minors and to juniors and seniors.


6.42126.843
6.4212 Robotic Manipulation

()
Prereqs: (6.100A and 6.3900) or permission of instructor
Units: 3-0-9

Introduces the fundamental algorithmic approaches for creating robot systems that can autonomously manipulate physical objects in unstructured environments such as homes and restaurants. Topics include perception (including approaches based on deep learning and approaches based on 3D geometry), planning (robot kinematics and trajectory generation, collision-free motion planning, task-and-motion planning, and planning under uncertainty), as well as dynamics and control (both model-based and learning-based. Students taking graduate version complete additional assignments.


6.51506.945
6.5150 Large-scale Symbolic Systems

()
Prereqs: 6.4100 or permission of instructor
Units: 3-0-9

Concepts and techniques for the design and implementation of large software systems that can be adapted to uses not anticipated by the designer. Applications include compilers, computer-algebra systems, deductive systems, and some artificial intelligence applications. Covers means for decoupling goals from strategy, mechanisms for implementing additive data-directed invocation, work with partially-specified entities, and how to manage multiple viewpoints. Topics include combinators, generic operations, pattern matching, pattern-directed invocation, rule systems, backtracking, dependencies, indeterminacy, memoization, constraint propagation, and incremental refinement. Students taking graduate version complete additional assignments.


6.56106.857
6.5610 Applied Cryptography and Security

()
Prereqs: 6.1200 and 6.1800
Units: 4-0-8

Emphasis on applied cryptography. May include: basic notion of systems security, cryptographic hash functions, symmetric cryptography (one-time pad, block ciphers, stream ciphers, message authentication codes), hash functions, key-exchange, public-key cryptography (encryption, digital signatures), elliptic curve cryptography,  secret-sharing, fully homomorphic encryption, zero-knowledge proofs, and electronic voting. Assignments include a final group project. Topics may vary year to year.


6.56906.885
6.83006.869
6.8300 Advances in Computer Vision

()
Prereqs: (6.1200 or 6.3700) and (18.06 or 18.C06)
Units: 3-0-9

Advanced topics in computer vision with a focus on the use of machine learning techniques and applications in graphics and human-computer interface. Covers image representations, texture models, structure-from-motion algorithms, Bayesian techniques, object and scene recognition, tracking, shape modeling, and image databases. Applications may include face recognition, multimodal interaction, interactive systems, cinematic special effects, and photorealistic rendering. Covers topics complementary to 6.8390. Students taking graduate version complete additional assignments.


6.84206.839
6.8420 Computational Design and Fabrication

()
Prereqs: GIR:CAL2 and (6.1010 or permission of instructor)
Units: 3-0-9

Introduces computational aspects of computer-aided design and manufacturing. Explores relevant methods in the context of additive manufacturing (e.g., 3D printing). Topics include computer graphics (geometry modeling, solid modeling, procedural modeling), physically-based simulation (kinematics, finite element method), 3D scanning/geometry processing, and an overview of 3D fabrication methods. Exposes students to the latest research in computational fabrication. Students taking graduate version complete additional assignments.


6.85106.835
6.8510 Intelligent Multimodal User Interfaces

()
Prereqs: (6.1020 and 6.4100) or permission of instructor
Units: 3-0-9

Implementation and evaluation of intelligent multi-modal user interfaces, taught from a combination of hands-on exercises and papers from the original literature. Topics include basic technologies for handling speech, vision, pen-based interaction, and other modalities, as well as various techniques for combining modalities. Substantial readings and a term project, where students build a program that illustrates one or more of the themes of the course.


6.85306.859
6.8530 Interactive Data Visualization

()
Prereqs: 6.1020
Units: 3-0-9

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.86106.864
6.8610 Quantitative Methods for Natural Language Processing

()
Prereqs: 6.3900 and (18.06 or 18.C06)
Units: 3-0-9

Introduces the study of human language from a computational perspective, including syntactic, semantic and discourse processing models. Emphasizes machine learning methods and algorithms. Uses these methods and models in applications such as syntactic parsing, information extraction, statistical machine translation, dialogue systems. Students taking graduate version complete additional assignments.

6.87006.878
6.8700 Advanced Computational Biology: Genomes, Networks, Evolution

()
Prereqs: (GIR:BIOL, 6.1210, and 6.3700) or permission of instructor
Units: 4-0-8

See description for 6.047. Additionally examines recent publications in the areas covered, with research-style assignments. A more substantial final project is expected, which can lead to a thesis and publication.


6.C51
6.C51 Modeling with Machine Learning: from Algorithms to Applications

()
Prereqs/[Coreqs]: GIR:CAL2 and 6.100A; [1.C51, 2.C51, 3.C51, 7.C51, 22.C51, or SCM.C51]
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. Students cannot receive credit without simultaneous completion of a 6-unit disciplinary module. Enrollment may be limited.

&6.S952
6.S952 Modeling with Machine Learning for Computer Science

()
Prereqs: 6.S084/18.061 or 18.06 or equivalent; 6.1200 or 6.3700, 6.100A or equivalent; Co-req 6.C51
Units: 3-0-3

[Meets with 6.S052] Focuses on in-depth modeling of engineering tasks as machine learning problems. Emphasizes framing, method design, and interpretation of results. In comparison to broader co-requisite 6.C01/6.C51, this project oriented subject consists of deep dives into select technical areas or engineering tasks involving both supervised and exploratory uses of machine learning. Deep dives into technical areas such robustness, interpretability, privacy or causal discovery; engineering tasks such as recommender systems, performance optimization, or automated design. This 6-unit subject must be taken together with the 6-unit core subject 6.C01. Enrollment may be limited.


6.C85
6.C85 Interactive Data Visualization and Society

()
Prereqs: none
Units: 3-1-8

Covers the design, ethical, and technical skills for creating effective visualizations. Short assignments build familiarity with the data analysis and visualization design process. Students participate in hour-long studio reading sessions. A final project provides experience working with real-world big data, provided by external partners, in order to expose and communicate insights about societal issues. Students taking graduate version complete additional assignments.


6.S893
6.S893 Multi-agent Communication

()
Prereqs: 6.8610 or permission of instructors
Units: 2-0-10

Seminar on problems at the intersection of language processing and multi-agent systems. Topics to be covered include computational models of pragmatic reasoning, language evolution, and "self-play" training for language models.


6.S953
6.S953 Embodied Intelligence

()
Prereqs: (6.3900 or 6.7900) and (6.1210 or 6.1220)
Units: 3-0-9

Our goal is to address the broad problem of designing a general-purpose intelligent robot. To address this question, a very broad background is required. We propose to spend the first 4 weeks covering important background topics: each week will combine a foundational tutorial reading with one or two state-of-the-art research results. In the subsequent weeks, we will address topics that cut across the basic disciplinary boundaries, typically combining two or more areas, with the work focused on studying and discussing current research in the relevant area.

6.S977
6.S977 Ethical Machine Learning In Human Deployments

()
Prereqs: 6.7900
Units: 3-0-9

This course focuses on the human-facing considerations in the pipeline of machine learning (ML) development in human-facing settings like healthcare, employment, and education. Students will learn about the issues involved in ethical machine learning, including framing ethics of ML in healthcare through the lens of social justice. Students will read papers related to ongoing efforts and challenges in ethical ML, ranging from problem selection to post-deployment considerations. Guest lectures will be given by experts in data access, ethics, fairness, privacy and deployments, and the course will focus around a central project that students will use to explore how machine learning can potentially be brought into human-facing deployments ethically.


6.S984
6.S984 Datacenter Computing

()
Prereqs: 6.1910 or equivalent and 6.1800 or equivalent
Units: 3-0-9

Warehouse-scale datacenters host a wide range of online services, including social networks, web search, video streaming, machine learning, and serverless workloads. In this course, we will study the end-to-end stack of modern datacenters, from hardware and OS all the way to resource managers and programming frameworks. We will also explore cross-cutting issues, such as total cost of ownership, service level objectives, availability, and reliability. The course is a combination of lectures and paper readings. Students will read up to two papers per topic and submit brief summaries. During class meetings, we will start with a student presentation of the papers followed by an in-class discussion. The main deliverable for the course is a semester-long group project which should address an open research problem in modern cloud environments (project suggestions will be provided by the instructor, but students are also welcome to propose their own). The class is appropriate for graduate and advanced undergraduate students who want to learn more about cloud computing and datacenter systems.


AAGS: Approved advanced graduate subjects are graduate subjects that build on foundational knowledge to develop advanced (and often state-of-the-art) expertise in a field of interest.
16.420
16.420 Planning Under Uncertainty

()
Prereqs: 16.413
Units: 3-0-9

Concepts, principles, and methods for planning with imperfect knowledge. Topics include state estimation, planning in information space, partially observable Markov decision processes, reinforcement learning and planning with uncertain models. Students will develop an understanding of how different planning algorithms and solutions techniques are useful in different problem domains. Previous coursework in artificial intelligence and state estimation strongly recommended.


18.435
18.435 Quantum Computation

()
Prereqs: 8.05, 18.06, 18.700, 18.701, or 18.C06
Units: 3-0-9

Provides an introduction to the theory and practice of quantum computation. Topics covered: physics of information processing; quantum algorithms including the factoring algorithm and Grover's search algorithm; quantum error correction; quantum communication and cryptography. Knowledge of quantum mechanics helpful but not required.


2.111
2.111 Quantum Computation

()
Prereqs: 8.05, 18.06, 18.700, 18.701, or 18.C06
Units: 3-0-9

Provides an introduction to the theory and practice of quantum computation. Topics covered: physics of information processing; quantum algorithms including the factoring algorithm and Grover's search algorithm; quantum error correction; quantum communication and cryptography. Knowledge of quantum mechanics helpful but not required.


6.20926.321
6.2092 Solid-State Circuits

()
Prereqs: 6.2040, 6.2080, or permission of instructor
Units: 3-2-7

Fosters deep understanding and intuition that is crucial in innovating analog circuits and optimizing the whole system in bipolar junction transistor (BJT) and metal oxide semiconductor (MOS) technologies. Covers both theory and real-world applications of basic amplifier structures, operational amplifiers, temperature sensors, bandgap references. Covers topics such as noise, linearity and stability. Homework and labs give students access to CAD/EDA tools to design and analyze analog circuits. Provides practical experience through lab exercises, including a broadband amplifier design and characterization. Students taking graduate version complete additional assignments.


6.22226.330
6.2222 Power Electronics Laboratory

()
Prereqs: Permission of instructor
Units: 3-9-3

 Hands-on introduction to the design and construction of power electronic circuits and motor drives. Laboratory exercises (shared with 6.131 and 6.1311) 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. Students taking graduate version complete additional assignments and an extended final project.


6.25326.719
6.2532 Nanoelectronics

()
Prereqs: 6.3000
Units: 4-0-8

Meets with undergraduate subject 6.2530, but requires the completion of additional/different homework assignments and or projects. See subject description under 6.2530.


6.31026.320
6.3102 Dynamical System Modeling and Control Design

(,)
Prereqs: GIR:PHY2 and (18.06 or 18.C06)
Units: 4-4-4

A learn-by-design introduction to modeling and control of discrete- and continuous-time systems, from intuition-building analytical techniques to more computational and data-centric strategies. Topics include: linear difference/differential equations (natural frequencies, transfer functions); controller metrics (stability, tracking, disturbance rejection); analytical techniques (PID, root-loci, lead-lag, phase margin); computational strategies (state-space, eigen-placement, LQR); and data-centric approaches (state estimation, regression and identification). Concepts are introduced with lectures and on-line problems, and then mastered during weekly labs. In lab, students model, design, test and explain systems and controllers involving sensors, actuators, and a microcontroller (e.g. optimizing thrust-driven positioners or stabilizing magnetic levitators). Students in the graduate version complete additional problems and labs.


6.37026.431
6.3702 Introduction to Probability

(,)
Prereqs: GIR:CAL2
Units: 4-0-8

An introduction to probability theory, the modeling and analysis of probabilistic systems, and elements of statistical inference. Probabilistic models, conditional probability. Discrete and continuous random variables. Expectation and conditional expectation, and further topics about random variables. Limit Theorems. Bayesian estimation and hypothesis testing. Elements of classical statistical inference. Bernoulli and Poisson processes. Markov chains. Students taking graduate version complete additional assignments.


6.37226.481
6.3722 Introduction to Statistical Data Analysis

()
Prereqs: 6.100A and (6.3700, 6.3800, 18.600, or permission of instructor)
Units: 4-0-8

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.37326.439
6.3732 Statistics, Computation and Applications

()
Prereqs: (6.100B, (18.03, 18.06, or 18.C06), and (6.3700, 6.3800, 14.30, 16.09, or 18.05)) or permission of instructor
Units: 3-1-8

Hands-on analysis of data demonstrates the interplay between statistics and computation. Includes four modules, each centered on a specific data set, and introduced by a domain expert. Provides instruction in specific, relevant analysis methods and corresponding algorithmic aspects. Potential modules may include medical data, gene regulation, social networks, finance data (time series), traffic, transportation, weather forecasting, policy, or industrial web applications. Projects address a large-scale data analysis question. Students taking graduate version complete additional assignments. Limited enrollment; priority to Statistics and Data Science minors and to juniors and seniors.


6.3952
6.3952 AI, Decision Making, and Society

()
Prereqs/[Coreqs]: [6.1200, 6.3700, 6.3800, or 18.05]
Units: 4-0-8

Introduction to fundamentals of modern data-driven decision-making frameworks, such as causal inference and hypothesis testing in statistics as well as supervised and reinforcement learning in machine learning. Explores how these frameworks are being applied in various societal contexts, including criminal justice, healthcare, finance, and social media. Emphasis on pinpointing the non-obvious interactions, undesirable feedback loops, and unintended consequences that arise in such settings. Enables students to develop their own principled perspective on the interface of data-driven decision making and society. Students taking graduate version complete additional assignments.


6.41326.877
6.4132 Principles of Autonomy and Decision Making

()
Prereqs: 6.100B, 6.9080, or permission of instructor
Units: 3-0-9

Surveys decision making methods used to create highly autonomous systems and decision aids. Applies models, principles and algorithms taken from artificial intelligence and operations research. Focuses on planning as state-space search, including uninformed, informed and stochastic search, activity and motion planning, probabilistic and adversarial planning, Markov models and decision processes, and Bayesian filtering. Also emphasizes planning with real-world constraints using constraint programming. Includes methods for satisfiability and optimization of logical, temporal and finite domain constraints, graphical models, and linear and integer programs, as well as methods for search, inference, and conflict-learning. Students taking graduate version complete additional assignments.


6.42126.843
6.4212 Robotic Manipulation

()
Prereqs: (6.100A and 6.3900) or permission of instructor
Units: 3-0-9

Introduces the fundamental algorithmic approaches for creating robot systems that can autonomously manipulate physical objects in unstructured environments such as homes and restaurants. Topics include perception (including approaches based on deep learning and approaches based on 3D geometry), planning (robot kinematics and trajectory generation, collision-free motion planning, task-and-motion planning, and planning under uncertainty), as well as dynamics and control (both model-based and learning-based. Students taking graduate version complete additional assignments.


6.48126.521
6.4812 Cellular Neurophysiology and Computing

()
Prereqs: (GIR:PHY2, 18.03, and (2.005, 6.2000, 6.3000, 10.301, or 20.110)) or permission of instructor
Units: 5-2-5

Integrated overview of the biophysics of cells from prokaryotes to neurons, with a focus on mass transport and electrical signal generation across cell membrane. First third of course focuses on mass transport through membranes: diffusion, osmosis, chemically mediated, and active transport. Second third focuses on electrical properties of cells: ion transport to action potential generation and propagation in electrically excitable cells. Synaptic transmission. Electrical properties interpreted via kinetic and molecular properties of single voltage-gated ion channels. Final third focuses on biophysics of synaptic transmission and introduction to neural computing. Laboratory and computer exercises illustrate the concepts. Students taking graduate version complete different assignments.


6.48226.522
6.4822 Quantitative Physiology: Organ Transport Systems

()
Prereqs: 6.4810 and (2.006 or 6.2300)
Units: 4-2-6

Application of the principles of energy and mass flow to major human organ systems. Anatomical, physiological and clinical features of the cardiovascular, respiratory and renal systems. Mechanisms of regulation and homeostasis. Systems, features and devices that are most illuminated by the methods of physical sciences and engineering models. Required laboratory work includes animal studies. Students taking graduate version complete additional assignments.


6.48326.561
6.4832 Fields, Forces, and Flows in Biological Systems

()
Prereqs: Permission of instructor
Units: 3-0-9

Molecular diffusion, diffusion-reaction, conduction, convection in biological systems; fields in heterogeneous media; electrical double layers; Maxwell stress tensor, electrical forces in physiological systems. Fluid and solid continua: equations of motion useful for porous, hydrated biological tissues. Case studies of membrane transport, electrode interfaces, electrical, mechanical, and chemical transduction in tissues, convective-diffusion/reaction, electrophoretic, electroosmotic flows in tissues/MEMs, and ECG. Electromechanical and physicochemical interactions in cells and biomaterials; musculoskeletal, cardiovascular, and other biological and clinical examples. Prior undergraduate coursework in transport recommended.


6.48426.524
6.4842 Molecular, Cellular, and Tissue Biomechanics

()
Prereqs: GIR:BIOL and 18.03
Units: 3-0-9

Develops and applies scaling laws and the methods of continuum mechanics to biomechanical phenomena over a range of length scales. Topics include structure of tissues and the molecular basis for macroscopic properties; chemical and electrical effects on mechanical behavior; cell mechanics, motility and adhesion; biomembranes; biomolecular mechanics and molecular motors. Experimental methods for probing structures at the tissue, cellular, and molecular levels. Students taking graduate version complete additional assignments.


6.48616.525
6.4861 Medical Device Design

()
Prereqs: 2.008, 6.2040, 6.2050, 6.2060, 22.071, or permission of instructor
Units: 3-3-6

Provides an intense project-based learning experience around the design of medical devices with foci ranging from mechanical to electro mechanical to electronics. Projects motivated by real-world clinical challenges provided by sponsors and clinicians who also help mentor teams. Covers the design process, project management, and fundamentals of mechanical and electrical circuit and sensor design. Students work in small teams to execute a substantial term project, with emphasis placed upon developing creative designs — via a deterministic design process — that are developed and optimized using analytical techniques. Includes mandatory lab. Instruction and practice in written and oral communication provided. Students taking graduate version complete additional assignments. Enrollment limited.


6.50606.827
6.5060 Algorithm Engineering

()
Prereqs: 6.1060 and 6.1220
Units: 3-0-9

Covers the theory and practice of algorithms and data structures. Topics include models of computation, algorithm design and analysis, and performance engineering of algorithm implementations. Presents the design and implementation of sequential, parallel, cache-efficient, and external-memory algorithms. Illustrates many of the principles of algorithm engineering in the context of parallel algorithms and graph problems.


6.50806.836
6.5080 Multicore Programming

()
Prereqs: 6.1210
Units: 4-0-8

Introduces principles and core techniques for programming multicore machines. Topics include locking, scalability, concurrent data structures, multiprocessor scheduling, load balancing, and state-of-the-art synchronization techniques, such as transactional memory. Includes sequence of programming assignments on a large multicore machine, culminating with the design of a highly concurrent application. Students taking graduate version complete additional assignments.


6.51106.820
6.5110 Foundations of Program Analysis

()
Prereqs: 6.1100
Units: 3-0-9

Presents major principles and techniques for program analysis. Includes formal semantics, type systems and type-based program analysis, abstract interpretation and model checking and synthesis. Emphasis on Haskell and Ocaml, but no prior experience in these languages is assumed. Student assignments include implementing of techniques covered in class, including building simple verifiers.


6.51206.822
6.5120 Formal Reasoning About Programs

()
Prereqs: 6.1020 and 6.1200
Units: 3-0-9

Surveys techniques for rigorous mathematical reasoning about correctness of software, emphasizing commonalities across approaches. Introduces interactive computer theorem proving with the Coq proof assistant, which is used for all assignments, providing immediate feedback on soundness of logical arguments. Covers common program-proof techniques, including operational semantics, model checking, abstract interpretation, type systems, program logics, and their applications to functional, imperative, and concurrent programs. Develops a common conceptual framework based on invariants, abstraction, and modularity applied to state and labeled transition systems.


6.51506.945
6.5150 Large-scale Symbolic Systems

()
Prereqs: 6.4100 or permission of instructor
Units: 3-0-9

Concepts and techniques for the design and implementation of large software systems that can be adapted to uses not anticipated by the designer. Applications include compilers, computer-algebra systems, deductive systems, and some artificial intelligence applications. Covers means for decoupling goals from strategy, mechanisms for implementing additive data-directed invocation, work with partially-specified entities, and how to manage multiple viewpoints. Topics include combinators, generic operations, pattern matching, pattern-directed invocation, rule systems, backtracking, dependencies, indeterminacy, memoization, constraint propagation, and incremental refinement. Students taking graduate version complete additional assignments.


6.51606.946
6.5160 Classical Mechanics: A Computational Approach

()
Prereqs: GIR:PHY1, 18.03, and permission of instructor
Units: 3-3-6

Classical mechanics in a computational framework, Lagrangian formulation, action, variational principles, and Hamilton's principle. Conserved quantities, Hamiltonian formulation, surfaces of section, chaos, and Liouville's theorem. Poincaré integral invariants, Poincaré-Birkhoff and KAM theorems. Invariant curves and cantori. Nonlinear resonances, resonance overlap and transition to chaos. Symplectic integration. Adiabatic invariants. Applications to simple physical systems and solar system dynamics. Extensive use of computation to capture methods, for simulation, and for symbolic analysis. Programming experience required.


6.52106.854
6.5210 Advanced Algorithms

()
Prereqs: 6.1220 and (6.1200, 6.3700, or 18.600)
Units: 5-0-7

First-year graduate subject in algorithms. Emphasizes fundamental algorithms and advanced methods of algorithmic design, analysis, and implementation. Surveys a variety of computational models and the algorithms for them. Data structures, network flows, linear programming, computational geometry, approximation algorithms, online algorithms, parallel algorithms, external memory, streaming algorithms.


6.52206.856
6.5220 Randomized Algorithms

()
Prereqs: (6.1200 or 6.3700) and (6.1220 or 6.5210)
Units: 5-0-7

Studies how randomization can be used to make algorithms simpler and more efficient via random sampling, random selection of witnesses, symmetry breaking, and Markov chains. Models of randomized computation. Data structures: hash tables, and skip lists. Graph algorithms: minimum spanning trees, shortest paths, and minimum cuts. Geometric algorithms: convex hulls, linear programming in fixed or arbitrary dimension. Approximate counting; parallel algorithms; online algorithms; derandomization techniques; and tools for probabilistic analysis of algorithms.


6.52306.851
6.5230 Advanced Data Structures

()
Prereqs: 6.1220
Units: 3-0-9

More advanced and powerful data structures for answering several queries on the same data. Such structures are crucial in particular for designing efficient algorithms. Dictionaries; hashing; search trees. Self-adjusting data structures; linear search; splay trees; dynamic optimality. Integer data structures; word RAM. Predecessor problem; van Emde Boas priority queues; y-fast trees; fusion trees. Lower bounds; cell-probe model; round elimination. Dynamic graphs; link-cut trees; dynamic connectivity. Strings; text indexing; suffix arrays; suffix trees. Static data structures; compact arrays; rank and select. Succinct data structures; tree encodings; implicit data structures. External-memory and cache-oblivious data structures; B-trees; buffer trees; tree layout; ordered-file maintenance. Temporal data structures; persistence; retroactivity.


6.52406.855
6.5240 Sublinear Time Algorithms

()
Prereqs: 6.1220 or permission of instructor
Units: 3-0-9

Sublinear time algorithms understand parameters and properties of input data after viewing only a minuscule fraction of it. Tools from number theory, combinatorics, linear algebra, optimization theory, distributed algorithms, statistics, and probability are covered. Topics include: testing and estimating properties of distributions, functions, graphs, strings, point sets, and various combinatorial objects.


6.52506.852
6.5250 Distributed Algorithms

()
Prereqs: 6.1220
Units: 3-0-9

Design and analysis of concurrent algorithms, emphasizing those suitable for use in distributed networks. Process synchronization, allocation of computational resources, distributed consensus, distributed graph algorithms, election of a leader in a network, distributed termination, deadlock detection, concurrency control, communication, and clock synchronization. Special consideration given to issues of efficiency and fault tolerance. Formal models and proof methods for distributed computation.


6.53106.849
6.5310 Geometric Folding Algorithms: Linkages, Origami, Polyhedra

()
Prereqs: 6.1220 or permission of instructor
Units: 3-0-9

Covers discrete geometry and algorithms underlying the reconfiguration of foldable structures, with applications to robotics, manufacturing, and biology. Linkages made from one-dimensional rods connected by hinges: constructing polynomial curves, characterizing rigidity, characterizing unfoldable versus locked, protein folding. Folding two-dimensional paper (origami): characterizing flat foldability, algorithmic origami design, one-cut magic trick. Unfolding and folding three-dimensional polyhedra: edge unfolding, vertex unfolding, gluings, Alexandrov's Theorem, hinged dissections.


6.53206.850
6.5320 Geometric Computing

()
Prereqs: 6.1220
Units: 3-0-9

Introduction to the design and analysis of algorithms for geometric problems, in low- and high-dimensional spaces. Algorithms: convex hulls, polygon triangulation, Delaunay triangulation, motion planning, pattern matching. Geometric data structures: point location, Voronoi diagrams, Binary Space Partitions. Geometric problems in higher dimensions: linear programming, closest pair problems. High-dimensional nearest neighbor search and low-distortion embeddings between metric spaces. Geometric algorithms for massive data sets: external memory and streaming algorithms. Geometric optimization.


6.53406.853
6.5340 Topics in Algorithmic Game Theory

()
Prereqs: 6.1210 or 6.1220
Units: 3-0-9

Presents research topics at the interface of computer science and game theory, with an emphasis on algorithms and computational complexity. Explores the types of game-theoretic tools that are applicable to computer systems, the loss in system performance due to the conflicts of interest of users and administrators, and the design of systems whose performance is robust with respect to conflicts of interest inside the system. Algorithmic focus is on algorithms for equilibria, the complexity of equilibria and fixed points, algorithmic tools in mechanism design, learning in games, and the price of anarchy.


6.53506.847
6.5350 Matrix Multiplication and Graph Algorithms

()
Prereqs: 6.1220
Units: 3-0-9

Explores topics around matrix multiplication (MM) and its use in the design of graph algorithms. Focuses on problems such as transitive closure, shortest paths, graph matching, and other classical graph problems. Explores fast approximation algorithms when MM techniques are too expensive.


6.53706.891
6.53806.892
6.53906.893
6.54006.840
6.5400 Theory of Computation

()
Prereqs: 6.1200 or 18.200
Units: 4-0-8

A more extensive and theoretical treatment of the material in 6.1400J/18.400J, emphasizing computability and computational complexity theory. Regular and context-free languages. Decidable and undecidable problems, reducibility, recursive function theory. Time and space measures on computation, completeness, hierarchy theorems, inherently complex problems, oracles, probabilistic computation, and interactive proof systems. Students in Course 18 must register for the undergraduate version, 18.404.


6.54106.841
6.5410 Advanced Complexity Theory

()
Prereqs: 18.404
Units: 3-0-9

Current research topics in computational complexity theory. Nondeterministic, alternating, probabilistic, and parallel computation models. Boolean circuits. Complexity classes and complete sets. The polynomial-time hierarchy. Interactive proof systems. Relativization. Definitions of randomness. Pseudo-randomness and derandomizations. Interactive proof systems and probabilistically checkable proofs.


6.54206.842
6.5420 Randomness and Computation

()
Prereqs: 6.1220 and 18.4041
Units: 3-0-9

The power and sources of randomness in computation. Connections and applications to computational complexity, computational learning theory, cryptography and combinatorics. Topics include: probabilistic proofs, uniform generation and approximate counting, Fourier analysis of Boolean functions, computational learning theory, expander graphs, pseudorandom generators, derandomization.


6.54306.845
6.5430 Quantum Complexity Theory

()
Prereqs: 6.1400, 18.4041, and 18.435
Units: 3-0-9

Introduction to quantum computational complexity theory, the study of the fundamental capabilities and limitations of quantum computers. Topics include complexity classes, lower bounds, communication complexity, proofs and advice, and interactive proof systems in the quantum world; classical simulation of quantum circuits. The objective is to bring students to the research frontier.


6.54806.889
6.54906.890
6.56106.857
6.5610 Applied Cryptography and Security

()
Prereqs: 6.1200 and 6.1800
Units: 4-0-8

Emphasis on applied cryptography. May include: basic notion of systems security, cryptographic hash functions, symmetric cryptography (one-time pad, block ciphers, stream ciphers, message authentication codes), hash functions, key-exchange, public-key cryptography (encryption, digital signatures), elliptic curve cryptography,  secret-sharing, fully homomorphic encryption, zero-knowledge proofs, and electronic voting. Assignments include a final group project. Topics may vary year to year.


6.56206.875
6.5620 Cryptography and Cryptanalysis

()
Prereqs: 6.1220
Units: 3-0-9

A rigorous introduction to modern cryptography. Emphasis on the fundamental cryptographic primitives of public-key encryption, digital signatures, pseudo-random number generation, and basic protocols and their computational complexity requirements.

6.56306.876
6.5630 Advanced Topics in Cryptography

()
Prereqs: 6.5620
Units: 3-0-9

In-depth exploration of recent results in cryptography.


6.56606.858
6.5660 Computer Systems Security

()
Prereqs: 6.1020 and 6.1800
Units: 3-6-3

Design and implementation of secure computer systems. Lectures cover attacks that compromise security as well as techniques for achieving security, based on recent research papers. Topics include operating system security, privilege separation, capabilities, language-based security, cryptographic network protocols, trusted hardware, and security in web applications and mobile phones. Labs involve implementing and compromising a web application that sandboxes arbitrary code, and a group final project.


6.56906.885
6.58106.828
6.5810 Operating System Engineering

()
Prereqs: 6.1020 and 6.1800
Units: 3-6-3

Fundamental design and implementation issues in the engineering of operating systems. Lectures based on the study of a symmetric multiprocessor version of UNIX version 6 and research papers. Topics include virtual memory; file system; threads; context switches; kernels; interrupts; system calls; interprocess communication; coordination, and interaction between software and hardware. Individual laboratory assignments accumulate in the construction of a minimal operating system (for an x86-based personal computer) that implements the basic operating system abstractions and a shell. Knowledge of programming in the C language is a prerequisite.


6.58206.829
6.5820 Computer Networks

()
Prereqs: 6.1800 or permission of instructor
Units: 4-0-8

Topics on the engineering and analysis of network protocols and architecture, including architectural principles for designing heterogeneous networks; transport protocols; Internet routing; router design; congestion control and network resource management; wireless networks; network security; naming; overlay and peer-to-peer networks. Readings from original research papers. Semester-long project and paper.


6.58306.830
6.5830 Database Systems

()
Prereqs: (6.1800 and (6.1210 or 6.1220)) or permission of instructor
Units: 3-0-9

Topics related to the engineering and design of database systems, including data models; database and schema design; schema normalization and integrity constraints; query processing; query optimization and cost estimation; transactions; recovery; concurrency control; isolation and consistency; distributed, parallel and heterogeneous databases; adaptive databases; trigger systems; pub-sub systems; semi structured data and XML querying. Lecture and readings from original research papers. Semester-long project and paper. Students taking graduate version complete different assignments. Enrollment may be limited.


6.58406.824
6.5840 Distributed Computer Systems Engineering

()
Prereqs: 6.1800 and permission of instructor
Units: 3-0-9

Abstractions and implementation techniques for engineering distributed systems: remote procedure call, threads and locking, client/server, peer-to-peer, consistency, fault tolerance, and security. Readings from current literature. Individual laboratory assignments culminate in the construction of a fault-tolerant and scalable network file system. Programming experience with C/C++ required. Enrollment limited.


6.58506.826
6.5850 Principles of Computer Systems

()
Prereqs: Permission of instructor
Units: 3-0-9

Introduction to the basic principles of computer systems with emphasis on the use of rigorous techniques as an aid to understanding and building modern computing systems. Particular attention paid to concurrent and distributed systems. Topics include: specification and verification, concurrent algorithms, synchronization, naming, Networking, replication techniques (including distributed cache management), and principles and algorithms for achieving reliability.


6.58806.887
6.58906.888
6.59006.823
6.5900 Computer System Architecture

()
Prereqs: 6.1910
Units: 4-0-8

Introduction to the principles underlying modern computer architecture. Emphasizes the relationship among technology, hardware organization, and programming systems in the evolution of computer architecture. Topics include pipelined, out-of-order, and speculative execution; caches, virtual memory and exception handling, superscalar, very long instruction word (VLIW), vector, and multithreaded processors; on-chip networks, memory models, synchronization, and cache coherence protocols for multiprocessors.


6.59106.375
6.5910 Complex Digital Systems Design

()
Prereqs: 6.1910
Units: 5-5-2

Introduction to the design and implementation of large-scale digital systems using hardware description languages and high-level synthesis tools in conjunction with standard commercial electronic design automation (EDA) tools. Emphasizes modular and robust designs, reusable modules, correctness by construction, architectural exploration, meeting area and timing constraints, and developing functional field-programmable gate array (FPGA) prototypes. Extensive use of CAD tools in weekly labs serve as preparation for a multi-person design project on multi-million gate FPGAs. Enrollment may be limited.


6.59206.846
6.5920 Parallel Computing

()
Prereqs: 6.1910 or permission of instructor
Units: 3-0-9

Introduction to parallel and multicore computer architecture and programming. Topics include the design and implementation of multicore processors; networking, video, continuum, particle and graph applications for multicores; communication and synchronization algorithms and mechanisms; locality in parallel computations; computational models, including shared memory, streams, message passing, and data parallel; multicore mechanisms for synchronization, cache coherence, and multithreading. Performance evaluation of multicores; compilation and runtime systems for parallel computing. Substantial project required.


6.59306.825
6.5930 Hardware Architecture for Deep Learning

()
Prereqs: 6.1910 and (6.3000 or 6.3900)
Units: 3-3-6

Introduction to the design and implementation of hardware architectures for efficient processing of deep learning algorithms and tensor algebra in AI systems. Topics include basics of deep learning, optimization principles for programmable platforms, design principles of accelerator architectures, co-optimization of algorithms and hardware (including sparsity) and use of advanced technologies (including memristors and optical computing). Includes labs involving modeling and analysis of hardware architectures, architecting deep learning inference systems, and an open-ended design project. Students taking graduate version complete additional assignments.


6.5940
6.5940 TinyML and Efficient Deep Learning Computing

()
Prereqs: 6.1910 and 6.3900
Units: 3-0-9

Introduces efficient deep learning computing techniques that enable powerful deep learning applications on resource-constrained devices. Topics include model compression, pruning, quantization, neural architecture search, distributed training, data/model parallellism, gradient compression, on-device fine-tuning. It also introduces application-specific acceleration techniques for video recognition, point cloud, and generative AI (diffusion model, LLM). Students will get hands-on experience accelerating deep learning applications with an open-ended design project.


6.5950
6.5950 Secure Hardware Design

()
Prereqs: 6.1910
Units: 3-0-9

Introduction to basic concepts, principles, and implementation issues in the designing of secure hardware systems. Through a mixture of lectures and paper discussions, covers state-of-the-art security attacks and defenses targeting the computer architecture, digital circuits, and physics layers of computer systems. Emphasizes both the conceptual and the practical aspects of security issues in modern hardware systems. Topics include microarchitectural timing side channels, speculative execution attacks, RowHammer, Trusted Execution Environment, physical attacks, hardware support for software security, and verification of digital systems. Students taking graduate version complete additional assignments.


6.59906.886
6.60006.775
6.6000 CMOS Analog and Mixed-Signal Circuit Design

()
Prereqs: 6.2090
Units: 3-0-9

A detailed exposition of the principles involved in designing and optimizing analog and mixed-signal circuits in CMOS technologies. Small-signal and large-signal models. Systemic methodology for device sizing and biasing. Basic circuit building blocks. Operational amplifier design. Large signal considerations. Principles of switched capacitor networks including switched-capacitor and continuous-time integrated filters. Basic and advanced A/D and D/A converters, delta-sigma modulators, RF and other signal processing circuits. Design projects on op amps and subsystems are a required part of the subject.


6.60106.374
6.6010 Analysis and Design of Digital Integrated Circuits

()
Prereqs: 6.1910 and (6.2080 or 6.2500)
Units: 3-3-6

Device and circuit level optimization of digital building blocks. Circuit design styles for logic, arithmetic, and sequential blocks. Estimation and minimization of energy consumption. Interconnect models and parasitics, device sizing and logical effort, timing issues (clock skew and jitter), and active clock distribution techniques. Memory architectures, circuits (sense amplifiers), and devices. Evaluation of how design choices affect tradeoffs across key metrics including energy consumption, speed, robustness, and cost. Extensive use of modern design flow and EDA/CAD tools for the analysis and design of digital building blocks and digital VLSI design for labs and design projects


6.60206.776
6.6020 High Speed Communication Circuits

()
Prereqs: 6.2090
Units: 3-3-6

Principles and techniques of high-speed integrated circuits used in wireless/wireline data links and remote sensing. On-chip passive component design of inductors, capacitors, and antennas. Analysis of distributed effects, such as transmission line modeling, S-parameters, and Smith chart. Transceiver architectures and circuit blocks, which include low-noise amplifiers, mixers, voltage-controlled oscillators, power amplifiers, and frequency dividers. Involves IC/EM simulation and laboratory projects.


6.60306.333
6.62206.334
6.6220 Power Electronics

()
Prereqs: 6.2500
Units: 3-0-9

The application of electronics to energy conversion and control. Modeling, analysis, and control techniques. Design of power circuits including inverters, rectifiers, and dc-dc converters. Analysis and design of magnetic components and filters. Characteristics of power semiconductor devices. Numerous application examples, such as motion control systems, power supplies, and radio-frequency power amplifiers.


6.62706.332
6.62806.685
6.6280 Electric Machines

()
Prereqs: 6.2200, 6.690, or permission of instructor
Units: 3-0-9

Treatment of electromechanical transducers, rotating and linear electric machines. Lumped-parameter electromechanics. Power flow using Poynting's theorem, force estimation using the Maxwell stress tensor and Principle of virtual work. Development of analytical techniques for predicting device characteristics: energy conversion density, efficiency; and of system interaction characteristics: regulation, stability, controllability, and response. Use of electric machines in drive systems. Problems taken from current research.


6.63006.630
6.6300 Electromagnetics

()
Prereqs: GIR:PHY2 and 6.3000
Units: 4-0-8

Explores electromagnetic phenomena in modern applications, including wireless and optical communications, circuits, computer interconnects and peripherals, microwave communications and radar, antennas, sensors, micro-electromechanical systems, and power generation and transmission. Fundamentals include quasistatic and dynamic solutions to Maxwell's equations; waves, radiation, and diffraction; coupling to media and structures; guided and unguided waves; modal expansions; resonance; acoustic analogs; and forces, power, and energy.


6.63106.631
6.6310 Optics and Photonics

()
Prereqs: 6.2300 or 8.03
Units: 3-0-9

Introduction to fundamental concepts and techniques of optics, photonics, and fiber optics, aimed at developing skills for independent research. Topics include: Review of Maxwell's equations, light propagation, reflection and transmission, dielectric mirrors and filters. Scattering matrices, interferometers, and interferometric measurement. Fresnel and Fraunhoffer diffraction theory. Lenses, optical imaging systems, and software design tools. Gaussian beams, propagation and resonator design. Optical waveguides, optical fibers and photonic devices for encoding and detection. Discussion of research operations / funding and professional development topics. The course reviews and introduces mathematical methods and techniques, which are fundamental in optics and photonics, but also useful in many other engineering specialties.


6.63306.621
6.6330 Fundamentals of Photonics

()
Prereqs: 2.71, 6.2300, or 8.07
Units: 3-0-9

Covers the fundamentals of optics and the interaction of light and matter, leading to devices such as light emitting diodes, optical amplifiers, and lasers. Topics include classical ray, wave, beam, and Fourier optics; Maxwell's electromagnetic waves; resonators; quantum theory of photons; light-matter interaction; laser amplification; lasers; and semiconductors optoelectronics. Students taking graduate version complete additional assignments.


6.63406.634
6.6340 Nonlinear Optics

()
Prereqs: 6.2300 or 8.03
Units: 3-0-9

Techniques of nonlinear optics with emphasis on fundamentals for research in optics, photonics, spectroscopy, and ultrafast science. Topics include: electro-optic modulators and devices, sum and difference frequency generation, and parametric conversion. Nonlinear propagation effects in optical fibers including self-phase modulation, pulse compression, solitons, communication, and femtosecond fiber lasers. Review of quantum mechanics, interaction of light with matter, laser gain and operation, density matrix techniques, perturbation theory, diagrammatic methods, nonlinear spectroscopies, ultrafast lasers and measurements. Discussion of research operations and funding and professional development topics. Introduces fundamental methods and techniques needed for independent research in advanced optics and photonics, but useful in many other engineering and physics disciplines.


6.63706.637
6.6370 Optical Imaging Devices, and Systems

()
Prereqs: 6.3000
Units: 3-0-9

Principles of operation and applications of optical imaging devices and systems (includes optical signal generation, transmission, detection, storage, processing and display). Topics include review of the basic properties of electromagnetic waves; coherence and interference; diffraction and holography; Fourier optics; coherent and incoherent imaging and signal processing systems; optical properties of materials; lasers and LEDs; electro-optic and acousto-optic light modulators; photorefractive and liquid-crystal light modulation; spatial light modulators and displays; near-eye and projection displays, holographic and other 3-D display schemes, photodetectors; 2-D and 3-D optical storage technologies; adaptive optical systems; role of optics in next-generation computers. Requires a research paper on a specific contemporary optical imaging topic. Recommended prerequisite: 8.03.


6.64006.728
6.6400 Applied Quantum and Statistical Physics

()
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.64106.445
6.6410 Quantum Computation

()
Prereqs: 8.05, 18.06, 18.700, 18.701, or 18.C06
Units: 3-0-9

Provides an introduction to the theory and practice of quantum computation. Topics covered: physics of information processing; quantum algorithms including the factoring algorithm and Grover's search algorithm; quantum error correction; quantum communication and cryptography. Knowledge of quantum mechanics helpful but not required.


6.64206.443
6.6420 Quantum Information Science

()
Prereqs: 18.435
Units: 3-0-9

Examines quantum computation and quantum information. Topics include quantum circuits, the quantum Fourier transform and search algorithms, the quantum operations formalism, quantum error correction, Calderbank-Shor-Steane and stabilizer codes, fault tolerant quantum computation, quantum data compression, quantum entanglement, capacity of quantum channels, and quantum cryptography and the proof of its security. Prior knowledge of quantum mechanics required.


6.64406.644
6.64506.645
6.65006.720
6.6500 Integrated Microelectronic Devices

()
Prereqs: 3.42 or 6.2500
Units: 4-0-8

Covers physics of microelectronic semiconductor devices for integrated circuit applications. Topics include semiconductor fundamentals, p-n junction, metal-oxide semiconductor structure, metal-semiconductor junction, MOS field-effect transistor, and bipolar junction transistor.  Emphasizes physical understanding of device operation through energy band diagrams and short-channel MOSFET device design and modern device scaling. Familiarity with MATLAB recommended.


6.65106.730
6.6510 Physics for Solid-State Applications

()
Prereqs: 6.2300 and 6.6400
Units: 5-0-7

Classical and quantum models of electrons and lattice vibrations in solids, emphasizing physical models for elastic properties, electronic transport, and heat capacity. Crystal lattices, electronic energy band structures, phonon dispersion relations, effective mass theorem, semiclassical equations of motion, electron scattering and semiconductor optical properties. Band structure and transport properties of selected semiconductors. Connection of quantum theory of solids with quasi-Fermi levels and Boltzmann transport used in device modeling.


6.65206.731
6.6520 Semiconductor Optoelectronics: Theory and Design

()
Prereqs: 6.2500 and 6.6400
Units: 3-0-9

Focuses on the physics of the interaction of photons with semiconductor materials. Uses the band theory of solids to calculate the absorption and gain of semiconductor media; and uses rate equation formalism to develop the concepts of laser threshold, population inversion, and modulation response. Presents theory and design for photodetectors, solar cells, modulators, amplifiers, and lasers. Introduces noise models for semiconductor devices, and applications of optoelectronic devices to fiber optic communications.


6.65306.732
6.6530 Physics of Solids

()
Prereqs: 6.6510 or 8.231
Units: 4-0-8

Continuation of 6.730 emphasizing applications-related physical issues in solids. Topics include: electronic structure and energy band diagrams of semiconductors, metals, and insulators; Fermi surfaces; dynamics of electrons under electric and magnetic fields; classical diffusive transport phenomena such as electrical and thermal conduction and thermoelectric phenomena; quantum transport in tunneling and ballistic devices; optical properties of metals, semiconductors, and insulators; impurities and excitons; photon-lattice interactions; Kramers-Kronig relations; optoelectronic devices based on interband and intersubband transitions; magnetic properties of solids; exchange energy and magnetic ordering; magneto-oscillatory phenomena; quantum Hall effect; superconducting phenomena and simple models.


6.65406.735
6.65506.736
6.66006.781
6.6600 Nanostructure Fabrication

()
Prereqs: 2.710, 6.2370, 6.2600, or permission of instructor
Units: 4-0-8

Describes current techniques used to analyze and fabricate nanometer-length-scale structures and devices. Emphasizes imaging and patterning of nanostructures, including fundamentals of optical, electron (scanning, transmission, and tunneling), and atomic-force microscopy; optical, electron, ion, and nanoimprint lithography, templated self-assembly, and resist technology. Surveys substrate characterization and preparation, facilities, and metrology requirements for nanolithography. Addresses nanodevice processing methods, such as liquid and plasma etching, lift-off, electroplating, and ion-implant. Discusses applications in nanoelectronics, nanomaterials, and nanophotonics.


6.66306.780
6.6630 Control of Manufacturing Processes

()
Prereqs: 2.008, 6.2600, or 6.3700
Units: 3-0-9

Statistical modeling and control in manufacturing processes. Use of experimental design and response surface modeling to understand manufacturing process physics. Defect and parametric yield modeling and optimization. Forms of process control, including statistical process control, run by run and adaptive control, and real-time feedback control. Application contexts include semiconductor manufacturing, conventional metal and polymer processing, and emerging micro-nano manufacturing processes.


6.70006.341
6.7000 Discrete-Time Signal Processing

()
Prereqs: 6.3010
Units: 4-0-8

Representation, analysis, and design of discrete time signals and systems. Decimation, interpolation, and sampling rate conversion. Noise shaping. Flowgraph structures for DT systems. IIR and FIR filter design techniques. Parametric signal modeling, linear prediction, and lattice filters. Discrete Fourier transform, DFT computation, and FFT algorithms. Spectral analysis, time-frequency analysis, relation to filter banks. Multirate signal processing, perfect reconstruction filter banks, and connection to wavelets.


6.70106.344
6.7010 Digital Image Processing

()
Prereqs: 6.3000 and 6.3700
Units: 3-0-9

Introduces models, theories, and algorithms key to digital image processing. Core topics covered include models of image formation, image processing fundamentals, filtering in the spatial and frequency domains, image transforms, and feature extraction. Additional topics include image enhancement, image restoration and reconstruction, compression of images and videos, visual recognition, and the application of machine learning-based approaches to image processing. Includes student-driven term project.

6.70206.456
6.7020 Array Processing

()
Prereqs: 6.7000 and (2.687 or (6.3010 and 18.06))
Units: 3-2-7

Adaptive and non-adaptive processing of signals received at arrays of sensors. Deterministic beamforming, space-time random processes, optimal and adaptive algorithms, and the sensitivity of algorithm performance to modeling errors and limited data. Methods of improving the robustness of algorithms to modeling errors and limited data are derived. Advanced topics include an introduction to matched field processing and physics-based methods of estimating signal statistics. Homework exercises providing the opportunity to implement and analyze the performance of algorithms in processing data supplied during the course.


6.70506.347
6.70606.348
6.71006.241
6.7100 Dynamic Systems and Control

()
Prereqs: 6.3000 and 18.06
Units: 4-0-8

Linear, discrete- and continuous-time, multi-input-output systems in control, related areas. Least squares and matrix perturbation problems. State-space models, modes, stability, controllability, observability, transfer function matrices, poles and zeros, and minimality. Internal stability of interconnected systems, feedback compensators, state feedback, optimal regulation, observers, and observer-based compensators. Measures of control performance, robustness issues using singular values of transfer functions. Introductory ideas on nonlinear systems. Recommended prerequisite: 6.3100.


6.7121
6.7121 Principles of Modeling, Computing and Control for Decarbonized Electric Energy Systems

()
Prereqs: 6.2200, (6.2000 and 6.3100), or permission of instructor
Units: 4-0-8

Introduces fundamentals of electric energy systems as complex dynamical network systems. Topics include coordinated and distributed modeling and control methods for efficient and reliable power generation, delivery, and consumption; data-enabled algorithms for integrating clean intermittent resources, storage, and flexible demand, including electric vehicles; examples of network congestion management, frequency, and voltage control in electrical grids at various scales; and design and operation of supporting markets. Students taking graduate version complete additional assignments.


6.72006.255
6.7200 Optimization Methods

()
Prereqs: 18.06
Units: 4-0-8

Introduces the principal algorithms for linear, network, discrete, robust, nonlinear, and dynamic optimization. Emphasizes methodology and the underlying mathematical structures. Topics include the simplex method, network flow methods, branch and bound and cutting plane methods for discrete optimization, optimality conditions for nonlinear optimization, interior point methods for convex optimization, Newton's method, heuristic methods, and dynamic programming and optimal control methods. Expectations and evaluation criteria differ for students taking graduate version; consult syllabus or instructor for specific details.


6.72106.251
6.7210 Introduction to Mathematical Programming

()
Prereqs: 18.06
Units: 4-0-8

Introduction to linear optimization and its extensions emphasizing both methodology and the underlying mathematical structures and geometrical ideas. Covers classical theory of linear programming as well as some recent advances in the field. Topics: simplex method; duality theory; sensitivity analysis; network flow problems; decomposition; robust optimization; integer programming; interior point algorithms for linear programming; and introduction to combinatorial optimization and NP-completeness.


6.72206.252
6.7220 Nonlinear Optimization

()
Prereqs: 18.06 and (18.100A, 18.100B, or 18.100Q)
Units: 4-0-8

Unified analytical and computational approach to nonlinear optimization problems. Unconstrained optimization methods include gradient, conjugate direction, Newton, sub-gradient and first-order methods. Constrained optimization methods include feasible directions, projection, interior point methods, and Lagrange multiplier methods. Convex analysis, Lagrangian relaxation, nondifferentiable optimization, and applications in integer programming. Comprehensive treatment of optimality conditions and Lagrange multipliers. Geometric approach to duality theory. Applications drawn from control, communications, machine learning, and resource allocation problems.


6.72306.256
6.7230 Algebraic Techniques and Semidefinite Optimization

()
Prereqs: 6.7210 or 15.093
Units: 3-0-9

Theory and computational techniques for optimization problems involving polynomial equations and inequalities with particular, emphasis on the connections with semidefinite optimization. Develops algebraic and numerical approaches of general applicability, with a view towards methods that simultaneously incorporate both elements, stressing convexity-based ideas, complexity results, and efficient implementations. Examples from several engineering areas, in particular systems and control applications. Topics include semidefinite programming, resultants/discriminants, hyperbolic polynomials, Groebner bases, quantifier elimination, and sum of squares.


6.72406.254
6.7240 Game Theory with Engineering Applications

()
Prereqs: 6.3702
Units: 4-0-8

Introduction to fundamentals of game theory and mechanism design with motivations for each topic drawn from engineering applications (including distributed control of wireline/wireless communication networks, transportation networks, pricing). Emphasis on the foundations of the theory, mathematical tools, as well as modeling and the equilibrium notion in different environments. Topics include normal form games, supermodular games, dynamic games, repeated games, games with incomplete/imperfect information, mechanism design, cooperative game theory, and network games.


6.72606.268
6.7260 Network Science and Models

()
Prereqs: 6.3702 and 18.06
Units: 3-0-9

Introduces the main mathematical models used to describe large networks and dynamical processes that evolve on networks. Static models of random graphs, preferential attachment, and other graph evolution models. Epidemic propagation, opinion dynamics, social learning, and inference in networks. Applications drawn from social, economic, natural, and infrastructure networks, as well as networked decision systems such as sensor networks.


6.73006.336
6.7300 Introduction to Modeling and Simulation

()
Prereqs: 18.03 or 18.06
Units: 3-6-3

Introduction to computational techniques for modeling and simulation of a variety of large and complex engineering, science, and socio-economical systems. Prepares students for practical use and development of computational engineering in their own research and future work. Topics include mathematical formulations (e.g., automatic assembly of constitutive and conservation principles); linear system solvers (sparse and iterative); nonlinear solvers (Newton and homotopy); ordinary, time-periodic and partial differential equation solvers; and model order reduction. Students develop their own models and simulators for self-proposed applications, with an emphasis on creativity, teamwork, and communication. Prior basic linear algebra required and at least one numerical programming language (e.g., MATLAB, Julia, Python, etc.) helpful.


6.73106.337
6.7310 Introduction to Numerical Methods

()
Prereqs: 18.06, 18.700, or 18.701
Units: 3-0-9

Advanced introduction to numerical analysis: accuracy and efficiency of numerical algorithms. In-depth coverage of sparse-matrix/iterative and dense-matrix algorithms in numerical linear algebra (for linear systems and eigenproblems). Floating-point arithmetic, backwards error analysis, conditioning, and stability. Other computational topics (e.g., numerical integration or nonlinear optimization) may also be surveyed. Final project involves some programming.


6.73206.338
6.7320 Parallel Computing and Scientific Machine Learning

()
Prereqs: 18.06, 18.700, or 18.701
Units: 3-0-9

Introduction to scientific machine learning with an emphasis on developing scalable differentiable programs. Covers scientific computing topics (numerical differential equations, dense and sparse linear algebra, Fourier transformations, parallelization of large-scale scientific simulation) simultaneously with modern data science (machine learning, deep neural networks, automatic differentiation), focusing on the emerging techniques at the connection between these areas, such as neural differential equations and physics-informed deep learning. Provides direct experience with the modern realities of optimizing code performance for supercomputers, GPUs, and multicores in a high-level language.


6.73306.339
6.7330 Numerical Methods for Partial Differential Equations

()
Prereqs: 18.03 or 18.06
Units: 3-0-9

Covers the fundamentals of modern numerical techniques for a wide range of linear and nonlinear elliptic, parabolic, and hyperbolic partial differential and integral equations. Topics include mathematical formulations; finite difference, finite volume, finite element, and boundary element discretization methods; and direct and iterative solution techniques. The methodologies described form the foundation for computational approaches to engineering systems involving heat transfer, solid mechanics, fluid dynamics, and electromagnetics. Computer assignments requiring programming.


6.73406.335
6.7340 Fast Methods for Partial Differential and Integral Equations

(,)
Prereqs: 6.7300, 16.920, 18.085, 18.335, or permission of instructor
Units: 3-0-9

Unified introduction to the theory and practice of modern, near linear-time, numerical methods for large-scale partial-differential and integral equations. Topics include preconditioned iterative methods; generalized Fast Fourier Transform and other butterfly-based methods; multiresolution approaches, such as multigrid algorithms and hierarchical low-rank matrix decompositions; and low and high frequency Fast Multipole Methods. Example applications include aircraft design, cardiovascular system modeling, electronic structure computation, and tomographic imaging.


6.73806.248
6.74106.450
6.7410 Principles of Digital Communication

()
Prereqs: (6.3000 or 6.3102) and (6.3700, 6.3800, or 18.05)
Units: 3-0-9

Covers communications by progressing through signal representation, sampling, quantization, compression, modulation, coding and decoding, medium access control, and queueing and principles of protocols. By providing simplified proofs, seeks to present an integrated, systems-level view of networking and communications while laying the foundations of analysis and design. Lectures are offered online; in-class time is dedicated to recitations, exercises, and weekly group labs. Homework exercises are based on theoretical derivation and software implementation. Students taking graduate version complete additional assignments.


6.74206.267
6.7420 Heterogeneous Networks: Architecture, Transport, Proctocols, and Management

()
Prereqs: 6.1200 or 6.3700
Units: 4-0-8

Introduction to modern heterogeneous networks and the provision of heterogeneous services. Architectural principles, analysis, algorithmic techniques, performance analysis, and existing designs are developed and applied to understand current problems in network design and architecture. Begins with basic principles of networking. Emphasizes development of mathematical and algorithmic tools; applies them to understanding network layer design from the performance and scalability viewpoint. Concludes with network management and control, including the architecture and performance analysis of interconnected heterogeneous networks. Provides background and insight to understand current network literature and to perform research on networks with the aid of network design projects.


6.74306.442
6.7430 Optical Networks

()
Prereqs: 6.1200 or 6.3700
Units: 3-0-9

Introduces the fundamental and practical aspects of optical network technology, architecture, design and analysis tools and techniques. The treatment of optical networks are from the architecture and system design points of view. Optical hardware technologies are introduced and characterized as fundamental network building blocks on which optical transmission systems and network architectures are based. Beyond the Physical Layer, the higher network layers (Media Access Control, Network and Transport Layers) are treated together as integral parts of network design. Performance metrics, analysis and optimization techniques are developed to help guide the creation of high performance complex optical networks.


6.74406.452
6.7440 Principles of Wireless Communication

()
Prereqs: 6.7410
Units: 3-0-9

Introduction to design, analysis, and fundamental limits of wireless transmission systems. Wireless channel and system models; fading and diversity; resource management and power control; multiple-antenna and MIMO systems; space-time codes and decoding algorithms; multiple-access techniques and multiuser detection; broadcast codes and precoding; cellular and ad-hoc network topologies; OFDM and ultrawideband systems; architectural issues.


6.74506.263
6.7450 Data-Communication Networks

()
Prereqs: 6.3700 or 18.204
Units: 3-0-9

Provides an introduction to data networks with an analytic perspective, using wireless networks, satellite networks, optical networks, the internet and data centers as primary applications. Presents basic tools for modeling and performance analysis. Draws upon concepts from stochastic processes, queuing theory, and optimization.


6.74606.440
6.7460 Essential Coding Theory

()
Prereqs: 6.1210 and 6.1400
Units: 3-0-9

Introduces the theory of error-correcting codes. Focuses on the essential results in the area, taught from first principles. Special focus on results of asymptotic or algorithmic significance. Principal topics include construction and existence results for error-correcting codes; limitations on the combinatorial performance of error-correcting codes; decoding algorithms; and applications to other areas of mathematics and computer science.


6.74706.441
6.7470 Information Theory

()
Prereqs: 6.3700
Units: 3-0-9

Mathematical definitions of information measures, convexity, continuity, and variational properties. Lossless source coding; variable-length and block compression; Slepian-Wolf theorem; ergodic sources and Shannon-McMillan theorem. Hypothesis testing, large deviations and I-projection. Fundamental limits of block coding for noisy channels: capacity, dispersion, finite blocklength bounds. Coding with feedback. Joint source-channel problem. Rate-distortion theory, vector quantizers. Advanced topics include Gelfand-Pinsker problem, multiple access channels, broadcast channels (depending on available time).


6.74806.260
6.74906.261
6.77006.436
6.7700 Fundamentals of Probability

()
Prereqs: GIR:CAL2
Units: 4-0-8

Introduction to probability theory. Probability spaces and measures. Discrete and continuous random variables. Conditioning and independence. Multivariate normal distribution. Abstract integration, expectation, and related convergence results. Moment generating and characteristic functions. Bernoulli and Poisson process. Finite-state Markov chains. Convergence notions and their relations. Limit theorems. Familiarity with elementary probability and real analysis is desirable.


6.77106.262
6.7710 Discrete Stochastic Processes

()
Prereqs: 6.3702 or 18.204
Units: 4-0-8

Review of probability and laws of large numbers; Poisson counting process and renewal processes; Markov chains (including Markov decision theory), branching processes, birth-death processes, and semi-Markov processes; continuous-time Markov chains and reversibility; random walks, martingales, and large deviations; applications from queueing, communication, control, and operations research.


6.77206.265
6.7720 Discrete Probability and Stochastic Processes

()
Prereqs: 6.3702, 6.7700, 18.100A, 18.100B, or 18.100Q
Units: 3-0-9

Provides an introduction to tools used for probabilistic reasoning in the context of discrete systems and processes. Tools such as the probabilistic method, first and second moment method, martingales, concentration and correlation inequalities, theory of random graphs, weak convergence, random walks and Brownian motion, branching processes, Markov chains, Markov random fields, correlation decay method, isoperimetry, coupling, influences and other basic tools of modern research in probability will be presented. Algorithmic aspects and connections to statistics and machine learning will be emphasized.


6.78006.437
6.7800 Inference and Information

()
Prereqs: 6.3700, 6.3800, or 6.7700
Units: 4-0-8

Introduction to principles of Bayesian and non-Bayesian statistical inference. Hypothesis testing and parameter estimation, sufficient statistics; exponential families. EM agorithm. Log-loss inference criterion, entropy and model capacity. Kullback-Leibler distance and information geometry. Asymptotic analysis and large deviations theory. Model order estimation; nonparametric statistics. Computational issues and approximation techniques; Monte Carlo methods. Selected topics such as universal inference and learning, and universal features and neural networks.


6.78106.438
6.7810 Algorithms for Inference

()
Prereqs: 18.06 and (6.3700, 6.3800, or 6.7700)
Units: 4-0-8

Introduction to statistical inference with probabilistic graphical models. Directed and undirected graphical models, and factor graphs, over discrete and Gaussian distributions; hidden Markov models, linear dynamical systems. Sum-product and junction tree algorithms; forward-backward algorithm, Kalman filtering and smoothing. Min-sum and Viterbi algorithms. Variational methods, mean-field theory, and loopy belief propagation. Particle methods and filtering. Building graphical models from data, including parameter estimation and structure learning; Baum-Welch and Chow-Liu algorithms. Selected special topics.


6.78306.435
6.7830 Bayesian Modeling and Inference

()
Prereqs: 6.7700 and 6.7900
Units: 3-0-9

Covers 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.79006.867
6.7900 Machine Learning

()
Prereqs: 18.06 and (6.3700, 6.3800, or 18.600)
Units: 3-0-9

Principles, techniques, and algorithms in machine learning from the point of view of statistical inference; representation, generalization, and model selection; and methods such as linear/additive models, active learning, boosting, support vector machines, non-parametric Bayesian methods, hidden Markov models, Bayesian networks, and convolutional and recurrent neural networks. Recommended prerequisite: 6.3900 or other previous experience in machine learning. Enrollment may be limited.


6.79106.860
6.7910 Statistical Learning Theory and Applications

()
Prereqs: 6.3700, 6.7900, 18.06, or permission of instructor
Units: 3-0-9

Covers foundations and recent advances in statistical machine learning theory, with the dual goals of providing students with the theoretical knowledge to use machine learning and preparing more advanced students to contribute to progress in the field. The content is roughly divided into three parts. The first part is about classical regularization, margin, stochastic gradient methods, overparametrization, implicit regularization, and stability. The second part is about deep networks: approximation and optimization theory plus roots of generalization. The third part is about the connections between learning theory and the brain. Occasional talks by leading researchers on advanced research topics. Emphasis on current research topics.


6.7920
6.7920 Reinforcement Learning: Foundations and Methods

()
Prereqs: 6.3700 or permission of instructor
Units: 4-0-8

Examines reinforcement learning (RL) as a methodology for approximately solving sequential decision-making under uncertainty, with foundations in optimal control and machine learning. Provides a mathematical introduction to RL, including dynamic programming, statistical, and empirical perspectives, and special topics. Core topics include: dynamic programming, special structures, finite and infinite horizon Markov Decision Processes, value and policy iteration, Monte Carlo methods, temporal differences, Q-learning, stochastic approximation, and bandits. Also covers approximate dynamic programming, including value-based methods and policy space methods. Applications and examples drawn from diverse domains. Focus is mathematical, but is supplemented with computational exercises. An analysis prerequisite is suggested but not required; mathematical maturity is necessary.


6.79306.871
6.7930 Machine Learning for Healthcare

()
Prereqs: 6.3900, 6.4100, 6.7810, 6.7900, 6.8611, or 9.520
Units: 4-0-8

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.79406.231
6.7940 Dynamic Programming and Reinforcement Learning

()
Prereqs: 6.3700 or 18.600
Units: 4-0-8

Dynamic programming as a unifying framework for sequential decision-making under uncertainty, Markov decision problems, and stochastic control. Perfect and imperfect state information models. Finite horizon and infinite horizon problems, including discounted and average cost formulations. Value and policy iteration. Suboptimal methods. Approximate dynamic programming for large-scale problems, and reinforcement learning. Applications and examples drawn from diverse domains. While an analysis prerequisite is not required, mathematical maturity is necessary.


6.79506.246
6.7950 Advanced Topics in Control

()
Prereqs: Permission of instructor
Units: 3-0-9

Advanced study of topics in control. Specific focus varies from year to year.


6.81106.834
6.8110 Cognitive Robotics

()
Prereqs: (6.4100 or 16.413) and (6.1200, 6.3700, or 16.09)
Units: 3-0-9

Highlights algorithms and paradigms for creating human-robot systems that act intelligently and robustly, by reasoning from models of themselves, their counterparts and their world. Examples include space and undersea explorers, cooperative vehicles, manufacturing robot teams and everyday embedded devices. Themes include architectures for goal-directed systems; decision-theoretic programming and robust execution; state-space programming, activity and path planning; risk-bounded programming and risk-bounded planners; self-monitoring and self-diagnosing systems, and human-robot collaboration. Student teams explore recent advances in cognitive robots through delivery of advanced lectures and final projects, in support of a class-wide grand challenge. Enrollment may be limited.


6.81606.881
6.81706.882
6.81806.883
6.81906.884
6.82006.484
6.8200 Sensorimotor Learning

()
Prereqs: 6.3900 or 6.7900
Units: 3-0-9

Provides an in-depth view of the state-of-the-art learning methods for control and the know-how of applying these techniques. Topics span reinforcement learning, self-supervised learning, imitation learning, model-based learning, and advanced deep learning architectures, and specific machine learning challenges unique to building sensorimotor systems. Discusses how to identify if learning-based control can help solve a particular problem, how to formulate the problem in the learning framework, and what algorithm to use. Applications of algorithms in robotics, logistics, recommendation systems, playing games, and other control domains covered. Instruction involves two lectures a week, practical experience through exercises, discussion of current research directions, and a group project.

6.82106.832
6.8210 Underactuated Robotics

()
Prereqs: 18.03 and 18.06
Units: 3-0-9

Covers nonlinear dynamics and control of underactuated mechanical systems, with an emphasis on computational methods. Topics include the nonlinear dynamics of robotic manipulators, applied optimal and robust control and motion planning. Discussions include examples from biology and applications to legged locomotion, compliant manipulation, underwater robots, and flying machines.


6.83006.869
6.8300 Advances in Computer Vision

()
Prereqs: (6.1200 or 6.3700) and (18.06 or 18.C06)
Units: 3-0-9

Advanced topics in computer vision with a focus on the use of machine learning techniques and applications in graphics and human-computer interface. Covers image representations, texture models, structure-from-motion algorithms, Bayesian techniques, object and scene recognition, tracking, shape modeling, and image databases. Applications may include face recognition, multimodal interaction, interactive systems, cinematic special effects, and photorealistic rendering. Covers topics complementary to 6.8390. Students taking graduate version complete additional assignments.


6.83206.870
6.8320 Advanced Topics in Computer Vision

()
Prereqs: 6.801, 6.8300, or permission of instructor
Units: 3-0-9

Seminar exploring advanced research topics in the field of computer vision; focus varies with lecturer. Typically structured around discussion of assigned research papers and presentations by students. Example research areas explored in this seminar include learning in vision, computational imaging techniques, multimodal human-computer interaction, biomedical imaging, representation and estimation methods used in modern computer vision.


6.83706.865
6.8370 Advanced Computational Photography

()
Prereqs: GIR:CAL2 and 6.1020
Units: 3-0-9

Presents fundamentals and applications of hardware and software techniques used in digital and computational photography, with an emphasis on software methods. Provides sufficient background to implement solutions to photographic challenges and opportunities. Topics include cameras and image formation, image processing and image representations, high-dynamic-range imaging, human visual perception and color, single view 3-D model reconstruction, morphing, data-rich photography, super-resolution, and image-based rendering. Students taking graduate version complete additional assignments.


6.84106.838
6.8410 Shape Analysis

()
Prereqs: GIR:CAL2, 18.06, and (6.8300 or 6.4400)
Units: 3-0-9

Introduces mathematical, algorithmic, and statistical tools needed to analyze geometric data and to apply geometric techniques to data analysis, with applications to fields such as computer graphics, machine learning, computer vision, medical imaging, and architecture. Potential topics include applied introduction to differential geometry, discrete notions of curvature, metric embedding, geometric PDE via the finite element method (FEM) and discrete exterior calculus (DEC),; computational spectral geometry and relationship to graph-based learning, correspondence and mapping, level set method, descriptor, shape collections, optimal transport, and vector field design.


6.84206.839
6.8420 Computational Design and Fabrication

()
Prereqs: GIR:CAL2 and (6.1010 or permission of instructor)
Units: 3-0-9

Introduces computational aspects of computer-aided design and manufacturing. Explores relevant methods in the context of additive manufacturing (e.g., 3D printing). Topics include computer graphics (geometry modeling, solid modeling, procedural modeling), physically-based simulation (kinematics, finite element method), 3D scanning/geometry processing, and an overview of 3D fabrication methods. Exposes students to the latest research in computational fabrication. Students taking graduate version complete additional assignments.


6.84806.896
6.85106.835
6.8510 Intelligent Multimodal User Interfaces

()
Prereqs: (6.1020 and 6.4100) or permission of instructor
Units: 3-0-9

Implementation and evaluation of intelligent multi-modal user interfaces, taught from a combination of hands-on exercises and papers from the original literature. Topics include basic technologies for handling speech, vision, pen-based interaction, and other modalities, as well as various techniques for combining modalities. Substantial readings and a term project, where students build a program that illustrates one or more of the themes of the course.


6.85306.859
6.8530 Interactive Data Visualization

()
Prereqs: 6.1020
Units: 3-0-9

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.85806.894
6.85906.895
6.86106.864
6.8610 Quantitative Methods for Natural Language Processing

()
Prereqs: 6.3900 and (18.06 or 18.C06)
Units: 3-0-9

Introduces the study of human language from a computational perspective, including syntactic, semantic and discourse processing models. Emphasizes machine learning methods and algorithms. Uses these methods and models in applications such as syntactic parsing, information extraction, statistical machine translation, dialogue systems. Students taking graduate version complete additional assignments.


6.86206.345
6.8620 Spoken Language Processing

()
Prereqs: 6.3000 and 6.3900
Units: 3-1-8

Introduces the rapidly developing field of spoken language processing including automatic speech recognition. Topics include acoustic theory of speech production, acoustic-phonetics, signal representation, acoustic and language modeling, search, hidden Markov modeling, neural networks models, end-to-end deep learning models, and other machine learning techniques applied to speech and language processing topics. Lecture material intersperses theory with practice. Includes problem sets, laboratory exercises, and open-ended term project.


6.86306.863
6.8630 Natural Language and the Computer Representation of Knowledge

()
Prereqs: 6.4100
Units: 3-3-6

Explores the relationship between the computer representation and acquisition of knowledge and the structure of human language, its acquisition, and hypotheses about its differentiating uniqueness. Emphasizes development of analytical skills necessary to judge the computational implications of grammatical formalisms and their role in connecting human intelligence to computational intelligence. Uses concrete examples to illustrate particular computational issues in this area.


6.87006.878
6.8700 Advanced Computational Biology: Genomes, Networks, Evolution

()
Prereqs: (GIR:BIOL, 6.1210, and 6.3700) or permission of instructor
Units: 4-0-8

See description for 6.047. Additionally examines recent publications in the areas covered, with research-style assignments. A more substantial final project is expected, which can lead to a thesis and publication.


6.87106.874
6.8710 Computational Systems Biology: Deep Learning in the Life Sciences

()
Prereqs: GIR:BIOL and (6.3700 or 18.600)
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.88006.555
6.8800 Biomedical Signal and Image Processing

()
Prereqs: (6.3700 and (2.004, 6.3000, 16.002, or 18.085)) or permission of instructor
Units: 3-1-8

Fundamentals of digital signal processing with emphasis on problems in biomedical research and clinical medicine. Basic principles and algorithms for processing both deterministic and random signals. Topics include data acquisition, imaging, filtering, coding, feature extraction, and modeling. Lab projects, performed in MATLAB, provide practical experience in processing physiological data, with examples from cardiology, speech processing, and medical imaging. Lectures cover signal processing topics relevant to the lab exercises, as well as background on the biological signals processed in the labs. Students taking graduate version complete additional assignments.


6.88106.556
6.8810 Data Acquisition and Image Reconstruction in MRI

()
Prereqs: 6.3010
Units: 3-0-9

Applies analysis of signals and noise in linear systems, sampling, and Fourier properties to magnetic resonance (MR) imaging acquisition and reconstruction. Provides adequate foundation for MR physics to enable study of RF excitation design, efficient Fourier sampling, parallel encoding, reconstruction of non-uniformly sampled data, and the impact of hardware imperfections on reconstruction performance. Surveys active areas of MR research. Assignments include Matlab-based work with real data. Includes visit to a scan site for human MR studies.


6.88306.552
6.8830 Signal Processing by the Auditory System: Perception

()
Prereqs: (6.3000 and (6.3700 or 6.3702)) or permission of instructor
Units: 3-0-9

Studies information processing performance of the human auditory system in relation to current physiological knowledge. Examines mathematical models for the quantification of auditory-based behavior and the relation between behavior and peripheral physiology, reflecting the tono-topic organization and stochastic responses of the auditory system. Mathematical models of psychophysical relations, incorporating quantitative knowledge of physiological transformations by the peripheral auditory system.


6.88806.544
6.88906.545
6.93506.935
6.9350 Financial Market Dynamics and Human Behavior

()
Prereqs: 15.401, 15.414, or 15.415
Units: 4-0-5

Drawing on the latest research in psychology, evolutionary biology, neuroscience, and artificial intelligence, as well as in behavioral and mainstream financial economics, provides new perspectives and insights into the role that human behavior plays in the business environment and the dynamics of financial markets and institutions. Incorporates practical applications from several industries including finance, insurance, biotechnology, pharmaceuticals, and government policy. Students apply ideas from this perspective to formulate original hypotheses regarding new career opportunities and disruptive technologies in their industry of choice. Enrollment may be limited; preference to Sloan graduate students.


6.C51
6.C51 Modeling with Machine Learning: from Algorithms to Applications

()
Prereqs/[Coreqs]: GIR:CAL2 and 6.100A; [1.C51, 2.C51, 3.C51, 7.C51, 22.C51, or SCM.C51]
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. Students cannot receive credit without simultaneous completion of a 6-unit disciplinary module. Enrollment may be limited.

&1.C51
1.C51 Machine Learning for Sustainable Systems

()
Prereqs/[Coreqs]: (6.3700 and 18.06) or permission of instructor; [6.C51]
Units: 1-1-4

Building on core material in 6.C51, emphasizes the design and operation of sustainable systems. Students learn to leverage heterogeneous data from urban services, cities, and the environment, and apply machine learning methods to evaluate and/or improve sustainability solutions. Provides case studies from various domains, such as transportation and mobility, energy and water resources, environment monitoring, infrastructure sensing and control, climate adaptation, and disaster resilience. Projects focus on using machine learning to identify new insights or decisions to help engineer sustainability in societal-scale systems. Students taking graduate version complete additional assignments. Students cannot receive credit without simultaneous completion of the core subject 6.C51.


6.C51
6.C51 Modeling with Machine Learning: from Algorithms to Applications

()
Prereqs/[Coreqs]: GIR:CAL2 and 6.100A; [1.C51, 2.C51, 3.C51, 7.C51, 22.C51, or SCM.C51]
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. Students cannot receive credit without simultaneous completion of a 6-unit disciplinary module. Enrollment may be limited.

&2.C51
2.C51 Physical Systems Modeling and Design Using Machine Learning

()
Prereqs/[Coreqs]: 18.0751 or 18.0851; [6.C51]
Units: 1-3-2

Building on core material in 6.C51, encourages open-ended exploration of the increasingly topical intersection between artificial intelligence and the physical sciences. Uses energy and information, and their respective optimality conditions, to define supervised and unsupervised learning algorithms as well as ordinary and partial differential equations. Subsequently, physical systems with complex constitutive relationships are drawn from elasticity, biophysics, fluid mechanics, hydrodynamics, acoustics, and electromagnetics to illustrate how machine learning-inspired optimization can approximate solutions to forward and inverse problems in these domains. Students taking graduate version complete additional assignments. Students cannot receive credit without simultaneous completion of 6.C51.


6.C51
6.C51 Modeling with Machine Learning: from Algorithms to Applications

()
Prereqs/[Coreqs]: GIR:CAL2 and 6.100A; [1.C51, 2.C51, 3.C51, 7.C51, 22.C51, or SCM.C51]
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. Students cannot receive credit without simultaneous completion of a 6-unit disciplinary module. Enrollment may be limited.

&22.C51

6.C51
6.C51 Modeling with Machine Learning: from Algorithms to Applications

()
Prereqs/[Coreqs]: GIR:CAL2 and 6.100A; [1.C51, 2.C51, 3.C51, 7.C51, 22.C51, or SCM.C51]
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. Students cannot receive credit without simultaneous completion of a 6-unit disciplinary module. Enrollment may be limited.

&3.C51

6.C51
6.C51 Modeling with Machine Learning: from Algorithms to Applications

()
Prereqs/[Coreqs]: GIR:CAL2 and 6.100A; [1.C51, 2.C51, 3.C51, 7.C51, 22.C51, or SCM.C51]
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. Students cannot receive credit without simultaneous completion of a 6-unit disciplinary module. Enrollment may be limited.

&6.S952
6.S952 Modeling with Machine Learning for Computer Science

()
Prereqs: 6.S084/18.061 or 18.06 or equivalent; 6.1200 or 6.3700, 6.100A or equivalent; Co-req 6.C51
Units: 3-0-3

[Meets with 6.S052] Focuses on in-depth modeling of engineering tasks as machine learning problems. Emphasizes framing, method design, and interpretation of results. In comparison to broader co-requisite 6.C01/6.C51, this project oriented subject consists of deep dives into select technical areas or engineering tasks involving both supervised and exploratory uses of machine learning. Deep dives into technical areas such robustness, interpretability, privacy or causal discovery; engineering tasks such as recommender systems, performance optimization, or automated design. This 6-unit subject must be taken together with the 6-unit core subject 6.C01. Enrollment may be limited.


6.C51
6.C51 Modeling with Machine Learning: from Algorithms to Applications

()
Prereqs/[Coreqs]: GIR:CAL2 and 6.100A; [1.C51, 2.C51, 3.C51, 7.C51, 22.C51, or SCM.C51]
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. Students cannot receive credit without simultaneous completion of a 6-unit disciplinary module. Enrollment may be limited.

&SCM.C51

6.C67
6.C67 Computational Imaging: Physics and Algorithms

()
Prereqs: 18.C06 and (1.00, 1.000, 2.086, 3.019, or 6.100A)
Units: 3-0-9

Contemporary understanding of imaging is computational: encoding onto a form of radiation the information about a physical object, transferring the radiation through the imaging system, converting it to a digital signal, and computationally decoding and presenting the information to the user. This class introduces a unified formulation of computational imaging systems as a three-round "learning spiral": the first two rounds, instructors describe the physical and algorithmic parts in two exemplary imaging systems. The third round, students conduct themselves as the class project on an imaging system of their choice. The undergraduate and graduate versions share lectures but have different recitations. Throughout the term, we also conduct optional "clinics" to even out background knowledge of linear algebra, optimization, and computational imaging-related programming best practices for students of diverse disciplinary backgrounds.


6.C85
6.C85 Interactive Data Visualization and Society

()
Prereqs: none
Units: 3-1-8

Covers the design, ethical, and technical skills for creating effective visualizations. Short assignments build familiarity with the data analysis and visualization design process. Students participate in hour-long studio reading sessions. A final project provides experience working with real-world big data, provided by external partners, in order to expose and communicate insights about societal issues. Students taking graduate version complete additional assignments.


6.S893
6.S893 Multi-agent Communication

()
Prereqs: 6.8610 or permission of instructors
Units: 2-0-10

Seminar on problems at the intersection of language processing and multi-agent systems. Topics to be covered include computational models of pragmatic reasoning, language evolution, and "self-play" training for language models.


6.S895
6.S895 Quantum Cryptography

()
Prereqs: 6.6410 or 6.6420 and 6.5620 or permission of instructors
Units: 3-0-9

An introduction to the many ways quantum computing and cryptography intersect. Topics will include uniquely quantum cryptographic primitives such as quantum key distribution and quantum money, post-quantum cryptography (classical cryptography that is secure against quantum attackers), and the use of cryptography in verifying quantum devices, as well as speculative connections to fundamental physics. Some familiarity with both quantum computing and cryptography is assumed.


6.S953
6.S953 Embodied Intelligence

()
Prereqs: (6.3900 or 6.7900) and (6.1210 or 6.1220)
Units: 3-0-9

Our goal is to address the broad problem of designing a general-purpose intelligent robot. To address this question, a very broad background is required. We propose to spend the first 4 weeks covering important background topics: each week will combine a foundational tutorial reading with one or two state-of-the-art research results. In the subsequent weeks, we will address topics that cut across the basic disciplinary boundaries, typically combining two or more areas, with the work focused on studying and discussing current research in the relevant area.


6.S966
6.S966 Symmetry and its Application to Machine Learning and Scientific Computing

()
Prereqs: 18.06 or 18.061, 6.100A, 6.1210
Units: 3-0-9

Introduces the use of group representation theory to construct symmetry-preserving algorithms for machine learning. Emphases the connection between topics in math and physics and machine learning. Students will implement core mathematical concepts in code to build algorithms that can operate on graphs, geometry, scientific data, and other structured data to preserve the symmetries of these domains. Topics covered include: Euclidean and permutation groups, group representations: regular, reducible, and irreducible, tensor products, statistics and sampling of group representation vector spaces, and symmetry-breaking mechanisms.


6.S976
6.S976 Silicon Photonics

()
Prereqs: 6.2300 or 8.07
Units: 3-0-9

[Meets with 6.S046] Covers the foundational concepts behind silicon photonics based in electromagnetics, optics, and device physics; the design of silicon-photonics-based devices (including waveguides, couplers, splitters, resonators, antennas, modulators, detectors, and lasers) using both theoretical analysis and numerical simulation tools; the engineering of silicon-photonics-based circuits and systems with a focus on a variety of applications areas (spanning computing, communications, sensing, quantum, displays, and biophotonics); the development of silicon-photonics-based platforms, including fabrication and materials considerations; and the characterization of these silicon-photonics-based devices and systems through hands-on laboratory demonstrations and projects. Students taking graduate version complete additional assignments.


6.S977
6.S977 Ethical Machine Learning In Human Deployments

()
Prereqs: 6.7900
Units: 3-0-9

This course focuses on the human-facing considerations in the pipeline of machine learning (ML) development in human-facing settings like healthcare, employment, and education. Students will learn about the issues involved in ethical machine learning, including framing ethics of ML in healthcare through the lens of social justice. Students will read papers related to ongoing efforts and challenges in ethical ML, ranging from problem selection to post-deployment considerations. Guest lectures will be given by experts in data access, ethics, fairness, privacy and deployments, and the course will focus around a central project that students will use to explore how machine learning can potentially be brought into human-facing deployments ethically.


6.S984
6.S984 Datacenter Computing

()
Prereqs: 6.1910 or equivalent and 6.1800 or equivalent
Units: 3-0-9

Warehouse-scale datacenters host a wide range of online services, including social networks, web search, video streaming, machine learning, and serverless workloads. In this course, we will study the end-to-end stack of modern datacenters, from hardware and OS all the way to resource managers and programming frameworks. We will also explore cross-cutting issues, such as total cost of ownership, service level objectives, availability, and reliability. The course is a combination of lectures and paper readings. Students will read up to two papers per topic and submit brief summaries. During class meetings, we will start with a student presentation of the papers followed by an in-class discussion. The main deliverable for the course is a semester-long group project which should address an open research problem in modern cloud environments (project suggestions will be provided by the instructor, but students are also welcome to propose their own). The class is appropriate for graduate and advanced undergraduate students who want to learn more about cloud computing and datacenter systems.


6.S986
6.S986 Large Language Models and Beyond

()
Prereqs: 6.8610/6.8611, 6.3900, 6.7900
Units: 2-0-10

The field of natural language processing has recently made remarkable progress through large language models trained at scale on broad data. This seminar will explore various issues and questions surrounding these systems, including: applications (in NLP and other domains), emergent capabilities, efficient training & deployment, philosophical and ethical implications, and more.


6.S988
6.S988 Mathematical Statistics: A Non-Asymptotic Approach

()
Prereqs: 6.7700 and 18.06 and 18.6501, or permission on instructor
Units: 3-0-9

[Meets with IDS.160, 9.521, 18.656] Introduces students to modern non-asymptotic statistical analysis. Topics include high-dimensional models, nonparametric regression, covariance estimation, principal component analysis, oracle inequalities, prediction and margin analysis for classification. Develops a rigorous probabilistic toolkit, including tail bounds and a basic theory of empirical processes.


8.370
8.370 Quantum Computation

()
Prereqs: 8.05, 18.06, 18.700, 18.701, or 18.C06
Units: 3-0-9

Provides an introduction to the theory and practice of quantum computation. Topics covered: physics of information processing; quantum algorithms including the factoring algorithm and Grover's search algorithm; quantum error correction; quantum communication and cryptography. Knowledge of quantum mechanics helpful but not required.


9.660

BIO_AAGS: Approved advanced graduate subjects in biology. (Comp Bio AAGS)
1.881
1.881 Genomics and Evolution of Infectious Disease

()
Prereqs: GIR:BIOL and (1.000 or 6.100B)
Units: 3-0-9

Provides a thorough introduction to the forces driving infectious disease evolution, practical experience with bioinformatics and computational tools, and discussions of current topics relevant to public health. Topics include mechanisms of genome variation in bacteria and viruses, population genetics, outbreak detection and tracking, strategies to impede the evolution of drug resistance, emergence of new disease, and microbiomes and metagenomics. Discusses primary literature and computational assignments. Students taking graduate version complete additional assignments.


18.418
18.418 Topics in Computational Molecular Biology

()
Prereqs: 6.8701, 18.417, or permission of instructor
Units: 3-0-9

Covers current research topics in computational molecular biology. Recent research papers presented from leading conferences such as the International Conference on Computational Molecular Biology (RECOMB) and the Conference on Intelligent Systems for Molecular Biology (ISMB). Topics include original research (both theoretical and experimental) in comparative genomics, sequence and structure analysis, molecular evolution, proteomics, gene expression, transcriptional regulation, biological networks, drug discovery, and privacy. Recent research by course participants also covered. Participants will be expected to present individual projects to the class.


6.87006.878
6.8700 Advanced Computational Biology: Genomes, Networks, Evolution

()
Prereqs: (GIR:BIOL, 6.1210, and 6.3700) or permission of instructor
Units: 4-0-8

See description for 6.047. Additionally examines recent publications in the areas covered, with research-style assignments. A more substantial final project is expected, which can lead to a thesis and publication.


6.87106.874
6.8710 Computational Systems Biology: Deep Learning in the Life Sciences

()
Prereqs: GIR:BIOL and (6.3700 or 18.600)
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.


7.58
7.58 Molecular Biology

()
Prereqs: 7.03, 7.05, and permission of instructor
Units: 5-0-7

Detailed analysis of the biochemical mechanisms that control the maintenance, expression, and evolution of prokaryotic and eukaryotic genomes. Topics covered in lecture and readings of relevant literature include: gene regulation, DNA replication, genetic recombination, and mRNA translation. Logic of experimental design and data analysis emphasized. Presentations include both lectures and group discussions of representative papers from the literature. Students taking the graduate version are expected to explore the subject in greater depth.

7.60
7.60 Cell Biology: Structure and Functions of the Nucleus

()
Prereqs: 7.06 or permission of instructor
Units: 3-0-9

Eukaryotic genome structure, function, and expression, processing of RNA, and regulation of the cell cycle. Emphasis on the techniques and logic used to address important problems in nuclear cell biology. Lectures on broad topic areas in nuclear cell biology and discussions on representative recent papers.


7.62
7.62 Microbial Physiology

()
Prereqs: 7.03, 7.05, and permission of instructor
Units: 4-0-8

Biochemical properties of bacteria and other microorganisms that enable them to grow under a variety of conditions. Interaction between bacteria and bacteriophages. Genetic and metabolic regulation of enzyme action and enzyme formation. Structure and function of components of the bacterial cell envelope. Protein secretion with a special emphasis on its various roles in pathogenesis. Additional topics include bioenergetics, symbiosis, quorum sensing, global responses to DNA damage, and biofilms. Students taking the graduate version are expected to explore the subject in greater depth.


HST.504
HST.504 Topics in Computational Molecular Biology

()
Prereqs: 6.8701, 18.417, or permission of instructor
Units: 3-0-9

Covers current research topics in computational molecular biology. Recent research papers presented from leading conferences such as the International Conference on Computational Molecular Biology (RECOMB) and the Conference on Intelligent Systems for Molecular Biology (ISMB). Topics include original research (both theoretical and experimental) in comparative genomics, sequence and structure analysis, molecular evolution, proteomics, gene expression, transcriptional regulation, biological networks, drug discovery, and privacy. Recent research by course participants also covered. Participants will be expected to present individual projects to the class.


HST.508
HST.508 Evolutionary and Quantitative Genomics

()
Prereqs: Permission of instructor
Units: 4-0-8

Develops deep quantitative understanding of basic forces of evolution, molecular evolution, genetic variations and their dynamics in populations, genetics of complex phenotypes, and genome-wide association studies. Applies these foundational concepts to cutting-edge studies in epigenetics, gene regulation and chromatin; cancer genomics and microbiomes. Modules consist of lectures, journal club discussions of high-impact publications, and guest lectures that provide clinical correlates. Homework assignments and final projects develop practical experience and understanding of genomic data from evolutionary principles.


HST.538
HST.538 Genomics and Evolution of Infectious Disease

()
Prereqs: GIR:BIOL and (1.000 or 6.100B)
Units: 3-0-9

Provides a thorough introduction to the forces driving infectious disease evolution, practical experience with bioinformatics and computational tools, and discussions of current topics relevant to public health. Topics include mechanisms of genome variation in bacteria and viruses, population genetics, outbreak detection and tracking, strategies to impede the evolution of drug resistance, emergence of new disease, and microbiomes and metagenomics. Discusses primary literature and computational assignments. Students taking graduate version complete additional assignments.


BIOEECS_AAGS: Approved advanced graduate subjects in EECS/BIO. Also see AAGS list above. (Bio/EECS AAGS)
1.86
1.86 Methods and Problems in Microbiology

()
Prereqs: none
Units: 3-0-9

Students will read and discuss primary literature covering key areas of microbial research with emphasis on methods and approaches used to understand and manipulate microbes. Preference to first-year Microbiology and Biology students.


1.87
1.87 Microbial Genetics and Evolution

()
Prereqs: 7.03, 7.05, or permission of instructor
Units: 4-0-8

Covers aspects of microbial genetic and genomic analyses, central dogma, horizontal gene transfer, and evolution.


12.493
20.445
20.445 Methods and Problems in Microbiology

()
Prereqs: none
Units: 3-0-9

Students will read and discuss primary literature covering key areas of microbial research with emphasis on methods and approaches used to understand and manipulate microbes. Preference to first-year Microbiology and Biology students.


20.446
20.446 Microbial Genetics and Evolution

()
Prereqs: 7.03, 7.05, or permission of instructor
Units: 4-0-8

Covers aspects of microbial genetic and genomic analyses, central dogma, horizontal gene transfer, and evolution.


20.554
20.554 Advances in Chemical Biology

()
Prereqs: 5.07, 5.13, 7.06, and permission of instructor
Units: 3-0-9

Introduction to current research at the interface of chemistry, biology, and bioengineering. Topics include imaging of biological processes, metabolic pathway engineering, protein engineering, mechanisms of DNA damage, RNA structure and function, macromolecular machines, protein misfolding and disease, metabolomics, and methods for analyzing signaling network dynamics. Lectures are interspersed with class discussions and student presentations based on current literature.


20.561
20.561 Eukaryotic Cell Biology: Principles and Practice

()
Prereqs: Permission of instructor
Units: 4-0-8

Emphasizes methods and logic used to analyze structure and function of eukaryotic cells in diverse systems (e.g., yeast, fly, worm, mouse, human; development, stem cells, neurons). Combines lectures and in-depth roundtable discussions of literature readings with the active participation of faculty experts. Focuses on membranes (structure, function, traffic), organelles, the cell surface, signal transduction, cytoskeleton, cell motility and extracellular matrix. Ranges from basic studies to applications to human disease, while stressing critical analysis of experimental approaches. Enrollment limited.


20.630
20.630 Immunology

()
Prereqs: 7.06 and permission of instructor
Units: 5-0-7

Comprehensive survey of molecular, genetic, and cellular aspects of the immune system. Topics include innate and adaptive immunity; cells and organs of the immune system; hematopoiesis; immunoglobulin, T cell receptor, and major histocompatibility complex (MHC) proteins and genes; development and functions of B and T lymphocytes; immune responses to infections and tumors; hypersensitivity, autoimmunity, and immunodeficiencies. Particular attention to the development and function of the immune system as a whole, as studied by modern methods and techniques. Students taking graduate version explore the subject in greater depth, including study of recent primary literature.


5.54
5.54 Advances in Chemical Biology

()
Prereqs: 5.07, 5.13, 7.06, and permission of instructor
Units: 3-0-9

Introduction to current research at the interface of chemistry, biology, and bioengineering. Topics include imaging of biological processes, metabolic pathway engineering, protein engineering, mechanisms of DNA damage, RNA structure and function, macromolecular machines, protein misfolding and disease, metabolomics, and methods for analyzing signaling network dynamics. Lectures are interspersed with class discussions and student presentations based on current literature.


7.411
7.411 Seminars in Biological Oceanography

(,)
Prereqs: Permission of instructor
Units: 0-0-0

Selected topics in biological oceanography.


7.421
7.421 Problems in Biological Oceanography

(,)
Prereqs: Permission of instructor
Units: 0-0-0

Advanced problems in biological oceanography with assigned reading and consultation.


7.430
7.430 Topics in Quantitative Marine Science

()
Prereqs: Permission of instructor
Units: 2-0-4

Lectures and discussions on quantitative marine ecology. Topics vary from year to year.


7.431
7.431 Topics in Marine Ecology

(,)
Prereqs: Permission of instructor
Units: 2-0-4

Lectures and discussions on ecological principles and processes in marine populations, communities, and ecosystems. Topics vary from year to year.


7.432
7.432 Topics in Marine Physiology and Biochemistry

()
Prereqs: Permission of instructor
Units: 2-0-4

Lectures and discussions on physiological and biochemical processes in marine organisms. Topics vary from year to year.


7.433
7.433 Topics in Biological Oceanography

(,)
Prereqs: Permission of instructor
Units: 2-0-4

Lectures and discussions on biological oceanography. Topics vary from year to year.


7.434
7.434 Topics in Zooplankton Biology

(,)
Prereqs: Permission of instructor
Units: 2-0-4

Lectures and discussions on the biology of marine zooplankton. Topics vary from year to year.

7.435
7.435 Topics in Benthic Biology

(,)
Prereqs: Permission of instructor
Units: 2-0-4

Lectures and discussions on the biology of marine benthos. Topics vary from year to year.


7.436
7.436 Topics in Phytoplankton Biology

(,)
Prereqs: Permission of instructor
Units: 2-0-4

Lectures and discussion on the biology of marine phytoplankton. Topics vary from year to year.


7.437
7.437 Topics in Molecular Biological Oceanography

(,)
Prereqs: Permission of instructor
Units: 2-0-4

Lectures and discussion on molecular biological oceanography. Topics vary from year to year.


7.438
7.438 Topics in the Behavior of Marine Animals

(,)
Prereqs: Permission of instructor
Units: 2-0-4

Lectures and discussion on the behavioral biology of marine animals. Topics vary from year to year.


7.439
7.439 Topics in Marine Microbiology

()
Prereqs: Permission of instructor
Units: 2-0-4

Lectures and discussion on the biology of marine prokaryotes. Topics vary from year to year.


7.440
7.440 An Introduction to Mathematical Ecology

()
Prereqs: GIR:CAL1, 1.018, or permission of instructor
Units: 3-0-9

Covers the basic models of population growth, demography, population interaction (competition, predation, mutualism), food webs, harvesting, and infectious disease, and the mathematical tools required for their analysis. Because these tools are also basic to the analysis of models in biochemistry, physiology, and behavior, subject also broadly relevant to students whose interests are not limited to ecological problems.


7.491
7.491 Research in Biological Oceanography

(,,)
Prereqs: Permission of instructor
Units: 0-0-0

Directed research in biological oceanography not leading to graduate thesis and initiated prior to the qualifying exam.


7.492
7.492 Methods and Problems in Microbiology

()
Prereqs: none
Units: 3-0-9

Students will read and discuss primary literature covering key areas of microbial research with emphasis on methods and approaches used to understand and manipulate microbes. Preference to first-year Microbiology and Biology students.


7.493
7.493 Microbial Genetics and Evolution

()
Prereqs: 7.03, 7.05, or permission of instructor
Units: 4-0-8

Covers aspects of microbial genetic and genomic analyses, central dogma, horizontal gene transfer, and evolution.


7.494
7.494 Research Problems in Microbiology

(,,)
Prereqs: Permission of instructor
Units: 0-0-0

Directed research in the fields of microbial science and engineering.


7.498
7.498 Teaching Experience in Microbiology

(,)
Prereqs: Permission of instructor
Units: 0-0-0

For qualified graduate students in the Microbiology graduate program interested in teaching. Classroom or laboratory teaching under the supervision of a faculty member.


7.499
7.499 Research Rotations in Microbiology

(,)
Prereqs/[Coreqs]: [7.492 or 7.493]; permission of instructor
Units: 0-0-0

Introduces students to faculty participating in the interdepartmental Microbiology graduate program through a series of three lab rotations, which provide broad exposure to microbiology research at MIT. Students select a lab for thesis research by the end of their first year. Given the interdisciplinary nature of the program and the many research programs available, students may be able to work jointly with more than one research supervisor. Limited to students in the Microbiology graduate program.


7.50
7.50 Method and Logic in Molecular Biology

()
Prereqs/[Coreqs]: [7.51 and 7.52]; or permission of instructor
Units: 4-0-8

Logic, experimental design and methods in biology, using discussions of the primary literature to discern the principles of biological investigation in making discoveries and testing hypotheses. In collaboration with faculty, students also apply those principles to generate a potential research project, presented in both written and oral form. Limited to Course 7 graduate students.


7.51
7.51 Principles of Biochemical Analysis

()
Prereqs: Permission of instructor
Units: 6-0-6

Principles of biochemistry, emphasizing structure, equilibrium studies, kinetics, informatics, single-molecule studies, and experimental design. Topics include macromolecular binding and specificity, protein folding and unfolding, allosteric systems, transcription factors, kinases, membrane channels and transporters, and molecular machines.


7.52
7.52 Genetics for Graduate Students

()
Prereqs: Permission of instructor
Units: 4-0-8

Principles and approaches of genetic analysis, including Mendelian inheritance and prokaryotic genetics, yeast genetics, developmental genetics, neurogenetics, and human genetics.


7.540
7.540 Advances in Chemical Biology

()
Prereqs: 5.07, 5.13, 7.06, and permission of instructor
Units: 3-0-9

Introduction to current research at the interface of chemistry, biology, and bioengineering. Topics include imaging of biological processes, metabolic pathway engineering, protein engineering, mechanisms of DNA damage, RNA structure and function, macromolecular machines, protein misfolding and disease, metabolomics, and methods for analyzing signaling network dynamics. Lectures are interspersed with class discussions and student presentations based on current literature.

7.547
7.55
7.55 Case Studies in Modern Experimental Design

()
Prereqs: Permission of instructor
Units: 2-0-7

Focuses on enhancing students' ability to analyze, design and present experiments, emphasizing modern techniques. Class discussions begin with papers that developed or utilized contemporary approaches (e.g., quantitative microscopy, biophysical and molecular genetic methods) to address important problems in biology. Each student prepares one specific aim of a standard research proposal for a project that emphasizes research strategy, experimental design, and writing.


7.57
7.58
7.58 Molecular Biology

()
Prereqs: 7.03, 7.05, and permission of instructor
Units: 5-0-7

Detailed analysis of the biochemical mechanisms that control the maintenance, expression, and evolution of prokaryotic and eukaryotic genomes. Topics covered in lecture and readings of relevant literature include: gene regulation, DNA replication, genetic recombination, and mRNA translation. Logic of experimental design and data analysis emphasized. Presentations include both lectures and group discussions of representative papers from the literature. Students taking the graduate version are expected to explore the subject in greater depth.


7.60
7.60 Cell Biology: Structure and Functions of the Nucleus

()
Prereqs: 7.06 or permission of instructor
Units: 3-0-9

Eukaryotic genome structure, function, and expression, processing of RNA, and regulation of the cell cycle. Emphasis on the techniques and logic used to address important problems in nuclear cell biology. Lectures on broad topic areas in nuclear cell biology and discussions on representative recent papers.


7.61
7.61 Eukaryotic Cell Biology: Principles and Practice

()
Prereqs: Permission of instructor
Units: 4-0-8

Emphasizes methods and logic used to analyze structure and function of eukaryotic cells in diverse systems (e.g., yeast, fly, worm, mouse, human; development, stem cells, neurons). Combines lectures and in-depth roundtable discussions of literature readings with the active participation of faculty experts. Focuses on membranes (structure, function, traffic), organelles, the cell surface, signal transduction, cytoskeleton, cell motility and extracellular matrix. Ranges from basic studies to applications to human disease, while stressing critical analysis of experimental approaches. Enrollment limited.


7.62
7.62 Microbial Physiology

()
Prereqs: 7.03, 7.05, and permission of instructor
Units: 4-0-8

Biochemical properties of bacteria and other microorganisms that enable them to grow under a variety of conditions. Interaction between bacteria and bacteriophages. Genetic and metabolic regulation of enzyme action and enzyme formation. Structure and function of components of the bacterial cell envelope. Protein secretion with a special emphasis on its various roles in pathogenesis. Additional topics include bioenergetics, symbiosis, quorum sensing, global responses to DNA damage, and biofilms. Students taking the graduate version are expected to explore the subject in greater depth.


7.63
7.63 Immunology

()
Prereqs: 7.06 and permission of instructor
Units: 5-0-7

Comprehensive survey of molecular, genetic, and cellular aspects of the immune system. Topics include innate and adaptive immunity; cells and organs of the immune system; hematopoiesis; immunoglobulin, T cell receptor, and major histocompatibility complex (MHC) proteins and genes; development and functions of B and T lymphocytes; immune responses to infections and tumors; hypersensitivity, autoimmunity, and immunodeficiencies. Particular attention to the development and function of the immune system as a whole, as studied by modern methods and techniques. Students taking graduate version explore the subject in greater depth, including study of recent primary literature.


7.64
7.64 Molecular Mechanisms, Pathology and Therapy of Human Neuromuscular Disorders

()
Prereqs: Permission of instructor
Units: 3-0-9

Investigates the molecular and clinical basis of central nervous system and neuromuscular disorders with particular emphasis on strategies for therapeutic intervention. Considers the in-depth analysis of clinical features, pathological mechanisms, and responses to current therapeutic interventions. Covers neurodegenerative diseases, such as Huntington's disease, Parkinson's disease, Alzheimer's disease, Amyotropic Lateral Schlerosis, Frontal Temporal Dementia, and neuromuscular disorders, such as Myotonic Dystrophy, Facio Scapular Humoral Dystrophy, and Duchenne Muscular Dystrophy.


7.66
7.66 Molecular Basis of Infectious Disease

()
Prereqs: 7.06 and permission of instructor
Units: 4-0-8

Focuses on the principles of host-pathogen interactions with an emphasis on infectious diseases of humans. Presents key concepts of pathogenesis through the study of various human pathogens. Includes critical analysis and discussion of assigned readings. Students taking the graduate version are expected to explore the subject in greater depth.


7.69
7.69 Developmental Neurobiology

()
Prereqs: 9.011 or permission of instructor
Units: 3-0-9

Considers molecular control of neural specification, formation of neuronal connections, construction of neural systems, and the contributions of experience to shaping brain structure and function. Topics include: neural induction and pattern formation, cell lineage and fate determination, neuronal migration, axon guidance, synapse formation and stabilization, activity-dependent development and critical periods, development of behavior. In addition to final exam, analysis and presentation of research papers required for final grade. Students taking graduate version complete additional assignments. Students taking graduate version complete additional readings that will be addressed in their mid-term and final exams.


7.70
7.70 Regulation of Gene Expression

()
Prereqs: Permission of instructor
Units: 4-0-8

Seminar examines basic principles of biological regulation of gene expression. Focuses on examples that underpin these principles, as well as those that challenge certain long-held views. Topics covered may include the role of transcription factors, enhancers, DNA modifications, non-coding RNAs, and chromatin structure in the regulation of gene expression and mechanisms for epigenetic inheritance of transcriptional states. Limited to 40.


7.71
7.71 Biophysical Technique

()
Prereqs: 5.13, 5.60, (5.07 or 7.05), and permission of instructor
Units: 5-0-7

Introduces students to modern biophysical methods to study biological systems from atomic, to molecular and cellular scales. Includes an in-depth discussion on the techniques that cover the full resolution range, including X-ray crystallography, electron-, and light microscopy. Discusses other common biophysical techniques for macromolecular characterizations. Lectures cover theoretical principles behind the techniques, and students are given practical laboratory exercises using instrumentation available at MIT. Meets with 5.78 when offered concurrently. 


7.72
7.72 Stem Cells, Regeneration, and Development

()
Prereqs: Permission of instructor
Units: 4-0-8

Topics include diverse stem cells, such as muscle, intestine, skin, hair and hematopoietic stem cells, as well as pluripotent stem cells. Topics address cell polarity and cell fate; positional information and patterning of development and regeneration; limb, heart and whole body regeneration; stem cell renewal; progenitor cells in development; responses to wounding; and applications of stem cells in development of therapies. Discussions of papers supplement lectures.


7.76
7.76 Topics in Macromolecular Structure and Function

()
Prereqs: Permission of instructor
Units: 3-0-6

In-depth analysis and discussion of classic and current literature, with an emphasis on the structure, function, and mechanisms of proteins and other biological macromolecules.


7.77
7.77 Nucleic Acids, Structure, Function, Evolution, and Their Interactions with Proteins

()
Prereqs: 7.05, 7.51, or permission of instructor
Units: 3-0-9

Surveys primary literature, focusing on biochemical, biophysical, genetic, and combinatorial approaches for understanding nucleic acids. Topics include the general properties, functions, and structural motifs of DNA and RNA; RNAs as catalysts and as regulators of gene expression; RNA editing and surveillance, and the interaction of nucleic acids with proteins, such as zinc-finger proteins, modification enzymes, aminoacyl-tRNA synthetases and other proteins of the translational machinery. Includes some lectures but is mostly analysis and discussion of current literature in the context of student presentations.

7.80
7.80 Fundamentals of Chemical Biology

()
Prereqs: 5.13 and (5.07 or 7.05)
Units: 4-0-8

Spanning the fields of biology, chemistry, and engineering, this class introduces students to the principles of chemical biology and the application of chemical and physical methods and reagents to the study and manipulation of biological systems. Topics include nucleic acid structure, recognition, and manipulation; protein folding and stability, and proteostasis; bioorthogonal reactions and activity-based protein profiling; chemical genetics and small-molecule inhibitor screening; fluorescent probes for biological analysis and imaging; and unnatural amino acid mutagenesis. The class will also discuss the logic of dynamic post-translational modification reactions with an emphasis on chemical biology approaches for studying complex processes including glycosylation, phosphorylation, and lipidation. Students taking the graduate version are expected to explore the subject in greater depth.


7.81
7.81 Systems Biology

()
Prereqs: (18.03 and 18.05) or permission of instructor
Units: 3-0-9

Introduction to cellular and population-level systems biology with an emphasis on synthetic biology, modeling of genetic networks, cell-cell interactions, and evolutionary dynamics. Cellular systems include genetic switches and oscillators, network motifs, genetic network evolution, and cellular decision-making. Population-level systems include models of pattern formation, cell-cell communication, and evolutionary systems biology. Students taking graduate version explore the subject in more depth.


7.82
7.82 Development, Disease and Therapeutics

()
Prereqs: Permission of instructor
Units: 3-0-9

Seminar covering the key concepts and technological approaches that are used to study and treat human disease. Topics include human genome variation, germline editing, gene therapy, stem cell derived organoids, human-animal chimeras and the application of these approaches to the study and treatment of major diseases.


7.89
7.89 Topics in Computational and Systems Biology

()
Prereqs: Permission of instructor
Units: 2-0-10

Seminar based on research literature. Papers covered are selected to illustrate important problems and varied approaches in the field of computational and systems biology, and to provide students a framework from which to evaluate new developments. Preference to first-year CSB PhD students.


7.935
7.935 Responsible Conduct in Biology

(,)
Prereqs: Permission of instructor
Units: 0-0-0

Sessions focus on the responsible conduct of science. Considers recordkeeping and reporting; roles of mentor and mentee; authorship, review, and confidentiality; resolving conflicts; misfeasance and malfeasance; collaborations, competing interests, and intellectual property; and proper practices in the use of animal and human subjects. Limited to second-year graduate students in Biology.


7.95
7.95 Cancer Biology

()
Prereqs: 7.85 and permission of instructor
Units: 3-0-9

Advanced seminar involving intensive analysis of historical and current developments in cancer biology. Topics address principles of apoptosis, principles of cancer biology, cancer genetics, cancer cell metabolism, tumor immunology, and therapy. Detailed analysis of research literature, including important reports published in recent years. Enrollment limited.


7.98
7.98 Neural Plasticity in Learning and Memory

()
Prereqs: Permission of instructor
Units: 3-0-6

Examination of the role of neural plasticity during learning and memory of invertebrates and mammals. Detailed critical analysis of the current literature of molecular, cellular, genetic, electrophysiological, and behavioral studies. Student-directed presentations and discussions of original papers supplemented by introductory lectures. Juniors and seniors require instructor's permission.


7.S930
7.S930 Special Subject in Biology

(,,)
Prereqs: Permission of instructor
Units: 0-0-0

Covers material in various fields of biology not offered by the regular subjects of instruction.


7.S931
7.S931 Special Subject in Biology

(,,)
Prereqs: Permission of instructor
Units: 0-0-0

Covers material in various fields of biology not offered by the regular subjects of instruction.


7.S932
7.S932 Special Subject in Biology

(,,)
Prereqs: Permission of instructor
Units: 0-0-0

Covers material in various fields of biology not offered by the regular subjects of instruction.


7.S939
7.S939 Special Subject in Biology

(,,)
Prereqs: Permission of instructor
Units: 0-0-0

Covers material in various fields of biology not offered by the regular subjects of instruction.


8.181
8.591
8.591 Systems Biology

()
Prereqs: (18.03 and 18.05) or permission of instructor
Units: 3-0-9

Introduction to cellular and population-level systems biology with an emphasis on synthetic biology, modeling of genetic networks, cell-cell interactions, and evolutionary dynamics. Cellular systems include genetic switches and oscillators, network motifs, genetic network evolution, and cellular decision-making. Population-level systems include models of pattern formation, cell-cell communication, and evolutionary systems biology. Students taking graduate version explore the subject in more depth.


9.301
CSB.100

ECON_AAGS: Approved advanced subjects in Economics
14.121
14.121 Microeconomic Theory I

()
Prereqs: 14.04 and permission of instructor
Units: 3-0-3

Covers consumer and producer theory, markets and competition, general equilibrium and the welfare theorems; featuring applications, uncertainty, identification and restrictions models place on data. Enrollment limited; preference to PhD students.

&14.122
14.122 Microeconomic Theory II

()
Prereqs: 14.121 and permission of instructor
Units: 3-0-3

Introduction to game theory. Topics include normal form and extensive form games, and games with incomplete information. Enrollment limited.


14.131
14.131 Psychology and Economics

()
Prereqs: 14.01
Units: 4-0-8

Introduces the theoretical and empirical literature of behavioral economics. Examines important and systematic departures from the standard models in economics by incorporating insights from psychology and other social sciences. Covers theory and evidence on time, risk, and social preferences; beliefs and learning; emotions; limited attention; and frames, defaults, and nudges. Studies applications to many different areas, such as credit card debt, procrastination, retirement savings, addiction, portfolio choice, poverty, labor supply, happiness, and government policy. Students participate in surveys and experiments in class, review evidence from lab experiments, examine how the results can be integrated into models, and test models using field and lab data.  Students taking graduate version complete additional assignments.


14.137
14.137 Psychology and Economics

()
Prereqs: none
Units: 4-0-8

Examines "psychology appreciation" for economics students. Aims to enhance knowledge and intuition about psychological processes in areas relevant to economics. Increases understanding of psychology as an experimental discipline, with its own distinct rules and style of argument. Topics include self-knowledge, cognitive dissonance, self-deception, emotions, social norms, self-control, learning, mental accounting, memory, individual and group behavior, and some personality and psycho-analytic models. Within each of these topics, we showcase effective and central experiments and discuss their role in the development of psychological theory. Term paper required.


14.150
14.150 Networks

()
Prereqs: 6.3700 or 14.300
Units: 4-0-8

Highlights common principles that permeate the functioning of diverse technological, economic and social networks. Utilizes three sets of tools for analyzing networks -- random graph models, optimization, and game theory -- to study informational and learning cascades; economic and financial networks; social influence networks; formation of social groups; communication networks and the Internet; consensus and gossiping; spread and control of epidemics; control and use of energy networks; and biological networks. Students taking graduate version complete additional assignments.


14.161
14.161 Strategy and Information

()
Prereqs: 14.01 or permission of instructor
Units: 4-0-8

Covers modern applications of game theory where incomplete information plays an important role. Applications include bargaining, auctions, global games, market design, information design, and network economics. Students taking graduate version complete additional assignments.

14.200
14.200 Industrial Organization: Competitive Strategy and Public Policy

()
Prereqs: 14.01
Units: 4-0-8

Analyzes the current debate over the rise of monopolies, the strategic behavior and performance of firms in imperfectly competitive markets, and the role of competition policy. Topics include monopoly power; pricing, product choice, and innovation decisions by firms in oligopoly markets; static and dynamic measurement of market performance; and incentives in organizations. Requires regular participation in class discussion and teamwork in a competitive strategy game. Students taking graduate version complete additional assignments.


14.270
14.270 Economics and E-Commerce

()
Prereqs: 14.01 and (6.3700 or 14.30)
Units: 4-0-8

Uses theoretical economic models and empirical evidence to help understand the growth and future of e-commerce. Economic models help frame class discussions of, among other topics, content provision, privacy, piracy, sales taxation, group purchasing, price search, and advertising on the internet. Empirical project and paper required. Students taking graduate version complete additional assignments.


14.380
14.380 Statistical Method in Economics

()
Prereqs: 14.32 or permission of instructor
Units: 3-0-3

Introduction to probability and statistics as background for advanced econometrics. Covers elements of probability theory, sampling theory, asymptotic approximations, hypothesis testing, and maximum-likelihood methods. Illustrations from economics and application of these concepts to economic problems. Limited to 40 PhD students.

&14.381
14.381 Estimation and Inference for Linear Causal and Structural Models

()
Prereqs: 14.380
Units: 3-0-3

Explains basic econometric ideas and methods, illustrating with empirical applications. Causal inference is emphasized and examples of economic structural models are given. Topics include randomized trials, regression, including discontinuity designs and diffs-in-diffs, and instrumental variables, including local average treatment effects. Basic asymptotic theory for regression is covered and robust standard errors and statistical inference methods are given. Restricted to PhD students from Courses 14 and 15. Instructor approval required for all others.


14.387
14.387 Applied Econometrics

()
Prereqs: 14.381 or permission of instructor
Units: 4-0-8

Advanced treatment of the core empirical strategies used to answer causal questions in applied microeconometric research. Covers extensions and innovations relating to econometric applications of regression, machine learning, instrumental variables, differences-in-differences and event-study models, regression discontinuity designs, synthetic controls, and statistical inference.  Students taking the graduate version complete an additional assignment.  


14.388
14.388 Inference on Causal and Structural Parameters Using ML and AI

()
Prereqs: 14.381
Units: 4-0-8

Provides an applied treatment of modern causal inference with high-dimensional data, focusing on empirical economic problems encountered in academic research and the tech industry. Formulates problems in the languages of structural equation modeling and potential outcomes. Presents state-of-the-art approaches for inference on causal and structural parameters, including de-biased machine learning, synthetic control methods, and reinforcement learning. Introduces tools from machine learning and deep learning developed for prediction purposes, and discusses how to adapt them to learn causal parameters. Emphasizes the applied and practical perspectives. Requires knowledge of mathematical statistics and regression analysis and programming experience in R or Python.

14.420
14.420 Environmental Policy and Economics

()
Prereqs: 14.01
Units: 4-0-8

Introduces students to key concepts and recent advances in environmental economics, and explores their application to environmental policy questions. Topics include market efficiency and market failure, methods for valuing the benefits of environmental quality, the proper role of government in the regulation of the environment, environmental policy design and implementation challenges. Also considers international aspects of environmental policy including the economics of climate change, trade and the environment and environmental challenges in developing countries. Students taking graduate version complete additional assignments.


14.444
14.444 Energy Economics and Policy

()
Prereqs: 14.01 or 15.0111
Units: 4-0-8

Analyzes business and public policy issues in energy markets and in the environmental markets to which they are closely tied. Examines the economic determinants of industry structure and evolution of competition among firms in these industries. Investigates successful and unsuccessful strategies for entering new markets and competing in existing markets. Industries studied include oil, natural gas, coal, electricity, and transportation. Topics include climate change and environmental policy, the role of speculation in energy markets, the political economy of energy policies, and market power and antitrust. Two team-based simulation games, representing the world oil market and a deregulated electricity market, act to cement the concepts covered in lecture. Students taking graduate version complete additional assignments. Limited to 60.


14.540
14.540 International Trade

()
Prereqs: 14.01
Units: 4-0-8

Provides an introduction to theoretical and empirical topics in international trade. Offers a brief history of globalization. Introduces the theory of comparative advantage and discusses its implications for international specialization and wage inequality. Studies the determinants and consequences of trade policy, and analyzes the consequences of immigration and foreign direct investment. Students taking graduate version complete additional assignments.


14.640
14.640 Labor Economics and Public Policy

()
Prereqs: 14.300 or permission of instructor
Units: 4-0-8

Provides an introduction to the labor market, how it functions, and the important role it plays in people's lives. Topics include supply and demand, minimum wages, labor market effects of social insurance and welfare programs, the collective bargaining relationship, discrimination, human capital, and unemployment. Completion of or concurrent enrollment in 14.03 or 14.04, and 14.32 recommended. Students taking graduate version complete additional assignments.


14.750
14.750 Political Economy and Economic Development

()
Prereqs: 14.01
Units: 4-0-8

Explores the relationship between political institutions and economic development, covering key theoretical issues as well as recent empirical evidence. Topics include corruption, voting, vote buying, the media, and war. Discusses not just what we know on these topics, but how we know it, covering how to craft a good empirical study or field experiment and how to discriminate between reliable and unreliable evidence. Some basic familiarity with probability and/or statistics is useful for this class.  Students taking graduate version complete additional assignments.

14.760
14.760 Firms, Markets, Trade and Growth

()
Prereqs: 14.01 and (14.30 or permission of instructor)
Units: 4-0-8

Examines how industrial development and international trade have brought about rapid growth and large-scale reductions in poverty for some developing countries, while globalization has simply increased inequality and brought little growth for others. Also considers why, in yet other developing countries, firms remain small-scale and have not integrated with global supply chains. Draws on both theoretical models and empirical evidence to better understand the reasons for these very different experiences and implications for policy. Students taking graduate version complete additional assignments.


15.038
15.038 Energy Economics and Policy

()
Prereqs: 14.01 or 15.0111
Units: 4-0-8

Analyzes business and public policy issues in energy markets and in the environmental markets to which they are closely tied. Examines the economic determinants of industry structure and evolution of competition among firms in these industries. Investigates successful and unsuccessful strategies for entering new markets and competing in existing markets. Industries studied include oil, natural gas, coal, electricity, and transportation. Topics include climate change and environmental policy, the role of speculation in energy markets, the political economy of energy policies, and market power and antitrust. Two team-based simulation games, representing the world oil market and a deregulated electricity market, act to cement the concepts covered in lecture. Students taking graduate version complete additional assignments. Limited to 60.


9.822

ECONEECS_AAGS: Approved advanced subjects in EECS/ECON
6.37026.431
6.3702 Introduction to Probability

(,)
Prereqs: GIR:CAL2
Units: 4-0-8

An introduction to probability theory, the modeling and analysis of probabilistic systems, and elements of statistical inference. Probabilistic models, conditional probability. Discrete and continuous random variables. Expectation and conditional expectation, and further topics about random variables. Limit Theorems. Bayesian estimation and hypothesis testing. Elements of classical statistical inference. Bernoulli and Poisson processes. Markov chains. Students taking graduate version complete additional assignments.


6.37226.481
6.3722 Introduction to Statistical Data Analysis

()
Prereqs: 6.100A and (6.3700, 6.3800, 18.600, or permission of instructor)
Units: 4-0-8

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.37326.439
6.3732 Statistics, Computation and Applications

()
Prereqs: (6.100B, (18.03, 18.06, or 18.C06), and (6.3700, 6.3800, 14.30, 16.09, or 18.05)) or permission of instructor
Units: 3-1-8

Hands-on analysis of data demonstrates the interplay between statistics and computation. Includes four modules, each centered on a specific data set, and introduced by a domain expert. Provides instruction in specific, relevant analysis methods and corresponding algorithmic aspects. Potential modules may include medical data, gene regulation, social networks, finance data (time series), traffic, transportation, weather forecasting, policy, or industrial web applications. Projects address a large-scale data analysis question. Students taking graduate version complete additional assignments. Limited enrollment; priority to Statistics and Data Science minors and to juniors and seniors.


6.41326.877
6.4132 Principles of Autonomy and Decision Making

()
Prereqs: 6.100B, 6.9080, or permission of instructor
Units: 3-0-9

Surveys decision making methods used to create highly autonomous systems and decision aids. Applies models, principles and algorithms taken from artificial intelligence and operations research. Focuses on planning as state-space search, including uninformed, informed and stochastic search, activity and motion planning, probabilistic and adversarial planning, Markov models and decision processes, and Bayesian filtering. Also emphasizes planning with real-world constraints using constraint programming. Includes methods for satisfiability and optimization of logical, temporal and finite domain constraints, graphical models, and linear and integer programs, as well as methods for search, inference, and conflict-learning. Students taking graduate version complete additional assignments.


6.50806.836
6.5080 Multicore Programming

()
Prereqs: 6.1210
Units: 4-0-8

Introduces principles and core techniques for programming multicore machines. Topics include locking, scalability, concurrent data structures, multiprocessor scheduling, load balancing, and state-of-the-art synchronization techniques, such as transactional memory. Includes sequence of programming assignments on a large multicore machine, culminating with the design of a highly concurrent application. Students taking graduate version complete additional assignments.


6.52106.854
6.5210 Advanced Algorithms

()
Prereqs: 6.1220 and (6.1200, 6.3700, or 18.600)
Units: 5-0-7

First-year graduate subject in algorithms. Emphasizes fundamental algorithms and advanced methods of algorithmic design, analysis, and implementation. Surveys a variety of computational models and the algorithms for them. Data structures, network flows, linear programming, computational geometry, approximation algorithms, online algorithms, parallel algorithms, external memory, streaming algorithms.


6.52206.856
6.5220 Randomized Algorithms

()
Prereqs: (6.1200 or 6.3700) and (6.1220 or 6.5210)
Units: 5-0-7

Studies how randomization can be used to make algorithms simpler and more efficient via random sampling, random selection of witnesses, symmetry breaking, and Markov chains. Models of randomized computation. Data structures: hash tables, and skip lists. Graph algorithms: minimum spanning trees, shortest paths, and minimum cuts. Geometric algorithms: convex hulls, linear programming in fixed or arbitrary dimension. Approximate counting; parallel algorithms; online algorithms; derandomization techniques; and tools for probabilistic analysis of algorithms.


6.52306.851
6.5230 Advanced Data Structures

()
Prereqs: 6.1220
Units: 3-0-9

More advanced and powerful data structures for answering several queries on the same data. Such structures are crucial in particular for designing efficient algorithms. Dictionaries; hashing; search trees. Self-adjusting data structures; linear search; splay trees; dynamic optimality. Integer data structures; word RAM. Predecessor problem; van Emde Boas priority queues; y-fast trees; fusion trees. Lower bounds; cell-probe model; round elimination. Dynamic graphs; link-cut trees; dynamic connectivity. Strings; text indexing; suffix arrays; suffix trees. Static data structures; compact arrays; rank and select. Succinct data structures; tree encodings; implicit data structures. External-memory and cache-oblivious data structures; B-trees; buffer trees; tree layout; ordered-file maintenance. Temporal data structures; persistence; retroactivity.


6.52506.852
6.5250 Distributed Algorithms

()
Prereqs: 6.1220
Units: 3-0-9

Design and analysis of concurrent algorithms, emphasizing those suitable for use in distributed networks. Process synchronization, allocation of computational resources, distributed consensus, distributed graph algorithms, election of a leader in a network, distributed termination, deadlock detection, concurrency control, communication, and clock synchronization. Special consideration given to issues of efficiency and fault tolerance. Formal models and proof methods for distributed computation.

6.53106.849
6.5310 Geometric Folding Algorithms: Linkages, Origami, Polyhedra

()
Prereqs: 6.1220 or permission of instructor
Units: 3-0-9

Covers discrete geometry and algorithms underlying the reconfiguration of foldable structures, with applications to robotics, manufacturing, and biology. Linkages made from one-dimensional rods connected by hinges: constructing polynomial curves, characterizing rigidity, characterizing unfoldable versus locked, protein folding. Folding two-dimensional paper (origami): characterizing flat foldability, algorithmic origami design, one-cut magic trick. Unfolding and folding three-dimensional polyhedra: edge unfolding, vertex unfolding, gluings, Alexandrov's Theorem, hinged dissections.


6.53406.853
6.5340 Topics in Algorithmic Game Theory

()
Prereqs: 6.1210 or 6.1220
Units: 3-0-9

Presents research topics at the interface of computer science and game theory, with an emphasis on algorithms and computational complexity. Explores the types of game-theoretic tools that are applicable to computer systems, the loss in system performance due to the conflicts of interest of users and administrators, and the design of systems whose performance is robust with respect to conflicts of interest inside the system. Algorithmic focus is on algorithms for equilibria, the complexity of equilibria and fixed points, algorithmic tools in mechanism design, learning in games, and the price of anarchy.


6.54006.840
6.5400 Theory of Computation

()
Prereqs: 6.1200 or 18.200
Units: 4-0-8

A more extensive and theoretical treatment of the material in 6.1400J/18.400J, emphasizing computability and computational complexity theory. Regular and context-free languages. Decidable and undecidable problems, reducibility, recursive function theory. Time and space measures on computation, completeness, hierarchy theorems, inherently complex problems, oracles, probabilistic computation, and interactive proof systems. Students in Course 18 must register for the undergraduate version, 18.404.


6.56206.875
6.5620 Cryptography and Cryptanalysis

()
Prereqs: 6.1220
Units: 3-0-9

A rigorous introduction to modern cryptography. Emphasis on the fundamental cryptographic primitives of public-key encryption, digital signatures, pseudo-random number generation, and basic protocols and their computational complexity requirements.


6.66306.780
6.6630 Control of Manufacturing Processes

()
Prereqs: 2.008, 6.2600, or 6.3700
Units: 3-0-9

Statistical modeling and control in manufacturing processes. Use of experimental design and response surface modeling to understand manufacturing process physics. Defect and parametric yield modeling and optimization. Forms of process control, including statistical process control, run by run and adaptive control, and real-time feedback control. Application contexts include semiconductor manufacturing, conventional metal and polymer processing, and emerging micro-nano manufacturing processes.


6.72006.255
6.7200 Optimization Methods

()
Prereqs: 18.06
Units: 4-0-8

Introduces the principal algorithms for linear, network, discrete, robust, nonlinear, and dynamic optimization. Emphasizes methodology and the underlying mathematical structures. Topics include the simplex method, network flow methods, branch and bound and cutting plane methods for discrete optimization, optimality conditions for nonlinear optimization, interior point methods for convex optimization, Newton's method, heuristic methods, and dynamic programming and optimal control methods. Expectations and evaluation criteria differ for students taking graduate version; consult syllabus or instructor for specific details.


6.72106.251
6.7210 Introduction to Mathematical Programming

()
Prereqs: 18.06
Units: 4-0-8

Introduction to linear optimization and its extensions emphasizing both methodology and the underlying mathematical structures and geometrical ideas. Covers classical theory of linear programming as well as some recent advances in the field. Topics: simplex method; duality theory; sensitivity analysis; network flow problems; decomposition; robust optimization; integer programming; interior point algorithms for linear programming; and introduction to combinatorial optimization and NP-completeness.


6.72406.254
6.7240 Game Theory with Engineering Applications

()
Prereqs: 6.3702
Units: 4-0-8

Introduction to fundamentals of game theory and mechanism design with motivations for each topic drawn from engineering applications (including distributed control of wireline/wireless communication networks, transportation networks, pricing). Emphasis on the foundations of the theory, mathematical tools, as well as modeling and the equilibrium notion in different environments. Topics include normal form games, supermodular games, dynamic games, repeated games, games with incomplete/imperfect information, mechanism design, cooperative game theory, and network games.


6.72606.268
6.7260 Network Science and Models

()
Prereqs: 6.3702 and 18.06
Units: 3-0-9

Introduces the main mathematical models used to describe large networks and dynamical processes that evolve on networks. Static models of random graphs, preferential attachment, and other graph evolution models. Epidemic propagation, opinion dynamics, social learning, and inference in networks. Applications drawn from social, economic, natural, and infrastructure networks, as well as networked decision systems such as sensor networks.

6.73006.336
6.7300 Introduction to Modeling and Simulation

()
Prereqs: 18.03 or 18.06
Units: 3-6-3

Introduction to computational techniques for modeling and simulation of a variety of large and complex engineering, science, and socio-economical systems. Prepares students for practical use and development of computational engineering in their own research and future work. Topics include mathematical formulations (e.g., automatic assembly of constitutive and conservation principles); linear system solvers (sparse and iterative); nonlinear solvers (Newton and homotopy); ordinary, time-periodic and partial differential equation solvers; and model order reduction. Students develop their own models and simulators for self-proposed applications, with an emphasis on creativity, teamwork, and communication. Prior basic linear algebra required and at least one numerical programming language (e.g., MATLAB, Julia, Python, etc.) helpful.


6.73106.337
6.7310 Introduction to Numerical Methods

()
Prereqs: 18.06, 18.700, or 18.701
Units: 3-0-9

Advanced introduction to numerical analysis: accuracy and efficiency of numerical algorithms. In-depth coverage of sparse-matrix/iterative and dense-matrix algorithms in numerical linear algebra (for linear systems and eigenproblems). Floating-point arithmetic, backwards error analysis, conditioning, and stability. Other computational topics (e.g., numerical integration or nonlinear optimization) may also be surveyed. Final project involves some programming.


6.73206.338
6.7320 Parallel Computing and Scientific Machine Learning

()
Prereqs: 18.06, 18.700, or 18.701
Units: 3-0-9

Introduction to scientific machine learning with an emphasis on developing scalable differentiable programs. Covers scientific computing topics (numerical differential equations, dense and sparse linear algebra, Fourier transformations, parallelization of large-scale scientific simulation) simultaneously with modern data science (machine learning, deep neural networks, automatic differentiation), focusing on the emerging techniques at the connection between these areas, such as neural differential equations and physics-informed deep learning. Provides direct experience with the modern realities of optimizing code performance for supercomputers, GPUs, and multicores in a high-level language.


6.73306.339
6.7330 Numerical Methods for Partial Differential Equations

()
Prereqs: 18.03 or 18.06
Units: 3-0-9

Covers the fundamentals of modern numerical techniques for a wide range of linear and nonlinear elliptic, parabolic, and hyperbolic partial differential and integral equations. Topics include mathematical formulations; finite difference, finite volume, finite element, and boundary element discretization methods; and direct and iterative solution techniques. The methodologies described form the foundation for computational approaches to engineering systems involving heat transfer, solid mechanics, fluid dynamics, and electromagnetics. Computer assignments requiring programming.


6.74506.263
6.7450 Data-Communication Networks

()
Prereqs: 6.3700 or 18.204
Units: 3-0-9

Provides an introduction to data networks with an analytic perspective, using wireless networks, satellite networks, optical networks, the internet and data centers as primary applications. Presents basic tools for modeling and performance analysis. Draws upon concepts from stochastic processes, queuing theory, and optimization.


6.74706.441
6.7470 Information Theory

()
Prereqs: 6.3700
Units: 3-0-9

Mathematical definitions of information measures, convexity, continuity, and variational properties. Lossless source coding; variable-length and block compression; Slepian-Wolf theorem; ergodic sources and Shannon-McMillan theorem. Hypothesis testing, large deviations and I-projection. Fundamental limits of block coding for noisy channels: capacity, dispersion, finite blocklength bounds. Coding with feedback. Joint source-channel problem. Rate-distortion theory, vector quantizers. Advanced topics include Gelfand-Pinsker problem, multiple access channels, broadcast channels (depending on available time).


6.77006.436
6.7700 Fundamentals of Probability

()
Prereqs: GIR:CAL2
Units: 4-0-8

Introduction to probability theory. Probability spaces and measures. Discrete and continuous random variables. Conditioning and independence. Multivariate normal distribution. Abstract integration, expectation, and related convergence results. Moment generating and characteristic functions. Bernoulli and Poisson process. Finite-state Markov chains. Convergence notions and their relations. Limit theorems. Familiarity with elementary probability and real analysis is desirable.


6.77106.262
6.7710 Discrete Stochastic Processes

()
Prereqs: 6.3702 or 18.204
Units: 4-0-8

Review of probability and laws of large numbers; Poisson counting process and renewal processes; Markov chains (including Markov decision theory), branching processes, birth-death processes, and semi-Markov processes; continuous-time Markov chains and reversibility; random walks, martingales, and large deviations; applications from queueing, communication, control, and operations research.


6.77206.265
6.7720 Discrete Probability and Stochastic Processes

()
Prereqs: 6.3702, 6.7700, 18.100A, 18.100B, or 18.100Q
Units: 3-0-9

Provides an introduction to tools used for probabilistic reasoning in the context of discrete systems and processes. Tools such as the probabilistic method, first and second moment method, martingales, concentration and correlation inequalities, theory of random graphs, weak convergence, random walks and Brownian motion, branching processes, Markov chains, Markov random fields, correlation decay method, isoperimetry, coupling, influences and other basic tools of modern research in probability will be presented. Algorithmic aspects and connections to statistics and machine learning will be emphasized.

6.78006.437
6.7800 Inference and Information

()
Prereqs: 6.3700, 6.3800, or 6.7700
Units: 4-0-8

Introduction to principles of Bayesian and non-Bayesian statistical inference. Hypothesis testing and parameter estimation, sufficient statistics; exponential families. EM agorithm. Log-loss inference criterion, entropy and model capacity. Kullback-Leibler distance and information geometry. Asymptotic analysis and large deviations theory. Model order estimation; nonparametric statistics. Computational issues and approximation techniques; Monte Carlo methods. Selected topics such as universal inference and learning, and universal features and neural networks.


6.78106.438
6.7810 Algorithms for Inference

()
Prereqs: 18.06 and (6.3700, 6.3800, or 6.7700)
Units: 4-0-8

Introduction to statistical inference with probabilistic graphical models. Directed and undirected graphical models, and factor graphs, over discrete and Gaussian distributions; hidden Markov models, linear dynamical systems. Sum-product and junction tree algorithms; forward-backward algorithm, Kalman filtering and smoothing. Min-sum and Viterbi algorithms. Variational methods, mean-field theory, and loopy belief propagation. Particle methods and filtering. Building graphical models from data, including parameter estimation and structure learning; Baum-Welch and Chow-Liu algorithms. Selected special topics.


6.79006.867
6.7900 Machine Learning

()
Prereqs: 18.06 and (6.3700, 6.3800, or 18.600)
Units: 3-0-9

Principles, techniques, and algorithms in machine learning from the point of view of statistical inference; representation, generalization, and model selection; and methods such as linear/additive models, active learning, boosting, support vector machines, non-parametric Bayesian methods, hidden Markov models, Bayesian networks, and convolutional and recurrent neural networks. Recommended prerequisite: 6.3900 or other previous experience in machine learning. Enrollment may be limited.


6.79106.860
6.7910 Statistical Learning Theory and Applications

()
Prereqs: 6.3700, 6.7900, 18.06, or permission of instructor
Units: 3-0-9

Covers foundations and recent advances in statistical machine learning theory, with the dual goals of providing students with the theoretical knowledge to use machine learning and preparing more advanced students to contribute to progress in the field. The content is roughly divided into three parts. The first part is about classical regularization, margin, stochastic gradient methods, overparametrization, implicit regularization, and stability. The second part is about deep networks: approximation and optimization theory plus roots of generalization. The third part is about the connections between learning theory and the brain. Occasional talks by leading researchers on advanced research topics. Emphasis on current research topics.


6.79306.871
6.7930 Machine Learning for Healthcare

()
Prereqs: 6.3900, 6.4100, 6.7810, 6.7900, 6.8611, or 9.520
Units: 4-0-8

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.79406.231
6.7940 Dynamic Programming and Reinforcement Learning

()
Prereqs: 6.3700 or 18.600
Units: 4-0-8

Dynamic programming as a unifying framework for sequential decision-making under uncertainty, Markov decision problems, and stochastic control. Perfect and imperfect state information models. Finite horizon and infinite horizon problems, including discounted and average cost formulations. Value and policy iteration. Suboptimal methods. Approximate dynamic programming for large-scale problems, and reinforcement learning. Applications and examples drawn from diverse domains. While an analysis prerequisite is not required, mathematical maturity is necessary.


6.83006.869
6.8300 Advances in Computer Vision

()
Prereqs: (6.1200 or 6.3700) and (18.06 or 18.C06)
Units: 3-0-9

Advanced topics in computer vision with a focus on the use of machine learning techniques and applications in graphics and human-computer interface. Covers image representations, texture models, structure-from-motion algorithms, Bayesian techniques, object and scene recognition, tracking, shape modeling, and image databases. Applications may include face recognition, multimodal interaction, interactive systems, cinematic special effects, and photorealistic rendering. Covers topics complementary to 6.8390. Students taking graduate version complete additional assignments.


6.86106.864
6.8610 Quantitative Methods for Natural Language Processing

()
Prereqs: 6.3900 and (18.06 or 18.C06)
Units: 3-0-9

Introduces the study of human language from a computational perspective, including syntactic, semantic and discourse processing models. Emphasizes machine learning methods and algorithms. Uses these methods and models in applications such as syntactic parsing, information extraction, statistical machine translation, dialogue systems. Students taking graduate version complete additional assignments.