6-1Electrical Science and Engineering

6-2Electrical Engineering and Computer Science

6-3Computer Science and Engineering

6-4Artificial Intelligence and Decision Making

6-5Electrical Engineering with Computing

6-7Computer Science and Molecular Biology

6-9Computation and Cognition

6-14Computer Science, Economics, and Data Science

MEngMasters of Engineering

MEng (6-7)Masters of Engineering

MEng (6-14)Masters of Engineering

Notes:

6-1 Electrical Science and Engineering (only if entry term before Fall 2024)

6-1/8-flex EE for double majors in Physics(only if entry term before Fall 2024)

6-2 Electrical Engineering and Computer Science(only if entry term before Fall 2024)

6-2 Electrical Engineering and Computer Science(only if entry term before Fall 2022)

6-3 Computer Science and Engineering

6-3 Computer Science and Engineering(only if entry term before Fall 2022)

6-4 Artificial Intelligence and Decision Making

6-4 Artificial Intelligence and Decision Making(only if entry term before Fall 2024)

6-5 Electrical Engineering with Computing

6-7 Computer Science and Molecular Biology

6-7 Computer Science and Molecular Biology(only if entry term before Fall 2024)

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, 6-5)

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 2024Spring 2025
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 or 6.1810)) or permission of instructor
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. 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. Enrollment limited.

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

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.2320
6.2320 Silicon Photonics

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

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

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 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.4300
6.4300 Introduction to Computer Vision

()
Prereqs: 6.3900, (18.06 or 18.C06), and (6.1200, 6.3700, 6.3800, 18.05, or 18.600)
Units: 3-0-9

Provides an introduction to computer vision, covering topics from early vision to mid- and high-level vision, including low-level image analysis, edge detection, image transformations for image synthesis, methods for 3D scene reconstruction, motion analysis and tracking. Additionally, presents basics of machine learning, convolutional neural networks, and transformers in the context of image and video data for object classification, detection, and segmentation.

X 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.1210 or 6.1220) and (6.1800 or 6.1810)) or permission of instructor
Units: 3-0-9

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

X
6.59316.812
6.5931 Hardware Architecture for Deep Learning

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

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

X
6.5951
6.5951 Secure Hardware Design

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

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

X
6.63316.602
6.6331 Fundamentals of Photonics

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

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

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

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

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

X
6.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: (6.100B and 7.05) 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 teams to engineer hardware/software systems that solve important, challenging real-world problems. In pursuit of these projects, students engage at every step of the full-stack development process, from printed circuit board design to firmware to server to industrial design. Teams design and build functional prototypes of complete hardware/software systems. Grading is based on individual- and team-based elements. Enrollment may be limited due to staffing and space requirements.

X X X
6.90306.163
6.9030 Strobe Project Laboratory

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

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

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

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

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

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

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

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

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

()
Prereqs: none
Units: 3-4-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.C571
6.C571 Optimization Methods

()
Prereqs: 18.C06 or permission of instructor
Units: 4-0-8

Introduction to the methods and applications of optimization. Topics include linear optimization, duality, non-linear optimization, integer optimization, and optimization under uncertainty. Instruction provided in modeling techniques to address problems arising in practice, mathematical theory to understand the structure of optimization problems, computational algorithms to solve complex optimization problems, and practical applications. Covers several examples and in-depth case studies based on real-world data to showcase impactful applications of optimization across management and engineering. Computational exercises based on the Julia-based programming language JuMP. Includes a term project. Basic competency in computational programming and linear algebra recommended. Students taking graduate version complete additional assignments. This subject was previously listed as 6.7201. One section primarily reserved for Sloan students; check syllabus for details.

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

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

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

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

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

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

X
6.S965
6.S965 Special Studies: EECS

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

Opportunity for study of graduate-level topics related to electrical engineering and computer science but not included elsewhere in the curriculum. Registration under this subject normally used for situations involving small study groups. Normal registration is for 12 units. Registration subject to approval of professor in charge. Consult the department for details.

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 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.30206.187
6.3020 Fundamentals of Music Processing

()
Prereqs: 6.3000 and 21M.051
Units: 3-0-9

Analyzes recorded music in digital audio form using advanced signal processing and optimization techniques to understand higher-level musical meaning. Covers fundamental tools like windowing, feature extraction, discrete and short-time Fourier transforms, chromagrams, and onset detection. Addresses analysis methods including dynamic time warping, dynamic programming, self-similarity matrices, and matrix factorization. Explores a variety of applications, such as event classification, audio alignment, chord recognition, structural analysis, tempo and beat tracking, content-based audio retrieval, and audio decomposition. Students taking graduate version complete different assignments.


6.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.4300
6.4300 Introduction to Computer Vision

()
Prereqs: 6.3900, (18.06 or 18.C06), and (6.1200, 6.3700, 6.3800, 18.05, or 18.600)
Units: 3-0-9

