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.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

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

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 Julia – Real World Compuation 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 covered include automatic differentiation, matrix calculus, scientific machine learning, parallel and GPU computing, and performance optimization with introductory applications to climate science, economics, agent based modeling, and other areas. Labs and projects focused on performant, readable, composable algorithms and software. Programming will be in Julia. Expect students to have some familiarity with Python, Matlab, or R. No Julia experience necessary.

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.

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.S043
6.S043 Machine Learning for Drug Discovery

()
Prereqs: 6.3900 or 6.C01, or equivalents
Units: 3-0-9

[Meets with 6.S953] Covers concepts and machine learning algorithms for design and development of therapeutics, ranging from early molecular discovery to optimization of clinical trials. Emphasis on learning neural representations of biological objects (e.g., small molecules, proteins, cells) and modeling their interactions. Covers machine learning for property prediction, de-novo molecular design, binding, docking, target discovery, and methods for experimental design. Students enrolled in the graduate version complete additional assignments.

X
6.S062
6.S062 Generative Machine Learning in K-12 Education

()
Prereqs: 6.100A or permission of instructor
Units: 2-0-10

The introduction of transformer architectures in 2017 triggered an evolution in machine learning that today lets anyone make original computer-generated essays, stories, pictures, videos and programs, all without the need to code. Participants in this class will get a foundation to this technology and explore new opportunities that it enables In K-12 education. Much of the work will be project-based involving the construction of new learning tools and testing them with K-12 students and their teachers

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.S043
6.S043 Machine Learning for Drug Discovery

()
Prereqs: 6.3900 or 6.C01, or equivalents
Units: 3-0-9

[Meets with 6.S953] Covers concepts and machine learning algorithms for design and development of therapeutics, ranging from early molecular discovery to optimization of clinical trials. Emphasis on learning neural representations of biological objects (e.g., small molecules, proteins, cells) and modeling their interactions. Covers machine learning for property prediction, de-novo molecular design, binding, docking, target discovery, and methods for experimental design. Students enrolled in the graduate version complete additional assignments.

6.S890
6.S890 Topics in Multiagent Learning

()
Prereqs: 6.1220 or 6.7201, 6.1200
Units: 3-0-9

Presents research topics at the interface of computer science, machine learning, and game theory. Explores computational aspects of strategic behavior for decision-makers in nonstationary multiagent environments. Explores game-theoretic notions of optimality that are applicable to these settings, and how decision-makers may learn optimal strategies from repeated interaction. Presents equilibrium computation algorithms, complexity barriers for equilibria and fixed points, the theory of learning in games, and multi-agent reinforcement learning. Presents practical aspects of learning in games, including recent progress in solving Go, Poker and other large games.


6.S891
6.S891 Algorithmic Counting and Sampling: Probability, Polynomials, and More

()
Prereqs: 6.1220 and (6.3700 or 6.3702 or 6.7700) or permission of instructor
Units: 3-0-9

This course introduces the modern theory of algorithms for sampling from high-dimensional probability distributions and estimating their partition functions. These fundamental algorithmic primitives lie at the foundation of statistics, physics, and machine learning. We will study a diverse set of algorithmic paradigms for solving these problems based on Markov chains, decay of correlations, geometry of polynomials, and more. We will further study the rich set of analytic, probabilistic, and algebraic tools used to give performance guarantees to these algorithms.


6.S898
6.S898 Deep Learning

()
Prereqs: (6.3900 or 6.C01 or 6.3720) and (6.3700 or 6.3800 or 18.05) and (18.C06 or 18.06)
Units: 3-0-9

Fundamentals of deep learning, including both theory and applications. Topics include neural net architectures (MLPs, CNNs, RNNs, graph nets, transformers), geometry and invariances in deep learning, backpropagation and automatic differentiation, learning theory and generalization in high-dimensions, and applications to computer vision, natural language processing, and robotics.