Provides an introduction to computer vision, covering topics from early vision to mid- and high-level vision, including low-level image analysis, edge detection, image transformations for image synthesis, methods for 3D scene reconstruction, motion analysis and tracking. Additionally, presents basics of machine learning, convolutional neural networks, and transformers in the context of image and video data for object classification, detection, and segmentation.


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.1210 or 6.1220) and (6.1800 or 6.1810)) 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.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.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: (6.100B and 7.05) 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.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.

[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.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.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.03, 18.06, 18.700, or 18.C06)
Units: 4-0-8

Introduction to the principles and algorithms of machine learning from an optimization perspective. Topics include linear and non-linear models for supervised, unsupervised, and reinforcement learning, with a focus on gradient-based methods and neural-network architectures. Previous experience with algorithms may be helpful.


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.C01
6.C01 Modeling with Machine Learning: from Algorithms to Applications

()
Prereqs/[Coreqs]: GIR:CAL2 and 6.100A; [1.C01, 2.C01, 3.C01, 6.C011, 7.C01, or 22.C01]
Units: 2-0-4

Focuses on modeling with machine learning methods with an eye towards applications in engineering and sciences. Introduction to modern machine learning methods, from supervised to unsupervised models, with an emphasis on newer neural approaches. Emphasis on the understanding of how and why the methods work from the point of view of modeling, and when they are applicable. Using concrete examples, covers formulation of machine learning tasks, adapting and extending methods to given problems, and how the methods can and should be evaluated. Students taking graduate version complete additional assignments. Students cannot receive credit without completion of a 6-unit disciplinary module in the same semester. Enrollment may be limited.

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

()
Prereqs: 6.100A, 6.C01, (6.1200 or 6.3700), and (18.06 or 18.C06)
Units: 3-0-3

Focuses on in-depth modeling of engineering tasks as machine learning problems. Emphasizes framing, method design, and interpretation of results. In comparison to broader prerequisite 6.C01, this project-oriented subject consists of deep dives into select technical areas or engineering tasks involving both supervised and exploratory uses of machine learning. Explores technical areas such robustness, interpretability, fairness and engineering tasks such as recommender systems, performance optimization, and automated design. Students taking graduate version complete additional assignments. Students cannot receive credit without completion of the core subject 6.C01. Enrollment may be limited.


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

()
Prereqs/[Coreqs]: GIR:CAL2 and 6.100A; [1.C01, 2.C01, 3.C01, 6.C011, 7.C01, or 22.C01]
Units: 2-0-4

Focuses on modeling with machine learning methods with an eye towards applications in engineering and sciences. Introduction to modern machine learning methods, from supervised to unsupervised models, with an emphasis on newer neural approaches. Emphasis on the understanding of how and why the methods work from the point of view of modeling, and when they are applicable. Using concrete examples, covers formulation of machine learning tasks, adapting and extending methods to given problems, and how the methods can and should be evaluated. Students taking graduate version complete additional assignments. Students cannot receive credit without completion of a 6-unit disciplinary module in the same semester. Enrollment may be limited.

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

()
Prereqs: 6.100A, 6.C51, (6.1200 or 6.3700), and (18.06 or 18.C06)
Units: 3-0-3

Focuses on in-depth modeling of engineering tasks as machine learning problems. Emphasizes framing, method design, and interpretation of results. In comparison to broader co-requisite 6.C01/6.C51, this project oriented subject consists of deep dives into select technical areas or engineering tasks involving both supervised and exploratory uses of machine learning. Deep dives into technical areas such robustness, interpretability, fairness; engineering tasks such as recommender systems, performance optimization, automated design. Students taking graduate version complete additional assignments. Students cannot receive credit without completion of the core subject 6.C51. Enrollment may be limited.

6.C35
6.C35 Interactive Data Visualization and Society

()
Prereqs: none
Units: 3-4-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.C571
6.C571 Optimization Methods

()
Prereqs: 18.C06 or permission of instructor
Units: 4-0-8

Introduction to the methods and applications of optimization. Topics include linear optimization, duality, non-linear optimization, integer optimization, and optimization under uncertainty. Instruction provided in modeling techniques to address problems arising in practice, mathematical theory to understand the structure of optimization problems, computational algorithms to solve complex optimization problems, and practical applications. Covers several examples and in-depth case studies based on real-world data to showcase impactful applications of optimization across management and engineering. Computational exercises based on the Julia-based programming language JuMP. Includes a term project. Basic competency in computational programming and linear algebra recommended. Students taking graduate version complete additional assignments. This subject was previously listed as 6.7201. One section primarily reserved for Sloan students; check syllabus for details.


9.660
9.660 Computational Cognitive Science

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

Introduction to computational theories of human cognition. Focuses on principles of inductive learning and inference, and the representation of knowledge. Computational frameworks 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.

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.30206.187
6.3020 Fundamentals of Music Processing

()
Prereqs: 6.3000 and 21M.051
Units: 3-0-9

Analyzes recorded music in digital audio form using advanced signal processing and optimization techniques to understand higher-level musical meaning. Covers fundamental tools like windowing, feature extraction, discrete and short-time Fourier transforms, chromagrams, and onset detection. Addresses analysis methods including dynamic time warping, dynamic programming, self-similarity matrices, and matrix factorization. Explores a variety of applications, such as event classification, audio alignment, chord recognition, structural analysis, tempo and beat tracking, content-based audio retrieval, and audio decomposition. Students taking graduate version complete different assignments.


6.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.4300
6.4300 Introduction to Computer Vision

()
Prereqs: 6.3900, (18.06 or 18.C06), and (6.1200, 6.3700, 6.3800, 18.05, or 18.600)
Units: 3-0-9

Provides an introduction to computer vision, covering topics from early vision to mid- and high-level vision, including low-level image analysis, edge detection, image transformations for image synthesis, methods for 3D scene reconstruction, motion analysis and tracking. Additionally, presents basics of machine learning, convolutional neural networks, and transformers in the context of image and video data for object classification, detection, and segmentation.


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.1210 or 6.1220) and (6.1800 or 6.1810)) 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.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.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: (6.100B and 7.05) 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.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.

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


6.58906.888
6.59006.823
6.5900 Computer System Architecture

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

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

6.59306.825
6.5930 Hardware Architecture for Deep Learning

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

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


6.59316.812
6.5931 Hardware Architecture for Deep Learning

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

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


6.5940
6.5940 TinyML and Efficient Deep Learning Computing

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

Introduces efficient deep learning computing techniques that enable powerful deep learning applications on resource-constrained devices. Topics include model compression, pruning, quantization, neural architecture search, distributed training, data/model parallellism, gradient compression, on-device fine-tuning. It also introduces application-specific acceleration techniques for video recognition, point cloud, and generative AI (diffusion model, LLM). Students will get hands-on experience accelerating deep learning applications with an open-ended design project.


6.5951
6.5951 Secure Hardware Design

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

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

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.39506.404
6.3950 AI, Decision Making, and Society

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

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


6.45906.805
6.4590 Foundations of Information Policy

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

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

6.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-4-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.4500
6.4500 Design for the Web: Languages and User Interfaces

()
Prereqs/[Coreqs]: [6.1010]
Units: 2-2-8

Instruction in the principles and technologies for designing usable user interfaces for Web applications. Focuses on the key principles and methods of user interface design, including learnability, efficiency, safety, prototyping, and user testing. Provides instruction in the core web languages of HTML, CSS, and Javascript, their different roles, and the rationales for the widely varying designs. These languages are used to create usable web interfaces and applications. Covers fundamentals of graphic design theory, as design and usability go hand in hand.


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-4-8

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


6.C85
6.C85 Interactive Data Visualization and Society

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

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

[CS] Programming Principles and Tools
6.10406.170
6.1040 Software Design

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

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


6.10606.172
6.1060 Software Performance Engineering

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

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


6.11006.035
6.1100 Computer Language Engineering

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

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


6.11206.818
6.1120 Dynamic Computer Language Engineering

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

Studies the design and implementation of modern, dynamic programming languages. Topics include fundamental approaches for parsing, semantics and interpretation, virtual machines, garbage collection, just-in-time machine code generation, and optimization. Includes a semester-long, group project that delivers a virtual machine that spans all of these topics.


6.50606.827
6.5060 Algorithm Engineering

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

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

6.50806.836
6.5080 Multicore Programming

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

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


6.50816.816
6.5081 Multicore Programming

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

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


6.51106.820
6.5110 Foundations of Program Analysis

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

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


6.51206.822
6.5120 Formal Reasoning About Programs

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

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

[CS] Systems
6.16006.053
6.1600 Foundations of Computer Security

()
Prereqs: (6.1210 and (6.1800 or 6.1810)) or permission of instructor
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

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

Covers advanced applications of cryptography, implementation of cryptographic primitives, and cryptanalysis. Topics may include: proof systems; zero knowledge; secret sharing; multiparty computation; fully homomorphic encryption; electronic voting; design of block ciphers and hash functions; elliptic-curve and lattice-based cryptosystems; and algorithms for collision-finding, discrete-log, and factoring. Assignments include a final group project. Topics may vary from year to year.

6.56606.858
6.5660 Computer Systems Security

()
Prereqs: 6.1020 and (6.1800 or 6.1810)
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 or 6.1810)
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.1210 or 6.1220) and (6.1800 or 6.1810)) 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.1210 or 6.1220) and (6.1800 or 6.1810)) 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, 6.1810, or 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.52406.855
6.5240 Sublinear Time Algorithms

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

Sublinear time algorithms understand parameters and properties of input data after viewing only a minuscule fraction of it. Tools from number theory, combinatorics, linear algebra, optimization theory, distributed algorithms, statistics, and probability are covered. Topics include: testing and estimating properties of distributions, functions, graphs, strings, point sets, and various combinatorial objects.


6.52506.852
6.5250 Distributed Algorithms

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

Design and analysis of algorithms, emphasizing those suitable for use in distributed networks. Covers various topics including distributed graph algorithms, locality constraints, bandwidth limitations and communication complexity, process synchronization, allocation of computational resources, fault tolerance, and asynchrony. No background in distributed systems required.


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 Foundations of Cryptography