6.S951
6.S951 Modern Mathematical Statistics

()
Prereqs: (6.S06 or 18.C06) and (6.3700 or 18.600) and (18.650 or 6.3720) and 18.100 or equivalent
Units: 3-0-9

Graduate class in mathematical statistics targeted to students interested in statistical research. Requires previous exposure to undergraduate statistics (e.g., 18.650/6.3720), along with strong undergraduate background in linear algebra, probability, and real analysis. Emphasis on proofs and fundamental understanding.


6.S953
6.S953 Machine Learning for Drug Discovery

()
Prereqs: 6.3900 or 6.C01, or equivalents
Units: 3-0-9

[Meets with 6.S043] Covers concepts and machine learning algorithms for design and development of therapeutics, ranging from early molecular discovery to optimization of clinical trials. Emphasis on learning neural representations of biological objects (e.g., small molecules, proteins, cells) and modeling their interactions. Covers machine learning for property prediction, de-novo molecular design, binding, docking, target discovery, and methods for experimental design. Students enrolled in the graduate version complete additional assignments.


6.S955
6.S955 Applied Numerical Algorithms

()
Prereqs: linear algebra, multivariable differential calculus, and basic coding
Units: 3-0-9

Broad survey of numerical algorithms used in graphics, vision, robotics, machine learning, and scientific computing, with emphasis on incorporating these algorithms into downstream applications. We focus on challenges that arise in applying/implementing numerical algorithms and recognizing which numerical methods are relevant to different applications. Topics include numerical linear algebra (QR, LU, SVD matrix factorizations; eigenvectors; conjugate gradients), ordinary and partial differential equations (divided differences, finite element method), and nonlinear systems and optimization (gradient descent, Newton/quasi-Newton methods, gradient-free optimization, constrained optimization). Examples and case studies drawn from the computer science literature.