()
Prereqs: 6.1220, 6.1400, or 18.4041
Units: 3-0-9

A rigorous introduction to modern cryptography. Emphasis on the fundamental cryptographic primitives such as public-key encryption, digital signatures, and pseudo-random number generation, as well as advanced cryptographic primitives such as zero-knowledge proofs, homomorphic encryption, and secure multiparty computation.


6.56306.876
6.5630 Advanced Topics in Cryptography

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

In-depth exploration of recent results in cryptography.

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


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.2320
6.2320 Silicon Photonics

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

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

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.63206.632
6.6320 Silicon Photonics

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

Covers the foundational concepts behind silicon photonics based in electromagnetics, optics, and device physics; the design of silicon-photonics-based devices (including waveguides, couplers, splitters, resonators, antennas, modulators, detectors, and lasers) using both theoretical analysis and numerical simulation tools; the engineering of silicon-photonics-based circuits and systems with a focus on a variety of applications areas (spanning computing, communications, sensing, quantum, displays, and biophotonics); the development of silicon-photonics-based platforms, including fabrication and materials considerations; and the characterization of these silicon-photonics-based devices and systems through laboratory demonstrations and projects. 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.

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

[EE] Energy Systems
6.22006.061
6.2200 Electric Energy Systems

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

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

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

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

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


6.22206.131
6.2220 Power Electronics Laboratory

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

Introduces the design and construction of power electronic circuits and motor drives. Laboratory exercises include the construction of drive circuitry for an electric go-cart, flash strobes, computer power supplies, three-phase inverters for AC motors, and resonant drives for lamp ballasts and induction heating. Basic electric machines introduced include DC, induction, and permanent magnet motors, with drive considerations. Provides instruction in written and oral communication. Students taking independent inquiry version 6.2221 expand the scope of their laboratory project.


6.22216.1311
6.2221 Power Electronics Laboratory - Independent Inquiry

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

Introduces the design and construction of power electronic circuits and motor drives. Laboratory exercises include the construction of drive circuitry for an electric go-cart, flash strobes, computer power supplies, three-phase inverters for AC motors, and resonant drives for lamp ballasts and induction heating. Basic electric machines introduced include DC, induction, and permanent magnet motors, with drive considerations. Provides instruction in written and oral communication. To satisfy the independent inquiry component of this subject, students expand the scope of their laboratory project.


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

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

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

[EE] Hardware Design
6.19206.175
6.1920 Constructive Computer Architecture

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

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


6.20506.111
6.2050 Digital Systems Laboratory

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

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


6.20606.115
6.2060 Microcomputer Project Laboratory

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

Introduces analysis and design of embedded systems. 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. Enrollment limited.


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 or 6.1810)) or permission of instructor
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.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.4500
6.4500 Design for the Web: Languages and User Interfaces

()
Prereqs/[Coreqs]: [6.1010]
Units: 2-2-8

Instruction in the principles and technologies for designing usable user interfaces for Web applications. Focuses on the key principles and methods of user interface design, including learnability, efficiency, safety, prototyping, and user testing. Provides instruction in the core web languages of HTML, CSS, and Javascript, their different roles, and the rationales for the widely varying designs. These languages are used to create usable web interfaces and applications. Covers fundamentals of graphic design theory, as design and usability go hand in hand.


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.52406.855
6.5240 Sublinear Time Algorithms

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

Sublinear time algorithms understand parameters and properties of input data after viewing only a minuscule fraction of it. Tools from number theory, combinatorics, linear algebra, optimization theory, distributed algorithms, statistics, and probability are covered. Topics include: testing and estimating properties of distributions, functions, graphs, strings, point sets, and various combinatorial objects.


6.52506.852
6.5250 Distributed Algorithms

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

Design and analysis of algorithms, emphasizing those suitable for use in distributed networks. Covers various topics including distributed graph algorithms, locality constraints, bandwidth limitations and communication complexity, process synchronization, allocation of computational resources, fault tolerance, and asynchrony. No background in distributed systems required.


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

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

Covers advanced applications of cryptography, implementation of cryptographic primitives, and cryptanalysis. Topics may include: proof systems; zero knowledge; secret sharing; multiparty computation; fully homomorphic encryption; electronic voting; design of block ciphers and hash functions; elliptic-curve and lattice-based cryptosystems; and algorithms for collision-finding, discrete-log, and factoring. Assignments include a final group project. Topics may vary from year to year.


6.56206.875
6.5620 Foundations of Cryptography

()
Prereqs: 6.1220, 6.1400, or 18.4041
Units: 3-0-9

A rigorous introduction to modern cryptography. Emphasis on the fundamental cryptographic primitives such as public-key encryption, digital signatures, and pseudo-random number generation, as well as advanced cryptographic primitives such as zero-knowledge proofs, homomorphic encryption, and secure multiparty computation.

6.56306.876
6.5630 Advanced Topics in Cryptography

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

In-depth exploration of recent results in cryptography.


6.56606.858
6.5660 Computer Systems Security

()
Prereqs: 6.1020 and (6.1800 or 6.1810)
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 or 6.1810)
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.1210 or 6.1220) and (6.1800 or 6.1810)) 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.1210 or 6.1220) and (6.1800 or 6.1810)) 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, 6.1810, or 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-4-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.

[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.03, 18.06, 18.700, or 18.C06)
Units: 4-0-8

Introduction to the principles and algorithms of machine learning from an optimization perspective. Topics include linear and non-linear models for supervised, unsupervised, and reinforcement learning, with a focus on gradient-based methods and neural-network architectures. Previous experience with algorithms may be helpful.


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.4300
6.4300 Introduction to Computer Vision

()
Prereqs: 6.3900, (18.06 or 18.C06), and (6.1200, 6.3700, 6.3800, 18.05, or 18.600)
Units: 3-0-9

Provides an introduction to computer vision, covering topics from early vision to mid- and high-level vision, including low-level image analysis, edge detection, image transformations for image synthesis, methods for 3D scene reconstruction, motion analysis and tracking. Additionally, presents basics of machine learning, convolutional neural networks, and transformers in the context of image and video data for object classification, detection, and segmentation.


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

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

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


6.72016.215
6.7960
6.7960 Deep Learning

()
Prereqs: 18.05 and (6.3720, 6.3900, or 6.C01)
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.C01
6.C01 Modeling with Machine Learning: from Algorithms to Applications

()
Prereqs/[Coreqs]: GIR:CAL2 and 6.100A; [1.C01, 2.C01, 3.C01, 6.C011, 7.C01, or 22.C01]
Units: 2-0-4

Focuses on modeling with machine learning methods with an eye towards applications in engineering and sciences. Introduction to modern machine learning methods, from supervised to unsupervised models, with an emphasis on newer neural approaches. Emphasis on the understanding of how and why the methods work from the point of view of modeling, and when they are applicable. Using concrete examples, covers formulation of machine learning tasks, adapting and extending methods to given problems, and how the methods can and should be evaluated. Students taking graduate version complete additional assignments. Students cannot receive credit without completion of a 6-unit disciplinary module in the same semester. Enrollment may be limited.

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

()
Prereqs: 6.100A, 6.C01, (6.1200 or 6.3700), and (18.06 or 18.C06)
Units: 3-0-3

Focuses on in-depth modeling of engineering tasks as machine learning problems. Emphasizes framing, method design, and interpretation of results. In comparison to broader prerequisite 6.C01, this project-oriented subject consists of deep dives into select technical areas or engineering tasks involving both supervised and exploratory uses of machine learning. Explores technical areas such robustness, interpretability, fairness and engineering tasks such as recommender systems, performance optimization, and automated design. Students taking graduate version complete additional assignments. Students cannot receive credit without completion of the core subject 6.C01. Enrollment may be limited.


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

()
Prereqs/[Coreqs]: GIR:CAL2 and 6.100A; [1.C01, 2.C01, 3.C01, 6.C011, 7.C01, or 22.C01]
Units: 2-0-4

Focuses on modeling with machine learning methods with an eye towards applications in engineering and sciences. Introduction to modern machine learning methods, from supervised to unsupervised models, with an emphasis on newer neural approaches. Emphasis on the understanding of how and why the methods work from the point of view of modeling, and when they are applicable. Using concrete examples, covers formulation of machine learning tasks, adapting and extending methods to given problems, and how the methods can and should be evaluated. Students taking graduate version complete additional assignments. Students cannot receive credit without completion of a 6-unit disciplinary module in the same semester. Enrollment may be limited.

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

()
Prereqs: 6.100A, 6.C51, (6.1200 or 6.3700), and (18.06 or 18.C06)
Units: 3-0-3

Focuses on in-depth modeling of engineering tasks as machine learning problems. Emphasizes framing, method design, and interpretation of results. In comparison to broader co-requisite 6.C01/6.C51, this project oriented subject consists of deep dives into select technical areas or engineering tasks involving both supervised and exploratory uses of machine learning. Deep dives into technical areas such robustness, interpretability, fairness; engineering tasks such as recommender systems, performance optimization, automated design. Students taking graduate version complete additional assignments. Students cannot receive credit without completion of the core subject 6.C51. Enrollment may be limited.


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

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

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


6.C571
6.C571 Optimization Methods

()
Prereqs: 18.C06 or permission of instructor
Units: 4-0-8

Introduction to the methods and applications of optimization. Topics include linear optimization, duality, non-linear optimization, integer optimization, and optimization under uncertainty. Instruction provided in modeling techniques to address problems arising in practice, mathematical theory to understand the structure of optimization problems, computational algorithms to solve complex optimization problems, and practical applications. Covers several examples and in-depth case studies based on real-world data to showcase impactful applications of optimization across management and engineering. Computational exercises based on the Julia-based programming language JuMP. Includes a term project. Basic competency in computational programming and linear algebra recommended. Students taking graduate version complete additional assignments. This subject was previously listed as 6.7201. One section primarily reserved for Sloan students; check syllabus for details.

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.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.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.03, 18.06, 18.700, or 18.C06)
Units: 4-0-8