[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.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.


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.S043
6.S043 Machine Learning for Drug Discovery

()
Prereqs: 6.3900 or 6.C01, or equivalents
Units: 3-0-9

[Meets with 6.S953] Covers concepts and machine learning algorithms for design and development of therapeutics, ranging from early molecular discovery to optimization of clinical trials. Emphasis on learning neural representations of biological objects (e.g., small molecules, proteins, cells) and modeling their interactions. Covers machine learning for property prediction, de-novo molecular design, binding, docking, target discovery, and methods for experimental design. Students enrolled in the graduate version complete additional assignments.

6.S890
6.S890 Topics in Multiagent Learning

()
Prereqs: 6.1220 or 6.7201, 6.1200
Units: 3-0-9

Presents research topics at the interface of computer science, machine learning, and game theory. Explores computational aspects of strategic behavior for decision-makers in nonstationary multiagent environments. Explores game-theoretic notions of optimality that are applicable to these settings, and how decision-makers may learn optimal strategies from repeated interaction. Presents equilibrium computation algorithms, complexity barriers for equilibria and fixed points, the theory of learning in games, and multi-agent reinforcement learning. Presents practical aspects of learning in games, including recent progress in solving Go, Poker and other large games.


6.S891
6.S891 Algorithmic Counting and Sampling: Probability, Polynomials, and More

()
Prereqs: 6.1220 and (6.3700 or 6.3702 or 6.7700) or permission of instructor
Units: 3-0-9

This course introduces the modern theory of algorithms for sampling from high-dimensional probability distributions and estimating their partition functions. These fundamental algorithmic primitives lie at the foundation of statistics, physics, and machine learning. We will study a diverse set of algorithmic paradigms for solving these problems based on Markov chains, decay of correlations, geometry of polynomials, and more. We will further study the rich set of analytic, probabilistic, and algebraic tools used to give performance guarantees to these algorithms.


6.S898
6.S898 Deep Learning

()
Prereqs: (6.3900 or 6.C01 or 6.3720) and (6.3700 or 6.3800 or 18.05) and (18.C06 or 18.06)
Units: 3-0-9

Fundamentals of deep learning, including both theory and applications. Topics include neural net architectures (MLPs, CNNs, RNNs, graph nets, transformers), geometry and invariances in deep learning, backpropagation and automatic differentiation, learning theory and generalization in high-dimensions, and applications to computer vision, natural language processing, and robotics.


6.S951
6.S951 Modern Mathematical Statistics

()
Prereqs: (6.S06 or 18.C06) and (6.3700 or 18.600) and (18.650 or 6.3720) and 18.100 or equivalent
Units: 3-0-9

Graduate class in mathematical statistics targeted to students interested in statistical research. Requires previous exposure to undergraduate statistics (e.g., 18.650/6.3720), along with strong undergraduate background in linear algebra, probability, and real analysis. Emphasis on proofs and fundamental understanding.


6.S953
6.S953 Machine Learning for Drug Discovery

()
Prereqs: 6.3900 or 6.C01, or equivalents
Units: 3-0-9

[Meets with 6.S043] Covers concepts and machine learning algorithms for design and development of therapeutics, ranging from early molecular discovery to optimization of clinical trials. Emphasis on learning neural representations of biological objects (e.g., small molecules, proteins, cells) and modeling their interactions. Covers machine learning for property prediction, de-novo molecular design, binding, docking, target discovery, and methods for experimental design. Students enrolled in the graduate version complete additional assignments.


6.S955
6.S955 Applied Numerical Algorithms

()
Prereqs: linear algebra, multivariable differential calculus, and basic coding
Units: 3-0-9

Broad survey of numerical algorithms used in graphics, vision, robotics, machine learning, and scientific computing, with emphasis on incorporating these algorithms into downstream applications. We focus on challenges that arise in applying/implementing numerical algorithms and recognizing which numerical methods are relevant to different applications. Topics include numerical linear algebra (QR, LU, SVD matrix factorizations; eigenvectors; conjugate gradients), ordinary and partial differential equations (divided differences, finite element method), and nonlinear systems and optimization (gradient descent, Newton/quasi-Newton methods, gradient-free optimization, constrained optimization). Examples and case studies drawn from the computer science literature.

[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.

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.

[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.


6.S981
6.S981 Introduction to Program Synthesis

()
Prereqs: 6.1010, 6.1200 or equivalent
Units: 3-0-9

The goal of this course is to provide a comprehensive introduction to the field of Software synthesis, an emerging field that sits at the intersection of programming systems, formal methods and artificial intelligence. The course will be divided into three major sections: the first will focus on program induction from examples and will cover a variety of techniques to search large program spaces. The second section will focus on synthesis from expressive specifications and the interaction between synthesis and verification. Finally, the third unit will focus on synthesis with quantitative specifications and the intersection between program synthesis and machine learning. The course will be graded on the basis of three problem sets and an open ended final project.

[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.

[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 this course we will learn about the evolution of proofs in computer science. In particular, we will learn about fascinating proof systems such as interactive proofs, multi-prover interactive proofs and probabilistically checkable proofs. We will then show how to use cryptography to convert these powerful proof systems into succinct non-interactive arguments (SNARGs).


6.S890
6.S890 Topics in Multiagent Learning

()
Prereqs: 6.1220 or 6.7201, 6.1200
Units: 3-0-9

Presents research topics at the interface of computer science, machine learning, and game theory. Explores computational aspects of strategic behavior for decision-makers in nonstationary multiagent environments. Explores game-theoretic notions of optimality that are applicable to these settings, and how decision-makers may learn optimal strategies from repeated interaction. Presents equilibrium computation algorithms, complexity barriers for equilibria and fixed points, the theory of learning in games, and multi-agent reinforcement learning. Presents practical aspects of learning in games, including recent progress in solving Go, Poker and other large games.

6.S891
6.S891 Algorithmic Counting and Sampling: Probability, Polynomials, and More

()
Prereqs: 6.1220 and (6.3700 or 6.3702 or 6.7700) or permission of instructor
Units: 3-0-9

This course introduces the modern theory of algorithms for sampling from high-dimensional probability distributions and estimating their partition functions. These fundamental algorithmic primitives lie at the foundation of statistics, physics, and machine learning. We will study a diverse set of algorithmic paradigms for solving these problems based on Markov chains, decay of correlations, geometry of polynomials, and more. We will further study the rich set of analytic, probabilistic, and algebraic tools used to give performance guarantees to these algorithms.


6.S896
6.S896 Algorithmic Statistics

()
Prereqs: 6.1220, 18.600, 18.200 (other probability and linear algebras subjects also accepted), graduate leve
Units: 3-0-9

Introduction to algorithms and computational complexity for high-dimensional statistical inference problems, with focus on provable polynomial-time guarantees. Covers modern algorithm design techniques via convex programming and Sum of Squares method, graphical models as a language to describe complex but tractable high-dimensional learning problems and associated learning algorithms, and basics of complexity for statistical problems, including statistical query and low-degree lower bounds and reductions.


6.S954
6.S954 Algorithmic Lower Bounds: Fun with Hardness Proofs

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

A practical algorithmic approach to proving problems computationally hard for various complexity classes: P, NP, ASP, #P, APX, W[1], PSPACE, EXPTIME, PPAD, R. Variety of hardness proof styles, reductions, and gadgets. Hardness of approximation, counting solutions, and fixed-parameter algorithms. Connection between games and computation, with many examples drawn from games and puzzles.


6.S955
6.S955 Applied Numerical Algorithms

()
Prereqs: linear algebra, multivariable differential calculus, and basic coding
Units: 3-0-9

Broad survey of numerical algorithms used in graphics, vision, robotics, machine learning, and scientific computing, with emphasis on incorporating these algorithms into downstream applications. We focus on challenges that arise in applying/implementing numerical algorithms and recognizing which numerical methods are relevant to different applications. Topics include numerical linear algebra (QR, LU, SVD matrix factorizations; eigenvectors; conjugate gradients), ordinary and partial differential equations (divided differences, finite element method), and nonlinear systems and optimization (gradient descent, Newton/quasi-Newton methods, gradient-free optimization, constrained optimization). Examples and case studies drawn from the computer science literature.

[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.

[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.

[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 this course we will learn about the evolution of proofs in computer science. In particular, we will learn about fascinating proof systems such as interactive proofs, multi-prover interactive proofs and probabilistically checkable proofs. We will then show how to use cryptography to convert these powerful proof systems into succinct non-interactive arguments (SNARGs).


6.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.S890
6.S890 Topics in Multiagent Learning

()
Prereqs: 6.1220 or 6.7201, 6.1200
Units: 3-0-9

Presents research topics at the interface of computer science, machine learning, and game theory. Explores computational aspects of strategic behavior for decision-makers in nonstationary multiagent environments. Explores game-theoretic notions of optimality that are applicable to these settings, and how decision-makers may learn optimal strategies from repeated interaction. Presents equilibrium computation algorithms, complexity barriers for equilibria and fixed points, the theory of learning in games, and multi-agent reinforcement learning. Presents practical aspects of learning in games, including recent progress in solving Go, Poker and other large games.


6.S891
6.S891 Algorithmic Counting and Sampling: Probability, Polynomials, and More

()
Prereqs: 6.1220 and (6.3700 or 6.3702 or 6.7700) or permission of instructor
Units: 3-0-9

This course introduces the modern theory of algorithms for sampling from high-dimensional probability distributions and estimating their partition functions. These fundamental algorithmic primitives lie at the foundation of statistics, physics, and machine learning. We will study a diverse set of algorithmic paradigms for solving these problems based on Markov chains, decay of correlations, geometry of polynomials, and more. We will further study the rich set of analytic, probabilistic, and algebraic tools used to give performance guarantees to these algorithms.


6.S896
6.S896 Algorithmic Statistics

()
Prereqs: 6.1220, 18.600, 18.200 (other probability and linear algebras subjects also accepted), graduate leve
Units: 3-0-9

Introduction to algorithms and computational complexity for high-dimensional statistical inference problems, with focus on provable polynomial-time guarantees. Covers modern algorithm design techniques via convex programming and Sum of Squares method, graphical models as a language to describe complex but tractable high-dimensional learning problems and associated learning algorithms, and basics of complexity for statistical problems, including statistical query and low-degree lower bounds and reductions.


6.S954
6.S954 Algorithmic Lower Bounds: Fun with Hardness Proofs

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

A practical algorithmic approach to proving problems computationally hard for various complexity classes: P, NP, ASP, #P, APX, W[1], PSPACE, EXPTIME, PPAD, R. Variety of hardness proof styles, reductions, and gadgets. Hardness of approximation, counting solutions, and fixed-parameter algorithms. Connection between games and computation, with many examples drawn from games and puzzles.


6.S955
6.S955 Applied Numerical Algorithms

()
Prereqs: linear algebra, multivariable differential calculus, and basic coding
Units: 3-0-9

Broad survey of numerical algorithms used in graphics, vision, robotics, machine learning, and scientific computing, with emphasis on incorporating these algorithms into downstream applications. We focus on challenges that arise in applying/implementing numerical algorithms and recognizing which numerical methods are relevant to different applications. Topics include numerical linear algebra (QR, LU, SVD matrix factorizations; eigenvectors; conjugate gradients), ordinary and partial differential equations (divided differences, finite element method), and nonlinear systems and optimization (gradient descent, Newton/quasi-Newton methods, gradient-free optimization, constrained optimization). Examples and case studies drawn from the computer science literature.


6.S981
6.S981 Introduction to Program Synthesis

()
Prereqs: 6.1010, 6.1200 or equivalent
Units: 3-0-9

The goal of this course is to provide a comprehensive introduction to the field of Software synthesis, an emerging field that sits at the intersection of programming systems, formal methods and artificial intelligence. The course will be divided into three major sections: the first will focus on program induction from examples and will cover a variety of techniques to search large program spaces. The second section will focus on synthesis from expressive specifications and the interaction between synthesis and verification. Finally, the third unit will focus on synthesis with quantitative specifications and the intersection between program synthesis and machine learning. The course will be graded on the basis of three problem sets and an open ended final project.

[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. 

[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.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.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.

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.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.


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.


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.


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.


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.S043
6.S043 Machine Learning for Drug Discovery

()
Prereqs: 6.3900 or 6.C01, or equivalents
Units: 3-0-9

[Meets with 6.S953] Covers concepts and machine learning algorithms for design and development of therapeutics, ranging from early molecular discovery to optimization of clinical trials. Emphasis on learning neural representations of biological objects (e.g., small molecules, proteins, cells) and modeling their interactions. Covers machine learning for property prediction, de-novo molecular design, binding, docking, target discovery, and methods for experimental design. Students enrolled in the graduate version complete additional assignments.


6.S890
6.S890 Topics in Multiagent Learning

()
Prereqs: 6.1220 or 6.7201, 6.1200
Units: 3-0-9

Presents research topics at the interface of computer science, machine learning, and game theory. Explores computational aspects of strategic behavior for decision-makers in nonstationary multiagent environments. Explores game-theoretic notions of optimality that are applicable to these settings, and how decision-makers may learn optimal strategies from repeated interaction. Presents equilibrium computation algorithms, complexity barriers for equilibria and fixed points, the theory of learning in games, and multi-agent reinforcement learning. Presents practical aspects of learning in games, including recent progress in solving Go, Poker and other large games.

6.S891
6.S891 Algorithmic Counting and Sampling: Probability, Polynomials, and More

()
Prereqs: 6.1220 and (6.3700 or 6.3702 or 6.7700) or permission of instructor
Units: 3-0-9

This course introduces the modern theory of algorithms for sampling from high-dimensional probability distributions and estimating their partition functions. These fundamental algorithmic primitives lie at the foundation of statistics, physics, and machine learning. We will study a diverse set of algorithmic paradigms for solving these problems based on Markov chains, decay of correlations, geometry of polynomials, and more. We will further study the rich set of analytic, probabilistic, and algebraic tools used to give performance guarantees to these algorithms.


6.S898
6.S898 Deep Learning

()
Prereqs: (6.3900 or 6.C01 or 6.3720) and (6.3700 or 6.3800 or 18.05) and (18.C06 or 18.06)
Units: 3-0-9

Fundamentals of deep learning, including both theory and applications. Topics include neural net architectures (MLPs, CNNs, RNNs, graph nets, transformers), geometry and invariances in deep learning, backpropagation and automatic differentiation, learning theory and generalization in high-dimensions, and applications to computer vision, natural language processing, and robotics.


6.S951
6.S951 Modern Mathematical Statistics

()
Prereqs: (6.S06 or 18.C06) and (6.3700 or 18.600) and (18.650 or 6.3720) and 18.100 or equivalent
Units: 3-0-9

Graduate class in mathematical statistics targeted to students interested in statistical research. Requires previous exposure to undergraduate statistics (e.g., 18.650/6.3720), along with strong undergraduate background in linear algebra, probability, and real analysis. Emphasis on proofs and fundamental understanding.


6.S953
6.S953 Machine Learning for Drug Discovery

()
Prereqs: 6.3900 or 6.C01, or equivalents
Units: 3-0-9

[Meets with 6.S043] Covers concepts and machine learning algorithms for design and development of therapeutics, ranging from early molecular discovery to optimization of clinical trials. Emphasis on learning neural representations of biological objects (e.g., small molecules, proteins, cells) and modeling their interactions. Covers machine learning for property prediction, de-novo molecular design, binding, docking, target discovery, and methods for experimental design. Students enrolled in the graduate version complete additional assignments.


6.S955
6.S955 Applied Numerical Algorithms

()
Prereqs: linear algebra, multivariable differential calculus, and basic coding
Units: 3-0-9

Broad survey of numerical algorithms used in graphics, vision, robotics, machine learning, and scientific computing, with emphasis on incorporating these algorithms into downstream applications. We focus on challenges that arise in applying/implementing numerical algorithms and recognizing which numerical methods are relevant to different applications. Topics include numerical linear algebra (QR, LU, SVD matrix factorizations; eigenvectors; conjugate gradients), ordinary and partial differential equations (divided differences, finite element method), and nonlinear systems and optimization (gradient descent, Newton/quasi-Newton methods, gradient-free optimization, constrained optimization). Examples and case studies drawn from the computer science literature.


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.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

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


6.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.C25
6.C25 Julia – Real World Compuation 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 covered include automatic differentiation, matrix calculus, scientific machine learning, parallel and GPU computing, and performance optimization with introductory applications to climate science, economics, agent based modeling, and other areas. Labs and projects focused on performant, readable, composable algorithms and software. Programming will be in Julia. Expect students to have some familiarity with Python, Matlab, or R. No Julia experience necessary.


6.C27
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.


6.S043
6.S043 Machine Learning for Drug Discovery

()
Prereqs: 6.3900 or 6.C01, or equivalents
Units: 3-0-9

[Meets with 6.S953] Covers concepts and machine learning algorithms for design and development of therapeutics, ranging from early molecular discovery to optimization of clinical trials. Emphasis on learning neural representations of biological objects (e.g., small molecules, proteins, cells) and modeling their interactions. Covers machine learning for property prediction, de-novo molecular design, binding, docking, target discovery, and methods for experimental design. Students enrolled in the graduate version complete additional assignments.


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.


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.