Introduction to the principles and algorithms of machine learning from an optimization perspective. Topics include linear and non-linear models for supervised, unsupervised, and reinforcement learning, with a focus on gradient-based methods and neural-network architectures. Previous experience with algorithms may be helpful.


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.C01
6.C01 Modeling with Machine Learning: from Algorithms to Applications

()
Prereqs/[Coreqs]: GIR:CAL2 and 6.100A; [1.C01, 2.C01, 3.C01, 6.C011, 7.C01, or 22.C01]
Units: 2-0-4

Focuses on modeling with machine learning methods with an eye towards applications in engineering and sciences. Introduction to modern machine learning methods, from supervised to unsupervised models, with an emphasis on newer neural approaches. Emphasis on the understanding of how and why the methods work from the point of view of modeling, and when they are applicable. Using concrete examples, covers formulation of machine learning tasks, adapting and extending methods to given problems, and how the methods can and should be evaluated. Students taking graduate version complete additional assignments. Students cannot receive credit without completion of a 6-unit disciplinary module in the same semester. Enrollment may be limited.

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

()
Prereqs: 6.100A, 6.C01, (6.1200 or 6.3700), and (18.06 or 18.C06)
Units: 3-0-3

Focuses on in-depth modeling of engineering tasks as machine learning problems. Emphasizes framing, method design, and interpretation of results. In comparison to broader prerequisite 6.C01, this project-oriented subject consists of deep dives into select technical areas or engineering tasks involving both supervised and exploratory uses of machine learning. Explores technical areas such robustness, interpretability, fairness and engineering tasks such as recommender systems, performance optimization, and automated design. Students taking graduate version complete additional assignments. Students cannot receive credit without completion of the core subject 6.C01. Enrollment may be limited.


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

()
Prereqs/[Coreqs]: GIR:CAL2 and 6.100A; [1.C01, 2.C01, 3.C01, 6.C011, 7.C01, or 22.C01]
Units: 2-0-4

Focuses on modeling with machine learning methods with an eye towards applications in engineering and sciences. Introduction to modern machine learning methods, from supervised to unsupervised models, with an emphasis on newer neural approaches. Emphasis on the understanding of how and why the methods work from the point of view of modeling, and when they are applicable. Using concrete examples, covers formulation of machine learning tasks, adapting and extending methods to given problems, and how the methods can and should be evaluated. Students taking graduate version complete additional assignments. Students cannot receive credit without completion of a 6-unit disciplinary module in the same semester. Enrollment may be limited.

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

()
Prereqs: 6.100A, 6.C51, (6.1200 or 6.3700), and (18.06 or 18.C06)
Units: 3-0-3

Focuses on in-depth modeling of engineering tasks as machine learning problems. Emphasizes framing, method design, and interpretation of results. In comparison to broader co-requisite 6.C01/6.C51, this project oriented subject consists of deep dives into select technical areas or engineering tasks involving both supervised and exploratory uses of machine learning. Deep dives into technical areas such robustness, interpretability, fairness; engineering tasks such as recommender systems, performance optimization, automated design. Students taking graduate version complete additional assignments. Students cannot receive credit without completion of the core subject 6.C51. Enrollment may be limited.

6.C35
6.C35 Interactive Data Visualization and Society

()
Prereqs: none
Units: 3-4-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.C571
6.C571 Optimization Methods

()
Prereqs: 18.C06 or permission of instructor
Units: 4-0-8

Introduction to the methods and applications of optimization. Topics include linear optimization, duality, non-linear optimization, integer optimization, and optimization under uncertainty. Instruction provided in modeling techniques to address problems arising in practice, mathematical theory to understand the structure of optimization problems, computational algorithms to solve complex optimization problems, and practical applications. Covers several examples and in-depth case studies based on real-world data to showcase impactful applications of optimization across management and engineering. Computational exercises based on the Julia-based programming language JuMP. Includes a term project. Basic competency in computational programming and linear algebra recommended. Students taking graduate version complete additional assignments. This subject was previously listed as 6.7201. One section primarily reserved for Sloan students; check syllabus for details.


9.660
9.660 Computational Cognitive Science

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

Introduction to computational theories of human cognition. Focuses on principles of inductive learning and inference, and the representation of knowledge. Computational frameworks 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.


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.03, 18.06, 18.700, or 18.C06)
Units: 4-0-8

Introduction to the principles and algorithms of machine learning from an optimization perspective. Topics include linear and non-linear models for supervised, unsupervised, and reinforcement learning, with a focus on gradient-based methods and neural-network architectures. Previous experience with algorithms may be helpful.


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

()
Prereqs/[Coreqs]: GIR:CAL2 and 6.100A; [1.C01, 2.C01, 3.C01, 6.C011, 7.C01, or 22.C01]
Units: 2-0-4

Focuses on modeling with machine learning methods with an eye towards applications in engineering and sciences. Introduction to modern machine learning methods, from supervised to unsupervised models, with an emphasis on newer neural approaches. Emphasis on the understanding of how and why the methods work from the point of view of modeling, and when they are applicable. Using concrete examples, covers formulation of machine learning tasks, adapting and extending methods to given problems, and how the methods can and should be evaluated. Students taking graduate version complete additional assignments. Students cannot receive credit without completion of a 6-unit disciplinary module in the same semester. Enrollment may be limited.

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

()
Prereqs: 6.100A, 6.C01, (6.1200 or 6.3700), and (18.06 or 18.C06)
Units: 3-0-3

Focuses on in-depth modeling of engineering tasks as machine learning problems. Emphasizes framing, method design, and interpretation of results. In comparison to broader prerequisite 6.C01, this project-oriented subject consists of deep dives into select technical areas or engineering tasks involving both supervised and exploratory uses of machine learning. Explores technical areas such robustness, interpretability, fairness and engineering tasks such as recommender systems, performance optimization, and automated design. Students taking graduate version complete additional assignments. Students cannot receive credit without completion of the core subject 6.C01. Enrollment may be limited.


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

()
Prereqs/[Coreqs]: GIR:CAL2 and 6.100A; [1.C01, 2.C01, 3.C01, 6.C011, 7.C01, or 22.C01]
Units: 2-0-4

Focuses on modeling with machine learning methods with an eye towards applications in engineering and sciences. Introduction to modern machine learning methods, from supervised to unsupervised models, with an emphasis on newer neural approaches. Emphasis on the understanding of how and why the methods work from the point of view of modeling, and when they are applicable. Using concrete examples, covers formulation of machine learning tasks, adapting and extending methods to given problems, and how the methods can and should be evaluated. Students taking graduate version complete additional assignments. Students cannot receive credit without completion of a 6-unit disciplinary module in the same semester. Enrollment may be limited.

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

()
Prereqs: 6.100A, 6.C51, (6.1200 or 6.3700), and (18.06 or 18.C06)
Units: 3-0-3

Focuses on in-depth modeling of engineering tasks as machine learning problems. Emphasizes framing, method design, and interpretation of results. In comparison to broader co-requisite 6.C01/6.C51, this project oriented subject consists of deep dives into select technical areas or engineering tasks involving both supervised and exploratory uses of machine learning. Deep dives into technical areas such robustness, interpretability, fairness; engineering tasks such as recommender systems, performance optimization, automated design. Students taking graduate version complete additional assignments. Students cannot receive credit without completion of the core subject 6.C51. 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.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.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.C571
6.C571 Optimization Methods

()
Prereqs: 18.C06 or permission of instructor
Units: 4-0-8

Introduction to the methods and applications of optimization. Topics include linear optimization, duality, non-linear optimization, integer optimization, and optimization under uncertainty. Instruction provided in modeling techniques to address problems arising in practice, mathematical theory to understand the structure of optimization problems, computational algorithms to solve complex optimization problems, and practical applications. Covers several examples and in-depth case studies based on real-world data to showcase impactful applications of optimization across management and engineering. Computational exercises based on the Julia-based programming language JuMP. Includes a term project. Basic competency in computational programming and linear algebra recommended. Students taking graduate version complete additional assignments. This subject was previously listed as 6.7201. One section primarily reserved for Sloan students; check syllabus for 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.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.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.C571
6.C571 Optimization Methods

()
Prereqs: 18.C06 or permission of instructor
Units: 4-0-8

Introduction to the methods and applications of optimization. Topics include linear optimization, duality, non-linear optimization, integer optimization, and optimization under uncertainty. Instruction provided in modeling techniques to address problems arising in practice, mathematical theory to understand the structure of optimization problems, computational algorithms to solve complex optimization problems, and practical applications. Covers several examples and in-depth case studies based on real-world data to showcase impactful applications of optimization across management and engineering. Computational exercises based on the Julia-based programming language JuMP. Includes a term project. Basic competency in computational programming and linear algebra recommended. Students taking graduate version complete additional assignments. This subject was previously listed as 6.7201. One section primarily reserved for Sloan students; check syllabus for 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-4-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
9.660 Computational Cognitive Science

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

Introduction to computational theories of human cognition. Focuses on principles of inductive learning and inference, and the representation of knowledge. Computational frameworks 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.


AI+D_AUS: Advanced undergraduate subjects for 6-4 students. Also see the grad_AI+D_AUS list below.
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.30206.187
6.3020 Fundamentals of Music Processing

()
Prereqs: 6.3000 and 21M.051
Units: 3-0-9

Analyzes recorded music in digital audio form using advanced signal processing and optimization techniques to understand higher-level musical meaning. Covers fundamental tools like windowing, feature extraction, discrete and short-time Fourier transforms, chromagrams, and onset detection. Addresses analysis methods including dynamic time warping, dynamic programming, self-similarity matrices, and matrix factorization. Explores a variety of applications, such as event classification, audio alignment, chord recognition, structural analysis, tempo and beat tracking, content-based audio retrieval, and audio decomposition. Students taking graduate version complete different assignments.


6.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.4300
6.4300 Introduction to Computer Vision

()
Prereqs: 6.3900, (18.06 or 18.C06), and (6.1200, 6.3700, 6.3800, 18.05, or 18.600)
Units: 3-0-9

Provides an introduction to computer vision, covering topics from early vision to mid- and high-level vision, including low-level image analysis, edge detection, image transformations for image synthesis, methods for 3D scene reconstruction, motion analysis and tracking. Additionally, presents basics of machine learning, convolutional neural networks, and transformers in the context of image and video data for object classification, detection, and segmentation.

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.1210 or 6.1220) and (6.1800 or 6.1810)) 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.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.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: (6.100B and 7.05) 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.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.


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.4300
6.4300 Introduction to Computer Vision

()
Prereqs: 6.3900, (18.06 or 18.C06), and (6.1200, 6.3700, 6.3800, 18.05, or 18.600)
Units: 3-0-9

Provides an introduction to computer vision, covering topics from early vision to mid- and high-level vision, including low-level image analysis, edge detection, image transformations for image synthesis, methods for 3D scene reconstruction, motion analysis and tracking. Additionally, presents basics of machine learning, convolutional neural networks, and transformers in the context of image and video data for object classification, detection, and segmentation.


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 or 6.1810)) or permission of instructor
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. 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. Enrollment limited.

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


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.2320
6.2320 Silicon Photonics

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

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


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.4300
6.4300 Introduction to Computer Vision

()
Prereqs: 6.3900, (18.06 or 18.C06), and (6.1200, 6.3700, 6.3800, 18.05, or 18.600)
Units: 3-0-9

Provides an introduction to computer vision, covering topics from early vision to mid- and high-level vision, including low-level image analysis, edge detection, image transformations for image synthesis, methods for 3D scene reconstruction, motion analysis and tracking. Additionally, presents basics of machine learning, convolutional neural networks, and transformers in the context of image and video data for object classification, detection, and segmentation.


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.1210 or 6.1220) and (6.1800 or 6.1810)) or permission of instructor
Units: 3-0-9

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


6.59316.812
6.5931 Hardware Architecture for Deep Learning

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

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


6.5951
6.5951 Secure Hardware Design

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

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


6.63316.602
6.6331 Fundamentals of Photonics

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

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

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

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

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


6.72016.215
6.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: (6.100B and 7.05) 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 teams to engineer hardware/software systems that solve important, challenging real-world problems. In pursuit of these projects, students engage at every step of the full-stack development process, from printed circuit board design to firmware to server to industrial design. Teams design and build functional prototypes of complete hardware/software systems. Grading is based on individual- and team-based elements. Enrollment may be limited due to staffing and space requirements.


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

()
Prereqs/[Coreqs]: GIR:CAL2 and 6.100A; [1.C01, 2.C01, 3.C01, 6.C011, 7.C01, or 22.C01]
Units: 2-0-4

Focuses on modeling with machine learning methods with an eye towards applications in engineering and sciences. Introduction to modern machine learning methods, from supervised to unsupervised models, with an emphasis on newer neural approaches. Emphasis on the understanding of how and why the methods work from the point of view of modeling, and when they are applicable. Using concrete examples, covers formulation of machine learning tasks, adapting and extending methods to given problems, and how the methods can and should be evaluated. Students taking graduate version complete additional assignments. Students cannot receive credit without completion of a 6-unit disciplinary module in the same semester. Enrollment may be limited.

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

()
Prereqs: 6.100A, 6.C01, (6.1200 or 6.3700), and (18.06 or 18.C06)
Units: 3-0-3

Focuses on in-depth modeling of engineering tasks as machine learning problems. Emphasizes framing, method design, and interpretation of results. In comparison to broader prerequisite 6.C01, this project-oriented subject consists of deep dives into select technical areas or engineering tasks involving both supervised and exploratory uses of machine learning. Explores technical areas such robustness, interpretability, fairness and engineering tasks such as recommender systems, performance optimization, and automated design. Students taking graduate version complete additional assignments. Students cannot receive credit without completion of the core subject 6.C01. Enrollment may be limited.


6.C25
6.C25 Real World Computation with Julia

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

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


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

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

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


6.C571
6.C571 Optimization Methods

()
Prereqs: 18.C06 or permission of instructor
Units: 4-0-8

Introduction to the methods and applications of optimization. Topics include linear optimization, duality, non-linear optimization, integer optimization, and optimization under uncertainty. Instruction provided in modeling techniques to address problems arising in practice, mathematical theory to understand the structure of optimization problems, computational algorithms to solve complex optimization problems, and practical applications. Covers several examples and in-depth case studies based on real-world data to showcase impactful applications of optimization across management and engineering. Computational exercises based on the Julia-based programming language JuMP. Includes a term project. Basic competency in computational programming and linear algebra recommended. Students taking graduate version complete additional assignments. This subject was previously listed as 6.7201. One section primarily reserved for Sloan students; check syllabus for details.


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 reagen