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

Notes:

6-1 Electrical Science and Engineering

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

6-2 (old) Electrical Engineering and Computer Science

6-2 (new) Electrical Engineering and Computer Science

6-3 (old) Computer Science and Engineering

6-3 (new) Computer Science and Engineering

6-4 Artificial Intelligence and Decision Making

6-7 Computer Science and Molecular Biology

6-14 Computer Science, Economics and Data Science

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

Masters of Engineering (6-7)

Masters of Engineering (6-14)

Summary Table

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

SubjectFall 2022Spring 2023
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 Studio

()
Prereqs: 6.1020 and 6.1200
Units: 4-9-2

Provides design-focused instruction on how to build software applications. Design topics include classic human-computer interaction (HCI) design tactics (need finding, heuristic evaluation, prototyping, user testing), conceptual design (modeling and evaluating constituent concepts), abstract data modeling, and visual design. Implementation topics include functional programming in Javascript, reactive front-ends, web services, and databases. Students work in teams on term-long projects in which they construct applications of social value.

X X X
6.10606.172
6.1060 Software Performance Engineering

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

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

X X X
6.11006.035
6.1100 Computer Language Engineering

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

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

X X X
6.11206.818
6.1120 Dynamic Computer Language Engineering

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

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

X X
6.14206.054
6.1420 Fixed Parameter and Fine-grained Computation

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

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

X X
6.16006.053
6.1600 Foundations of Computer Security

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

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

X
6.18006.033
6.1800 Computer Systems Engineering

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

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

X
6.18106.039
6.1810 Operating System Engineering

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

Design and implementation of operating systems, and their use as a foundation for systems programming. Topics include virtual memory, file systems, threads, context switches, kernels, interrupts, system calls, interprocess communication, coordination, and interaction between software and hardware. A multi-processor operating system for RISC-V, xv6, is used to illustrate these topics. Individual laboratory assignments involve extending the xv6 operating system, for example to support sophisticated virtual memory features and networking.

X
6.18206.808
6.1820 Mobile and Sensor Computing

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

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

X X X
6.18506.052
6.1850 Computer Systems and Society

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

Explores the impact of computer systems on individual humans, society, and the environment. Examines large- and small-scale power structures that stem from low-level technical design decisions, the consequences of those structures on society, and how they can limit or provide access to certain technologies. Students learn to assess design decisions within an ethical framework and consider the impact of their decisions on non-users. Case studies of working systems and readings from the current literature provide comparisons and contrasts. Possible topics include the implications of hierarchical designs (e.g., DNS) for scale; how layered models influence what parts of a network have the power to take certain actions; and the environmental impact of proof-of-work-based systems such as Bitcoin. Enrollment may be limited.

X
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
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
6.20606.115
6.2060 Microcomputer Project Laboratory

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

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

X X X
6.20616.1151
6.2061 Microcomputer Project Laboratory - Independent Inquiry

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

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

X X X X
6.20806.300
6.2080 Introduction to 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, basic amplifier and opamp circuits. Labs give students access to CAD/EDA tools to design, analyze, and layout analog circuits. 

X
6.20906.301
6.2090 Solid-State Circuits

()
Prereqs: 6.2000
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, and translinear circuits. Provides practical experience through various 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.2000
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, and translinear circuits. Provides practical experience through various lab exercises, including a broadband amplifier design and characterization. Students taking graduate version complete additional assignments.

X X
6.22006.061
6.2200 Electric Energy Systems

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

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

X
6.22206.131
6.2220 Power Electronics Laboratory

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

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

X X X
6.22216.1311
6.2221 Power Electronics Laboratory - Independent Inquiry

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

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

X X X X
6.23706.161
6.2370 Modern Optics Project Laboratory

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

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

X X X
6.24006.051
6.2400 Introduction to Quantum Systems Engineering

()
Prereqs: 18.03, 18.031, 18.06, or 18.C06
Units: 4-2-6

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

X
6.24106.157
6.2410 Quantum Engineering Platforms

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

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

X X
6.25306.701
6.2530 Introduction to Nanoelectronics

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

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

X
6.25406.015
6.2540 Nanotechnology: From Atoms to Systems

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

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

X
6.26006.152
6.2600 Micro/Nano Processing Technology

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

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

X X
6.31006.302
6.3100 Dynamical System Modeling and Control Design

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

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

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

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

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

X X X X
6.32606.207
6.3260 Networks

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

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

X
6.37206.401
6.3720 Introduction to Statistical Data Analysis

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

Introduction to the central concepts and methods of data science with an emphasis on statistical grounding and modern computational capabilities. Covers principles involved in extracting information from data for the purpose of making predictions or decisions, including data exploration, feature selection, model fitting, and performance assessment. Topics include learning of distributions, hypothesis testing (including multiple comparison procedures), linear and nonlinear regression and prediction, classification, time series, uncertainty quantification, model validation, causal inference, optimization, and decisions. Computational case studies and projects drawn from applications in finance, sports, engineering, and machine learning life sciences. Students taking graduate version complete additional assignments. Recommended prerequisite: 18.06.

X
6.37306.419
6.3730 Statistics, Computation and Applications

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

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

X X
6.41206.804
6.4120 Computational Cognitive Science

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

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

X
6.42006.141
6.4200 Robotics: Science and Systems

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

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

X X X
6.42106.800
6.4210 Robotic Manipulation

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

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

X X X
6.44006.837
6.4400 Computer Graphics

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

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

X X
6.44206.807
6.4420 Computational Design and Fabrication

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

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

X X X
6.45106.810
6.4510 Engineering Interactive Technologies

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

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

X X
6.45306.811
6.4530 Principles and Practice of Assistive Technology

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

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

X
6.45506.185
6.4550 Interactive Music Systems

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

Explores audio synthesis, musical structure, human computer interaction (HCI), and visual presentation for the creation of interactive musical experiences. Topics include audio synthesis; mixing and looping; MIDI sequencing; generative composition; motion sensors; music games; and graphics for UI, visualization, and aesthetics. Includes weekly programming assignments in python. Teams build an original, dynamic, and engaging interactive music system for their final project. 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, 22.071, 6.2060, or permission of instructor
Units: 3-3-6

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

X X X
6.48806.129
6.4880 Biological Circuit Engineering Laboratory

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

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

X X X
6.50816.816
6.5081 Multicore Programming

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

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

X X
6.51516.905
6.5151 Large-scale Symbolic Systems

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

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

X X
6.58316.814
6.5831 Database Systems

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

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

X
6.59316.812
6.5931 Hardware Architecture for Deep Learning

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

Introduction to the design and implementation of hardware architectures for efficient processing of deep learning algorithms in AI systems. Topics include basics of deep learning, programmable platforms, accelerators, co-optimization of algorithms and hardware, training, support for complex networks, and applications of advanced technologies. Includes labs involving modeling and analysis of hardware architectures, building systems using popular deep learning tools and platforms (CPU, GPU, FPGA), and an open-ended design project. Students taking graduate version complete additional assignments.

X
6.63316.602
6.6331 Fundamentals of Photonics

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

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

X
6.72016.215
6.7201 Optimization Methods

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

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

X
6.83016.819
6.8301 Advances in Computer Vision

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

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

X X X X
6.83716.815
6.8371 Digital and Computational Photography

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

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

X
6.84206.839
6.8420 Computational Design and Fabrication

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

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

X X
6.86116.806
6.8611 Quantitative Methods for Natural Language Processing

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

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

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

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

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

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

()
Prereqs: (7.05 and (6.100B or 6.9080)) or permission of instructor
Units: 3-0-9

Presents innovative approaches to computational problems in the life sciences, focusing on deep learning-based approaches with comparisons to conventional methods. Topics include protein-DNA interaction, chromatin accessibility, regulatory variant interpretation, medical image understanding, medical record understanding, therapeutic design, and experiment design (the choice and interpretation of interventions). Focuses on machine learning model selection, robustness, and interpretation. Teams complete a multidisciplinary final research project using TensorFlow or other framework. Provides a comprehensive introduction to each life sciences problem, but relies upon students understanding probabilistic problem formulations. Students taking graduate version complete additional assignments.

X
6.87216.580
6.8721 Principles of Synthetic Biology

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

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

X
6.88016.026
6.8801 Biomedical Signal and Image Processing

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

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

X X
6.90006.010
6.9000 Engineering for Impact

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

Students work in large teams to engineer systems that solve important problems in society. Leverages technical EECS background to make design choices and partition the system with an emphasis on the societal, ethical, and legal implications of those choices. Explores case studies of existing engineered systems to understand implications of different system architectures. Teams design and build functional prototypes of useful systems. Grading is based on individual- and team-based elements. Enrollment may be limited due to staffing and space requirements.

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

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

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

X X
6.S046
6.S046 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 X
6.S050
6.S050 Programming Language Design

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

Introduction to programming language design. Students will learn about the features used in modern programming languages. This class will prepare students to design their own languages and to become better programmers by understanding their language of choice more deeply. Topics covered include functional programming, data abstraction, modularity, types, memory management, and concurrency.

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

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

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

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

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

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

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

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

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

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

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

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

X X

Tracks

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

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

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

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


6.37306.419
6.3730 Statistics, Computation and Applications

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

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


6.42006.141
6.4200 Robotics: Science and Systems

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

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


6.42106.800
6.4210 Robotic Manipulation

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

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

6.51516.905
6.5151 Large-scale Symbolic Systems

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

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


6.58316.814
6.5831 Database Systems

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

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


6.83016.819
6.8301 Advances in Computer Vision

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

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


6.83716.815
6.8371 Digital and Computational Photography

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

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

6.86116.806
6.8611 Quantitative Methods for Natural Language Processing

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

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


6.87016.047
6.8701 Computational Biology: Genomes, Networks, Evolution

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

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


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

()
Prereqs: (7.05 and (6.100B or 6.9080)) or permission of instructor
Units: 3-0-9

Presents innovative approaches to computational problems in the life sciences, focusing on deep learning-based approaches with comparisons to conventional methods. Topics include protein-DNA interaction, chromatin accessibility, regulatory variant interpretation, medical image understanding, medical record understanding, therapeutic design, and experiment design (the choice and interpretation of interventions). Focuses on machine learning model selection, robustness, and interpretation. Teams complete a multidisciplinary final research project using TensorFlow or other framework. Provides a comprehensive introduction to each life sciences problem, but relies upon students understanding probabilistic problem formulations. Students taking graduate version complete additional assignments.


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

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

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

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

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

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


6.30006.003
6.3000 Signal Processing

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

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


6.31006.302
6.3100 Dynamical System Modeling and Control Design

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

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


6.32606.207
6.3260 Networks

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

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

6.37206.401
6.3720 Introduction to Statistical Data Analysis

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

Introduction to the central concepts and methods of data science with an emphasis on statistical grounding and modern computational capabilities. Covers principles involved in extracting information from data for the purpose of making predictions or decisions, including data exploration, feature selection, model fitting, and performance assessment. Topics include learning of distributions, hypothesis testing (including multiple comparison procedures), linear and nonlinear regression and prediction, classification, time series, uncertainty quantification, model validation, causal inference, optimization, and decisions. Computational case studies and projects drawn from applications in finance, sports, engineering, and machine learning life sciences. Students taking graduate version complete additional assignments. Recommended prerequisite: 18.06.


6.39006.036
6.3900 Introduction to Machine Learning

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

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


6.39506.404
6.3950 AI, Decision Making, and Society

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

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


6.41106.038
6.4110 Representation, Inference, and Reasoning in AI

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

An introduction to representations and algorithms for artificial intelligence. Topics covered include: constraint satisfaction in discrete and continuous problems, logical representation and inference, Monte Carlo tree search, probabilistic graphical models and inference, planning in discrete and continuous deterministic and probabilistic models including MDPs and POMDPs.

6.41206.804
6.4120 Computational Cognitive Science

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

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


6.44006.837
6.4400 Computer Graphics

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

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


6.45906.805
6.4590 Foundations of Information Policy

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

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


6.72016.215
6.7201 Optimization Methods

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

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

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

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

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

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

()
Prereqs: 6.S084/18.061 or 18.06 or equivalent; 6.1200, 6.3700 or equivalent; 6.100A or equivalent; Coreq: 6.C
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, this project-oriented subject consists of deep dives into select technical areas or engineering tasks involving both supervised and exploratory uses of machine learning. Deep dives into technical areas such robustness, interpretability, privacy or causal discovery; engineering tasks such as recommender systems, performance optimization, or automated design. This 6-unit subject must be taken together with the 6-unit core subject 6.C01. Enrollment may be limited.


6.C35
6.C35 Interactive Data Visualization and Society

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

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


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

()
Prereqs/[Coreqs]: GIR:CAL2 and 6.100A; [1.C51, 2.C51, 3.C51, 22.C51, or SCM.C51]
Units: 3-0-3

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

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

()
Prereqs: 6.S084/18.061 or 18.06 or equivalent; 6.1200, 6.3700 or equivalent; 6.100A or equivalent; Coreq: 6.C
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.C51, this project-oriented subject consists of deep dives into select technical areas or engineering tasks involving both supervised and exploratory uses of machine learning. Deep dives into technical areas such robustness, interpretability, privacy or causal discovery; engineering tasks such as recommender systems, performance optimization, or automated design. This 6-unit subject must be taken together with the 6-unit core subject 6.C51. Enrollment may be limited.


9.660
and one of:
18.404
18.404 Theory of Computation

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

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


6.37306.419
6.3730 Statistics, Computation and Applications

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

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


6.42006.141
6.4200 Robotics: Science and Systems

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

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


6.42106.800
6.4210 Robotic Manipulation

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

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

6.51516.905
6.5151 Large-scale Symbolic Systems

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

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


6.58316.814
6.5831 Database Systems

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

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


6.83016.819
6.8301 Advances in Computer Vision

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

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


6.83716.815
6.8371 Digital and Computational Photography

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

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

6.86116.806
6.8611 Quantitative Methods for Natural Language Processing

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

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


6.87016.047
6.8701 Computational Biology: Genomes, Networks, Evolution

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

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


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

()
Prereqs: (7.05 and (6.100B or 6.9080)) or permission of instructor
Units: 3-0-9

Presents innovative approaches to computational problems in the life sciences, focusing on deep learning-based approaches with comparisons to conventional methods. Topics include protein-DNA interaction, chromatin accessibility, regulatory variant interpretation, medical image understanding, medical record understanding, therapeutic design, and experiment design (the choice and interpretation of interventions). Focuses on machine learning model selection, robustness, and interpretation. Teams complete a multidisciplinary final research project using TensorFlow or other framework. Provides a comprehensive introduction to each life sciences problem, but relies upon students understanding probabilistic problem formulations. Students taking graduate version complete additional assignments.


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

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

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

[CS,EE] Architecture
6.19206.175
6.1920 Constructive Computer Architecture

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

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


6.20506.111
6.2050 Digital Systems Laboratory

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

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


6.20606.115
6.2060 Microcomputer Project Laboratory

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

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


6.58906.888
6.59006.823
6.5900 Computer System Architecture

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

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

6.59306.825
6.5930 Hardware Architecture for Deep Learning

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

Introduction to the design and implementation of hardware architectures for efficient processing of deep learning algorithms in AI systems. Topics include basics of deep learning, programmable platforms, accelerators, co-optimization of algorithms and hardware, training, support for complex networks, and applications of advanced technologies. Includes labs involving modeling and analysis of hardware architectures, building systems using popular deep learning tools and platforms (CPU, GPU, FPGA), 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 or 6.3000
Units: 3-3-6

Introduction to the design and implementation of hardware architectures for efficient processing of deep learning algorithms in AI systems. Topics include basics of deep learning, programmable platforms, accelerators, co-optimization of algorithms and hardware, training, support for complex networks, and applications of advanced technologies. Includes labs involving modeling and analysis of hardware architectures, building systems using popular deep learning tools and platforms (CPU, GPU, FPGA), and an open-ended design project. Students taking graduate version complete additional assignments.


6.S983
6.S983 Secure Hardware Design

()
Prereqs: 6.1900 or equivalent
Units: 3-0-9

The course aims to introduce hardware system design with security as the primary goal. Topics include micro-architecture side channels, speculative execution attacks and defenses, enclave system design, architecture support for memory safety, RowHammer attacks, attacks on GPU and accelerators, physical side channel attacks and defenses, etc. Students are required to complete 5 lab assignments or have the option to substitute the labs with an open-ended design project.


6.S984
6.S984 Datacenter Computing

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

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

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

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

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

Explores the impact of computer systems on individual humans, society, and the environment. Examines large- and small-scale power structures that stem from low-level technical design decisions, the consequences of those structures on society, and how they can limit or provide access to certain technologies. Students learn to assess design decisions within an ethical framework and consider the impact of their decisions on non-users. Case studies of working systems and readings from the current literature provide comparisons and contrasts. Possible topics include the implications of hierarchical designs (e.g., DNS) for scale; how layered models influence what parts of a network have the power to take certain actions; and the environmental impact of proof-of-work-based systems such as Bitcoin. Enrollment may be limited.


6.45906.805
6.4590 Foundations of Information Policy

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

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


6.85306.859
6.8530 Interactive Data Visualization

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

Interactive visualization provides a means of making sense of a world awash in data. Covers the techniques and algorithms for creating effective visualizations, using principles from graphic design, perceptual psychology, and cognitive science. Short assignments build familiarity with the data analysis and visualization design process, and a final project provides experience designing, implementing, and deploying an explanatory narrative visualization or visual analysis tool to address a concrete challenge.


6.C35
6.C35 Interactive Data Visualization and Society

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

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


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

()
Prereqs: 6.1020 and 6.1200
Units: 4-9-2

Provides design-focused instruction on how to build software applications. Design topics include classic human-computer interaction (HCI) design tactics (need finding, heuristic evaluation, prototyping, user testing), conceptual design (modeling and evaluating constituent concepts), abstract data modeling, and visual design. Implementation topics include functional programming in Javascript, reactive front-ends, web services, and databases. Students work in teams on term-long projects in which they construct applications of social value.


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. 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: none
Units: 3-0-9

Interactive visualization provides a means of making sense of a world awash in data. Covers the techniques and algorithms for creating effective visualizations, using principles from graphic design, perceptual psychology, and cognitive science. Short assignments build familiarity with the data analysis and visualization design process, and a final project provides experience designing, implementing, and deploying an explanatory narrative visualization or visual analysis tool to address a concrete challenge.


6.C35
6.C35 Interactive Data Visualization and Society

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

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


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

()
Prereqs: 6.1020 and 6.1200
Units: 4-9-2

Provides design-focused instruction on how to build software applications. Design topics include classic human-computer interaction (HCI) design tactics (need finding, heuristic evaluation, prototyping, user testing), conceptual design (modeling and evaluating constituent concepts), abstract data modeling, and visual design. Implementation topics include functional programming in Javascript, reactive front-ends, web services, and databases. Students work in teams on term-long projects in which they construct applications of social value.


6.10606.172
6.1060 Software Performance Engineering

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

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


6.11006.035
6.1100 Computer Language Engineering

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

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


6.11206.818
6.1120 Dynamic Computer Language Engineering

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

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


6.50606.827
6.5060 Algorithm Engineering

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

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

6.50806.836
6.5080 Multicore Programming

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

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


6.50816.816
6.5081 Multicore Programming

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

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


6.51106.820
6.5110 Foundations of Program Analysis

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

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


6.51206.822
6.5120 Formal Reasoning About Programs

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

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


6.S050
6.S050 Programming Language Design

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

Introduction to programming language design. Students will learn about the features used in modern programming languages. This class will prepare students to design their own languages and to become better programmers by understanding their language of choice more deeply. Topics covered include functional programming, data abstraction, modularity, types, memory management, and concurrency.

[CS] Systems
6.16006.053
6.1600 Foundations of Computer Security

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

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


6.18106.039
6.1810 Operating System Engineering

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

Design and implementation of operating systems, and their use as a foundation for systems programming. Topics include virtual memory, file systems, threads, context switches, kernels, interrupts, system calls, interprocess communication, coordination, and interaction between software and hardware. A multi-processor operating system for RISC-V, xv6, is used to illustrate these topics. Individual laboratory assignments involve extending the xv6 operating system, for example to support sophisticated virtual memory features and networking.


6.18206.808
6.1820 Mobile and Sensor Computing

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

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


6.56106.857
6.5610 Applied Cryptography and Security

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

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

6.56606.858
6.5660 Computer Systems Security

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

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


6.58106.828
6.5810 Operating System Engineering

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

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


6.58206.829
6.5820 Computer Networks

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

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


6.58306.830
6.5830 Database Systems

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

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

6.58316.814
6.5831 Database Systems

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

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


6.58406.824
6.5840 Distributed Computer Systems Engineering

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

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


6.58506.826
6.5850 Principles of Computer Systems

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

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

[CS] Theory
18.404
18.404 Theory of Computation

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

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


6.12206.046
6.1220 Design and Analysis of Algorithms

(,)
Prereqs: 6.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.1210 or permission of instructor
Units: 4-0-8

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


6.14206.054
6.1420 Fixed Parameter and Fine-grained Computation

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

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


6.50606.827
6.5060 Algorithm Engineering

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

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

6.52106.854
6.5210 Advanced Algorithms

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

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


6.52206.856
6.5220 Randomized Algorithms

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

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


6.52306.851
6.5230 Advanced Data Structures

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

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


6.52506.852
6.5250 Distributed Algorithms

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

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


6.53106.849
6.5310 Geometric Folding Algorithms: Linkages, Origami, Polyhedra

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

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

6.53206.850
6.5320 Geometric Computing

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

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


6.53406.853
6.5340 Topics in Algorithmic Game Theory

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

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


6.53506.847
6.5350 Matrix Multiplication and Graph Algorithms

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

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


6.54006.840
6.5400 Theory of Computation

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

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


6.54106.841
6.5410 Advanced Complexity Theory

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

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

6.54206.842
6.5420 Randomness and Computation

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

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


6.54306.845
6.5430 Quantum Complexity Theory

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

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


6.54906.890
6.56206.875
6.5620 Cryptography and Cryptanalysis

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

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


6.56306.876
6.5630 Advanced Topics in Cryptography

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

In-depth exploration of recent results in cryptography.

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

()
Prereqs: 6.3100 and (18.06 or 18.C06)
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, 22.071, 6.2060, 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 Introduction to 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, basic amplifier and opamp circuits. Labs give students access to CAD/EDA tools to design, analyze, and layout analog circuits. 


6.20906.301
6.2090 Solid-State Circuits

()
Prereqs: 6.2000
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, and translinear circuits. Provides practical experience through various lab exercises, including a broadband amplifier design and characterization. Students taking graduate version complete additional assignments.

and one of:
6.20406.101
6.2040 Analog Electronics Laboratory

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

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


6.20506.111
6.2050 Digital Systems Laboratory

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

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


6.20606.115
6.2060 Microcomputer Project Laboratory

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

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


6.20806.300
6.2080 Introduction to 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, basic amplifier and opamp circuits. Labs give students access to CAD/EDA tools to design, analyze, and layout analog circuits. 

6.20906.301
6.2090 Solid-State Circuits

()
Prereqs: 6.2000
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, and translinear circuits. Provides practical experience through various 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.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: 3-0-9

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


6.23006.013
6.2300 Electromagnetics Waves and Applications

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

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


6.23706.161
6.2370 Modern Optics Project Laboratory

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

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


6.63316.602
6.6331 Fundamentals of Photonics

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

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

[EE] Embedded Systems
6.18206.808
6.1820 Mobile and Sensor Computing

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

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


6.20506.111
6.2050 Digital Systems Laboratory

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

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


6.20606.115
6.2060 Microcomputer Project Laboratory

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

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


6.45106.810
6.4510 Engineering Interactive Technologies

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

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

[EE] Energy Systems
6.22006.061
6.2200 Electric Energy Systems

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

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

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

()
Prereqs: GIR:PHY2 and 18.03
Units: 3-0-9

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.

[EE] Hardware Design
6.19206.175
6.1920 Constructive Computer Architecture

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

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


6.20506.111
6.2050 Digital Systems Laboratory

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

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


6.20606.115
6.2060 Microcomputer Project Laboratory

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

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


6.60106.374
6.6010 Analysis and Design of Digital Integrated Circuits

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

Device and circuit level optimization of digital building blocks. MOS device models including Deep Sub-Micron effects. 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. Testing of integrated circuits. Extensive custom and standard cell layout and simulation in design projects and software labs.

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

()
Prereqs: 6.1020 and 6.1200
Units: 4-9-2

Provides design-focused instruction on how to build software applications. Design topics include classic human-computer interaction (HCI) design tactics (need finding, heuristic evaluation, prototyping, user testing), conceptual design (modeling and evaluating constituent concepts), abstract data modeling, and visual design. Implementation topics include functional programming in Javascript, reactive front-ends, web services, and databases. Students work in teams on term-long projects in which they construct applications of social value.


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.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.1210 or permission of instructor
Units: 4-0-8

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


6.14206.054
6.1420 Fixed Parameter and Fine-grained Computation

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

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


6.16006.053
6.1600 Foundations of Computer Security

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

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


6.18106.039
6.1810 Operating System Engineering

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

Design and implementation of operating systems, and their use as a foundation for systems programming. Topics include virtual memory, file systems, threads, context switches, kernels, interrupts, system calls, interprocess communication, coordination, and interaction between software and hardware. A multi-processor operating system for RISC-V, xv6, is used to illustrate these topics. Individual laboratory assignments involve extending the xv6 operating system, for example to support sophisticated virtual memory features and networking.


6.18206.808
6.1820 Mobile and Sensor Computing

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

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


6.18506.052
6.1850 Computer Systems and Society

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

Explores the impact of computer systems on individual humans, society, and the environment. Examines large- and small-scale power structures that stem from low-level technical design decisions, the consequences of those structures on society, and how they can limit or provide access to certain technologies. Students learn to assess design decisions within an ethical framework and consider the impact of their decisions on non-users. Case studies of working systems and readings from the current literature provide comparisons and contrasts. Possible topics include the implications of hierarchical designs (e.g., DNS) for scale; how layered models influence what parts of a network have the power to take certain actions; and the environmental impact of proof-of-work-based systems such as Bitcoin. Enrollment may be limited.


6.45106.810
6.4510 Engineering Interactive Technologies

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

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

6.45306.811
6.4530 Principles and Practice of Assistive Technology

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

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


6.45506.185
6.4550 Interactive Music Systems

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

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


6.45906.805
6.4590 Foundations of Information Policy

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

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


6.50606.827
6.5060 Algorithm Engineering

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

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


6.50806.836
6.5080 Multicore Programming

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

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


6.50816.816
6.5081 Multicore Programming

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

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


6.51106.820
6.5110 Foundations of Program Analysis

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

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


6.51206.822
6.5120 Formal Reasoning About Programs

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

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


6.52106.854
6.5210 Advanced Algorithms

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

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


6.52206.856
6.5220 Randomized Algorithms

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

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


6.52306.851
6.5230 Advanced Data Structures

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

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


6.52506.852
6.5250 Distributed Algorithms

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

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


6.53106.849
6.5310 Geometric Folding Algorithms: Linkages, Origami, Polyhedra

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

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

6.53206.850
6.5320 Geometric Computing

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

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


6.53406.853
6.5340 Topics in Algorithmic Game Theory

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

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


6.53506.847
6.5350 Matrix Multiplication and Graph Algorithms

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

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


6.54006.840
6.5400 Theory of Computation

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

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


6.54106.841
6.5410 Advanced Complexity Theory

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

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


6.54206.842
6.5420 Randomness and Computation

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

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


6.54306.845
6.5430 Quantum Complexity Theory

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

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


6.54906.890
6.56106.857
6.5610 Applied Cryptography and Security

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

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


6.56206.875
6.5620 Cryptography and Cryptanalysis

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

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


6.56306.876
6.5630 Advanced Topics in Cryptography

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

In-depth exploration of recent results in cryptography.


6.56606.858
6.5660 Computer Systems Security

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

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


6.58106.828
6.5810 Operating System Engineering

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

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

6.58206.829
6.5820 Computer Networks

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

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


6.58306.830
6.5830 Database Systems

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

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


6.58316.814
6.5831 Database Systems

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

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


6.58406.824
6.5840 Distributed Computer Systems Engineering

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

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


6.58506.826
6.5850 Principles of Computer Systems

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

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


6.85106.835
6.8510 Intelligent Multimodal User Interfaces

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

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


6.85306.859
6.8530 Interactive Data Visualization

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

Interactive visualization provides a means of making sense of a world awash in data. Covers the techniques and algorithms for creating effective visualizations, using principles from graphic design, perceptual psychology, and cognitive science. Short assignments build familiarity with the data analysis and visualization design process, and a final project provides experience designing, implementing, and deploying an explanatory narrative visualization or visual analysis tool to address a concrete challenge.


6.C35
6.C35 Interactive Data Visualization and Society

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

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


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. A final project provides experience working with real-world big data, provided by external partners, in order to expose and communicate insights about societal issues. Students taking graduate version complete additional assignments.


6.S050
6.S050 Programming Language Design

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

Introduction to programming language design. Students will learn about the features used in modern programming languages. This class will prepare students to design their own languages and to become better programmers by understanding their language of choice more deeply. Topics covered include functional programming, data abstraction, modularity, types, memory management, and concurrency.

[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: 18.03, 18.031, 18.06, or 18.C06
Units: 4-2-6

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


6.24106.157
6.2410 Quantum Engineering Platforms

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

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

[EE] Systems Science
6.30006.003
6.3000 Signal Processing

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

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


6.30106.011
6.3010 Signals, Systems and Inference

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

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


6.32606.207
6.3260 Networks

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

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


6.37206.401
6.3720 Introduction to Statistical Data Analysis

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

Introduction to the central concepts and methods of data science with an emphasis on statistical grounding and modern computational capabilities. Covers principles involved in extracting information from data for the purpose of making predictions or decisions, including data exploration, feature selection, model fitting, and performance assessment. Topics include learning of distributions, hypothesis testing (including multiple comparison procedures), linear and nonlinear regression and prediction, classification, time series, uncertainty quantification, model validation, causal inference, optimization, and decisions. Computational case studies and projects drawn from applications in finance, sports, engineering, and machine learning life sciences. Students taking graduate version complete additional assignments. Recommended prerequisite: 18.06.

6.39006.036
6.3900 Introduction to Machine Learning

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

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


6.41106.038
6.4110 Representation, Inference, and Reasoning in AI

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

An introduction to representations and algorithms for artificial intelligence. Topics covered include: constraint satisfaction in discrete and continuous problems, logical representation and inference, Monte Carlo tree search, probabilistic graphical models and inference, planning in discrete and continuous deterministic and probabilistic models including MDPs and POMDPs.


6.42006.141
6.4200 Robotics: Science and Systems

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

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


6.42106.800
6.4210 Robotic Manipulation

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

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

6.72016.215
6.7201 Optimization Methods

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

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


6.83016.819
6.8301 Advances in Computer Vision

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

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


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

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

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

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

()
Prereqs: 6.S084/18.061 or 18.06 or equivalent; 6.1200, 6.3700 or equivalent; 6.100A or equivalent; Coreq: 6.C
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, this project-oriented subject consists of deep dives into select technical areas or engineering tasks involving both supervised and exploratory uses of machine learning. Deep dives into technical areas such robustness, interpretability, privacy or causal discovery; engineering tasks such as recommender systems, performance optimization, or automated design. This 6-unit subject must be taken together with the 6-unit core subject 6.C01. Enrollment may be limited.


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

()
Prereqs/[Coreqs]: GIR:CAL2 and 6.100A; [1.C51, 2.C51, 3.C51, 22.C51, or SCM.C51]
Units: 3-0-3

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

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

()
Prereqs: 6.S084/18.061 or 18.06 or equivalent; 6.1200, 6.3700 or equivalent; 6.100A or equivalent; Coreq: 6.C
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.C51, this project-oriented subject consists of deep dives into select technical areas or engineering tasks involving both supervised and exploratory uses of machine learning. Deep dives into technical areas such robustness, interpretability, privacy or causal discovery; engineering tasks such as recommender systems, performance optimization, or automated design. This 6-unit subject must be taken together with the 6-unit core subject 6.C51. Enrollment may be limited.

Subject Lists


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

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

Introduction to the central concepts and methods of data science with an emphasis on statistical grounding and modern computational capabilities. Covers principles involved in extracting information from data for the purpose of making predictions or decisions, including data exploration, feature selection, model fitting, and performance assessment. Topics include learning of distributions, hypothesis testing (including multiple comparison procedures), linear and nonlinear regression and prediction, classification, time series, uncertainty quantification, model validation, causal inference, optimization, and decisions. Computational case studies and projects drawn from applications in finance, sports, engineering, and machine learning life sciences. Students taking graduate version complete additional assignments. Recommended prerequisite: 18.06.


6.39006.036
6.3900 Introduction to Machine Learning

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

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


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

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

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

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

()
Prereqs: 6.S084/18.061 or 18.06 or equivalent; 6.1200, 6.3700 or equivalent; 6.100A or equivalent; Coreq: 6.C
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, this project-oriented subject consists of deep dives into select technical areas or engineering tasks involving both supervised and exploratory uses of machine learning. Deep dives into technical areas such robustness, interpretability, privacy or causal discovery; engineering tasks such as recommender systems, performance optimization, or automated design. This 6-unit subject must be taken together with the 6-unit core subject 6.C01. Enrollment may be limited.


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

()
Prereqs/[Coreqs]: GIR:CAL2 and 6.100A; [1.C51, 2.C51, 3.C51, 22.C51, or SCM.C51]
Units: 3-0-3

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

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

()
Prereqs: 6.S084/18.061 or 18.06 or equivalent; 6.1200, 6.3700 or equivalent; 6.100A or equivalent; Coreq: 6.C
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.C51, this project-oriented subject consists of deep dives into select technical areas or engineering tasks involving both supervised and exploratory uses of machine learning. Deep dives into technical areas such robustness, interpretability, privacy or causal discovery; engineering tasks such as recommender systems, performance optimization, or automated design. This 6-unit subject must be taken together with the 6-unit core subject 6.C51. Enrollment may be limited.


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

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

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


6.41106.038
6.4110 Representation, Inference, and Reasoning in AI

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

An introduction to representations and algorithms for artificial intelligence. Topics covered include: constraint satisfaction in discrete and continuous problems, logical representation and inference, Monte Carlo tree search, probabilistic graphical models and inference, planning in discrete and continuous deterministic and probabilistic models including MDPs and POMDPs.


6.44006.837
6.4400 Computer Graphics

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

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


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

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

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


6.41106.038
6.4110 Representation, Inference, and Reasoning in AI

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

An introduction to representations and algorithms for artificial intelligence. Topics covered include: constraint satisfaction in discrete and continuous problems, logical representation and inference, Monte Carlo tree search, probabilistic graphical models and inference, planning in discrete and continuous deterministic and probabilistic models including MDPs and POMDPs.


6.72016.215
6.7201 Optimization Methods

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

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


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

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

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


6.44006.837
6.4400 Computer Graphics

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

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


6.72016.215
6.7201 Optimization Methods

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

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


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

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

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


6.39506.404
6.3950 AI, Decision Making, and Society

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

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


6.41206.804
6.4120 Computational Cognitive Science

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

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

6.45906.805
6.4590 Foundations of Information Policy

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

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


6.C35
6.C35 Interactive Data Visualization and Society

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

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


9.660

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

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

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


6.37306.419
6.3730 Statistics, Computation and Applications

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

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


6.51516.905
6.5151 Large-scale Symbolic Systems

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

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


6.58316.814
6.5831 Database Systems

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

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

6.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.87016.047
6.8701 Computational Biology: Genomes, Networks, Evolution

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

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


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

()
Prereqs: (7.05 and (6.100B or 6.9080)) or permission of instructor
Units: 3-0-9

Presents innovative approaches to computational problems in the life sciences, focusing on deep learning-based approaches with comparisons to conventional methods. Topics include protein-DNA interaction, chromatin accessibility, regulatory variant interpretation, medical image understanding, medical record understanding, therapeutic design, and experiment design (the choice and interpretation of interventions). Focuses on machine learning model selection, robustness, and interpretation. Teams complete a multidisciplinary final research project using TensorFlow or other framework. Provides a comprehensive introduction to each life sciences problem, but relies upon students understanding probabilistic problem formulations. Students taking graduate version complete additional assignments.


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

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

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


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

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

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


6.42106.800
6.4210 Robotic Manipulation

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

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


6.83016.819
6.8301 Advances in Computer Vision

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

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


6.86116.806
6.8611 Quantitative Methods for Natural Language Processing

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

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


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

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

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


6.10406.170
6.1040 Software Studio

()
Prereqs: 6.1020 and 6.1200
Units: 4-9-2

Provides design-focused instruction on how to build software applications. Design topics include classic human-computer interaction (HCI) design tactics (need finding, heuristic evaluation, prototyping, user testing), conceptual design (modeling and evaluating constituent concepts), abstract data modeling, and visual design. Implementation topics include functional programming in Javascript, reactive front-ends, web services, and databases. Students work in teams on term-long projects in which they construct applications of social value.


6.10606.172
6.1060 Software Performance Engineering

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

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


6.11006.035
6.1100 Computer Language Engineering

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

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


6.11206.818
6.1120 Dynamic Computer Language Engineering

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

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


6.14206.054
6.1420 Fixed Parameter and Fine-grained Computation

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

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


6.16006.053
6.1600 Foundations of Computer Security

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

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


6.18106.039
6.1810 Operating System Engineering

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

Design and implementation of operating systems, and their use as a foundation for systems programming. Topics include virtual memory, file systems, threads, context switches, kernels, interrupts, system calls, interprocess communication, coordination, and interaction between software and hardware. A multi-processor operating system for RISC-V, xv6, is used to illustrate these topics. Individual laboratory assignments involve extending the xv6 operating system, for example to support sophisticated virtual memory features and networking.


6.18206.808
6.1820 Mobile and Sensor Computing

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

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


6.19206.175
6.1920 Constructive Computer Architecture

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

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


6.20406.101
6.2040 Analog Electronics Laboratory

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

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


6.20506.111
6.2050 Digital Systems Laboratory

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

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

6.20606.115
6.2060 Microcomputer Project Laboratory

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

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


6.20616.1151
6.2061 Microcomputer Project Laboratory - Independent Inquiry

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

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


6.20806.300
6.2080 Introduction to 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, basic amplifier and opamp circuits. Labs give students access to CAD/EDA tools to design, analyze, and layout analog circuits. 


6.20906.301
6.2090 Solid-State Circuits

()
Prereqs: 6.2000
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, and translinear circuits. Provides practical experience through various lab exercises, including a broadband amplifier design and characterization. Students taking graduate version complete additional assignments.


6.22006.061
6.2200 Electric Energy Systems

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

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


6.22206.131
6.2220 Power Electronics Laboratory

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

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


6.22216.1311
6.2221 Power Electronics Laboratory - Independent Inquiry

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

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


6.24006.051
6.2400 Introduction to Quantum Systems Engineering

()
Prereqs: 18.03, 18.031, 18.06, or 18.C06
Units: 4-2-6

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


6.25306.701
6.2530 Introduction to Nanoelectronics

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

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


6.31006.302
6.3100 Dynamical System Modeling and Control Design

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

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


6.32606.207
6.3260 Networks

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

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


6.37206.401
6.3720 Introduction to Statistical Data Analysis

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

Introduction to the central concepts and methods of data science with an emphasis on statistical grounding and modern computational capabilities. Covers principles involved in extracting information from data for the purpose of making predictions or decisions, including data exploration, feature selection, model fitting, and performance assessment. Topics include learning of distributions, hypothesis testing (including multiple comparison procedures), linear and nonlinear regression and prediction, classification, time series, uncertainty quantification, model validation, causal inference, optimization, and decisions. Computational case studies and projects drawn from applications in finance, sports, engineering, and machine learning life sciences. Students taking graduate version complete additional assignments. Recommended prerequisite: 18.06.

6.37306.419
6.3730 Statistics, Computation and Applications

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

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


6.42106.800
6.4210 Robotic Manipulation

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

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


6.44006.837
6.4400 Computer Graphics

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

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


6.44206.807
6.4420 Computational Design and Fabrication

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

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


6.45106.810
6.4510 Engineering Interactive Technologies

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

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


6.48306.023
6.4830 Fields, Forces and Flows in Biological Systems

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

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


6.48606.025
6.4860 Medical Device Design

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

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


6.50816.816
6.5081 Multicore Programming

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

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


6.51516.905
6.5151 Large-scale Symbolic Systems

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

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


6.58316.814
6.5831 Database Systems

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

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


6.59316.812
6.5931 Hardware Architecture for Deep Learning

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

Introduction to the design and implementation of hardware architectures for efficient processing of deep learning algorithms in AI systems. Topics include basics of deep learning, programmable platforms, accelerators, co-optimization of algorithms and hardware, training, support for complex networks, and applications of advanced technologies. Includes labs involving modeling and analysis of hardware architectures, building systems using popular deep learning tools and platforms (CPU, GPU, FPGA), and an open-ended design project. Students taking graduate version complete additional assignments.


6.63316.602
6.6331 Fundamentals of Photonics

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

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

6.72016.215
6.7201 Optimization Methods

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

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


6.83016.819
6.8301 Advances in Computer Vision

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

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


6.83716.815
6.8371 Digital and Computational Photography

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

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


6.86116.806
6.8611 Quantitative Methods for Natural Language Processing

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

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


6.87016.047
6.8701 Computational Biology: Genomes, Networks, Evolution

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

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


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

()
Prereqs: (7.05 and (6.100B or 6.9080)) or permission of instructor
Units: 3-0-9

Presents innovative approaches to computational problems in the life sciences, focusing on deep learning-based approaches with comparisons to conventional methods. Topics include protein-DNA interaction, chromatin accessibility, regulatory variant interpretation, medical image understanding, medical record understanding, therapeutic design, and experiment design (the choice and interpretation of interventions). Focuses on machine learning model selection, robustness, and interpretation. Teams complete a multidisciplinary final research project using TensorFlow or other framework. Provides a comprehensive introduction to each life sciences problem, but relies upon students understanding probabilistic problem formulations. Students taking graduate version complete additional assignments.


6.87216.580
6.8721 Principles of Synthetic Biology

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

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


6.88016.026
6.8801 Biomedical Signal and Image Processing

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

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


6.90006.010
6.9000 Engineering for Impact

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

Students work in large teams to engineer systems that solve important problems in society. Leverages technical EECS background to make design choices and partition the system with an emphasis on the societal, ethical, and legal implications of those choices. Explores case studies of existing engineered systems to understand implications of different system architectures. Teams design and build functional prototypes of useful systems. Grading is based on individual- and team-based elements. Enrollment may be limited due to staffing and space requirements.


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

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

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

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

()
Prereqs: 6.S084/18.061 or 18.06 or equivalent; 6.1200, 6.3700 or equivalent; 6.100A or equivalent; Coreq: 6.C
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, this project-oriented subject consists of deep dives into select technical areas or engineering tasks involving both supervised and exploratory uses of machine learning. Deep dives into technical areas such robustness, interpretability, privacy or causal discovery; engineering tasks such as recommender systems, performance optimization, or automated design. This 6-unit subject must be taken together with the 6-unit core subject 6.C01. Enrollment may be limited.


6.S050
6.S050 Programming Language Design

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

Introduction to programming language design. Students will learn about the features used in modern programming languages. This class will prepare students to design their own languages and to become better programmers by understanding their language of choice more deeply. Topics covered include functional programming, data abstraction, modularity, types, memory management, and concurrency.


6.S082
6.S082 Special Subject in Electrical Engineering and Computer Science

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

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


BIORE: Biology restricted electives
1.018
1.018 Fundamentals of Ecology

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

Fundamentals of ecology, considering Earth as an integrated dynamic living system. Coevolution of the biosphere and geosphere, biogeochemical cycles, metabolic diversity, primary productivity, competition and the niche, trophic dynamics and food webs, population growth and limiting factors. Population modeling, global carbon cycle, climate change, geoengineering, theories of resource competition and mutualism, allometric scaling, ecological genomics, niche theory, human population growth. Applied ecology.


10.441
11.134
12.031
20.230
20.230 Immunology

()
Prereqs: 7.06
Units: 5-0-7

Comprehensive survey of molecular, genetic, and cellular aspects of the immune system. Topics include innate and adaptive immunity; cells and organs of the immune system; hematopoiesis; immunoglobulin, T cell receptor, and major histocompatibility complex (MHC) proteins and genes; development and functions of B and T lymphocytes; immune responses to infections and tumors; hypersensitivity, autoimmunity, and immunodeficiencies. Particular attention to the development and function of the immune system as a whole, as studied by modern methods and techniques. Students taking graduate version explore the subject in greater depth, including study of recent primary literature.


20.361
20.361 Molecular and Engineering Aspects of Biotechnology

()
Prereqs: (7.06 and (2.005, 3.012, 5.60, or 20.110)) or permission of instructor
Units: 4-0-8

Covers biological and bioengineering principles underlying the development and therapeutic use of recombinant proteins and stem cells; glycoengineering of recombinant proteins; normal and pathological signaling by growth factors and their receptors; receptor trafficking; monoclonal antibodies as therapeutics; protein pharmacology and delivery; stem cell-derived tissues as therapeutics; RNA therapeutics; combinatorial protein engineering; and new antitumor drugs.


5.08
5.08 Fundamentals of Chemical Biology

()
Prereqs: (GIR:BIOL, 5.13, and (5.07 or 7.05)) or permission of instructor
Units: 4-0-8

Spanning the fields of biology, chemistry, and engineering, this class introduces students to the principles of chemical biology and the application of chemical and physical methods and reagents to the study and manipulation of biological systems. Topics include nucleic acid structure, recognition, and manipulation; protein folding and stability, and proteostasis; bioorthogonal reactions and activity-based protein profiling; chemical genetics and small-molecule inhibitor screening; fluorescent probes for biological analysis and imaging; and unnatural amino acid mutagenesis. The class will also discuss the logic of dynamic post-translational modification reactions with an emphasis on chemical biology approaches for studying complex processes including glycosylation, phosphorylation, and lipidation. Students taking the graduate version are expected to explore the subject in greater depth.


6.47106.049
6.4710 Evolutionary Biology: Concepts, Models and Computation

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

Explores and illustrates how evolution explains biology, with an emphasis on computational model building for analyzing evolutionary data. Covers key concepts of biological evolution, including adaptive evolution, neutral evolution, evolution of sex, genomic conflict, speciation, phylogeny and comparative methods, life's history, coevolution, human evolution, and evolution of disease.

7.08
7.08 Fundamentals of Chemical Biology

()
Prereqs: (GIR:BIOL, 5.13, and (5.07 or 7.05)) or permission of instructor
Units: 4-0-8

Spanning the fields of biology, chemistry, and engineering, this class introduces students to the principles of chemical biology and the application of chemical and physical methods and reagents to the study and manipulation of biological systems. Topics include nucleic acid structure, recognition, and manipulation; protein folding and stability, and proteostasis; bioorthogonal reactions and activity-based protein profiling; chemical genetics and small-molecule inhibitor screening; fluorescent probes for biological analysis and imaging; and unnatural amino acid mutagenesis. The class will also discuss the logic of dynamic post-translational modification reactions with an emphasis on chemical biology approaches for studying complex processes including glycosylation, phosphorylation, and lipidation. Students taking the graduate version are expected to explore the subject in greater depth.


7.093
7.093 Modern Biostatistics

()
Prereqs: 7.03 and 7.05
Units: 2-0-4

Provides a practical introduction to probability and statistics used in modern biology. Topics covered include discrete and continuous probability distributions, statistical modeling, hypothesis testing, independence, conditional probability, multiple test corrections, nonparametric methods, clustering, correlation, linear regression, principal components analysis with applications to high-throughput DNA sequencing, and image data analysis. Homework is in the R programming language, but prior programming experience is not required. Students taking the graduate version are expected to explore the subject in greater depth.

&7.094
7.094 Modern Computational Biology

()
Prereqs: 7.03 and 7.05
Units: 2-0-4

Introduces modern methods in computational biology, focusing on DNA/RNA/protein analysis. Topics include next-generation DNA sequencing and sequencing data analysis, RNA-seq (bulk and single-cell), and protein dynamics. Students taking the graduate version are expected to explore the subject in greater depth.


7.20
7.20 Human Physiology

()
Prereqs: 7.05
Units: 5-0-7

Comprehensive exploration of human physiology, emphasizing the molecular basis and applied aspects of organ function and regulation in health and disease. Includes a review of cell structure and function, as well as the mechanisms by which the endocrine and nervous systems integrate cellular metabolism. Special emphasis on examining the cardiovascular, pulmonary, gastrointestinal, and renal systems, as well as liver function, drug metabolism, and pharmacogenetics.


7.21
7.21 Microbial Physiology

()
Prereqs: 7.03 and 7.05
Units: 4-0-8

Biochemical properties of bacteria and other microorganisms that enable them to grow under a variety of conditions. Interaction between bacteria and bacteriophages. Genetic and metabolic regulation of enzyme action and enzyme formation. Structure and function of components of the bacterial cell envelope. Protein secretion with a special emphasis on its various roles in pathogenesis. Additional topics include bioenergetics, symbiosis, quorum sensing, global responses to DNA damage, and biofilms. Students taking the graduate version are expected to explore the subject in greater depth.


7.23
7.23 Immunology

()
Prereqs: 7.06
Units: 5-0-7

Comprehensive survey of molecular, genetic, and cellular aspects of the immune system. Topics include innate and adaptive immunity; cells and organs of the immune system; hematopoiesis; immunoglobulin, T cell receptor, and major histocompatibility complex (MHC) proteins and genes; development and functions of B and T lymphocytes; immune responses to infections and tumors; hypersensitivity, autoimmunity, and immunodeficiencies. Particular attention to the development and function of the immune system as a whole, as studied by modern methods and techniques. Students taking graduate version explore the subject in greater depth, including study of recent primary literature.


7.26
7.26 Molecular Basis of Infectious Disease

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

Focuses on the principles of host-pathogen interactions with an emphasis on infectious diseases of humans. Presents key concepts of pathogenesis through the study of various human pathogens. Includes critical analysis and discussion of assigned readings. Students taking the graduate version are expected to explore the subject in greater depth.


7.27
7.27 Principles of Human Disease and Aging

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

Covers modern approaches to human diseases and aging, emphasizing the molecular and cellular basis of genetic diseases, infectious diseases, aging, and cancer. Topics include the genetics of simple and complex traits; karyotypic analysis and positional cloning; genetic diagnosis; evolutionary determination of aging, genetic and molecular aspects of aging, HIV/AIDs and other infectious diseases; the roles of oncogenes and tumor suppressors; the interaction between genetics and environment; animal models of human disease, cancer, and aging; and treatment strategies for diseases and aging. Includes a paper describing novel treatment options for a specific disease chosen by each student.


7.28
7.28 Molecular Biology

()
Prereqs/[Coreqs]: 7.03; [7.05]
Units: 5-0-7

Detailed analysis of the biochemical mechanisms that control the maintenance, expression, and evolution of prokaryotic and eukaryotic genomes. Topics covered in lecture and readings of relevant literature include: gene regulation, DNA replication, genetic recombination, and mRNA translation. Logic of experimental design and data analysis emphasized. Presentations include both lectures and group discussions of representative papers from the literature. Students taking the graduate version are expected to explore the subject in greater depth.

7.29
7.29 Cellular and Molecular Neurobiology

()
Prereqs: 7.05 or 9.01
Units: 4-0-8

Introduction to the structure and function of the nervous system. Emphasizes the cellular properties of neurons and other excitable cells. Includes the structure and biophysical properties of excitable cells, synaptic transmission, neurochemistry, neurodevelopment, integration of information in simple systems, and detection and information coding during sensory transduction.


7.30
7.30 Fundamentals of Ecology

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

Fundamentals of ecology, considering Earth as an integrated dynamic living system. Coevolution of the biosphere and geosphere, biogeochemical cycles, metabolic diversity, primary productivity, competition and the niche, trophic dynamics and food webs, population growth and limiting factors. Population modeling, global carbon cycle, climate change, geoengineering, theories of resource competition and mutualism, allometric scaling, ecological genomics, niche theory, human population growth. Applied ecology.


7.31
7.31 Current Topics in Mammalian Biology: Medical Implications

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

Covers recent advances in mammalian cell and developmental biology with particular emphasis on approaches that utilize mouse genetics. Combines formal lectures on selected topics with readings of original papers which are discussed in class. Major emphasis on the implications of mechanisms of human genetic diseases. Topics include early mammalian development; genomic imprinting; X inactivation; embryonic stem cells; nuclear reprogramming of somatic cells; cell migration; nervous system development; and central nervous system degenerative diseases such as Alzheimer's and Huntington's disease. Limited to 20.


7.32
7.32 Systems Biology

()
Prereqs: (18.03 and 18.05) or permission of instructor
Units: 3-0-9

Introduction to cellular and population-level systems biology with an emphasis on synthetic biology, modeling of genetic networks, cell-cell interactions, and evolutionary dynamics. Cellular systems include genetic switches and oscillators, network motifs, genetic network evolution, and cellular decision-making. Population-level systems include models of pattern formation, cell-cell communications, and evolutionary systems biology. Students taking graduate version explore the subject in more depth.


7.37
7.37 Molecular and Engineering Aspects of Biotechnology

()
Prereqs: (7.06 and (2.005, 3.012, 5.60, or 20.110)) or permission of instructor
Units: 4-0-8

Covers biological and bioengineering principles underlying the development and therapeutic use of recombinant proteins and stem cells; glycoengineering of recombinant proteins; normal and pathological signaling by growth factors and their receptors; receptor trafficking; monoclonal antibodies as therapeutics; protein pharmacology and delivery; stem cell-derived tissues as therapeutics; RNA therapeutics; combinatorial protein engineering; and new antitumor drugs.


7.371
7.371 Biological and Engineering Principles Underlying Novel Biotherapeutics

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

Covers biological and bioengineering principles underlying the development and therapeutic use of recombinant proteins and immune cells. Special attention to monoclonal antibodies and engineered immune system cells as therapeutics; protein- and glyco- engineering to enhance protein function; protein pharmacology and delivery; nucleic acid- based biotherapeutics; generation of functional cells and tissues from embryonic stem cells and iPS cells; and immune cell-cancer cell interactions in cancer immunotherapy.


7.45
7.45 The Hallmarks of Cancer

()
Prereqs/[Coreqs]: [7.06]
Units: 4-0-8

Provides a comprehensive introduction to the fundamentals of cancer biology and cancer treatment. Topics include cancer genetics, genomics, and epigenetics; familial cancer syndromes; signal transduction, cell cycle control, and apoptosis; cancer metabolism; stem cells and cancer; metastasis; cancer immunology and immunotherapy; conventional and molecularly-targeted therapies; and early detection and prevention. Students taking graduate version complete additional assignments.


7.46
7.46 Building with Cells

()
Prereqs: 7.03 and 7.05
Units: 4-0-8

Focuses on fundamental principles of developmental biology by which cells build organs and organisms. Analyzes the pivotal role of stem cells in tissue maintenance or repair, and in treatment of disease. Explores how to integrate this knowledge with engineering tools to construct functional tissue structures. Students taking graduate version complete additional assignments

7.49
7.49 Developmental Neurobiology

()
Prereqs: 7.03, 7.05, 9.01, or permission of instructor
Units: 3-0-9

Considers molecular control of neural specification, formation of neuronal connections, construction of neural systems, and the contributions of experience to shaping brain structure and function. Topics include: neural induction and pattern formation, cell lineage and fate determination, neuronal migration, axon guidance, synapse formation and stabilization, activity-dependent development and critical periods, development of behavior. Students taking graduate version complete additional readings that will be addressed in their mid-term and final exams.


8.591
8.591 Systems Biology

()
Prereqs: (18.03 and 18.05) or permission of instructor
Units: 3-0-9

Introduction to cellular and population-level systems biology with an emphasis on synthetic biology, modeling of genetic networks, cell-cell interactions, and evolutionary dynamics. Cellular systems include genetic switches and oscillators, network motifs, genetic network evolution, and cellular decision-making. Population-level systems include models of pattern formation, cell-cell communication, and evolutionary systems biology. Students taking graduate version explore the subject in more depth.


9.09
9.18
HST.431
HST.431 Infections and Inequalities: Interdisciplinary Perspectives on Global Health

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

Examines case studies in infectious disease outbreaks to demonstrate how human health is a product of multiple determinants, such as biology, sociocultural and historical factors, politics, economic processes, and the environment. Analyzes how structural inequalities render certain populations vulnerable to illness and explores the moral and ethical dimensions of public health and clinical interventions to promote health. Limited to 25.


HST.540
HST.540 Human Physiology

()
Prereqs: 7.05
Units: 5-0-7

Comprehensive exploration of human physiology, emphasizing the molecular basis and applied aspects of organ function and regulation in health and disease. Includes a review of cell structure and function, as well as the mechanisms by which the endocrine and nervous systems integrate cellular metabolism. Special emphasis on examining the cardiovascular, pulmonary, gastrointestinal, and renal systems, as well as liver function, drug metabolism, and pharmacogenetics.


CIM2: EECS CI-M subjects
6.18006.033
6.1800 Computer Systems Engineering

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

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


6.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.20606.115
6.2060 Microcomputer Project Laboratory

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

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


6.20616.1151
6.2061 Microcomputer Project Laboratory - Independent Inquiry

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

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


6.22206.131
6.2220 Power Electronics Laboratory

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

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

6.22216.1311
6.2221 Power Electronics Laboratory - Independent Inquiry

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

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


6.23706.161
6.2370 Modern Optics Project Laboratory

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

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


6.26006.152
6.2600 Micro/Nano Processing Technology

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

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


6.42006.141
6.4200 Robotics: Science and Systems

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

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


6.42106.800
6.4210 Robotic Manipulation

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

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

6.45906.805
6.4590 Foundations of Information Policy

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

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


6.48606.025
6.4860 Medical Device Design

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

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


6.48806.129
6.4880 Biological Circuit Engineering Laboratory

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

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


6.83016.819
6.8301 Advances in Computer Vision

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

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


6.86116.806
6.8611 Quantitative Methods for Natural Language Processing

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

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

6.90306.163
6.9030 Strobe Project Laboratory

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

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


6.UAR
6.UAR Seminar in Undergraduate Advanced Research

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

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


6.UAT
6.UAT Oral Communication

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

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


COMPBIO: Restricted electives in Computational Biology
18.418
18.418 Topics in Computational Molecular Biology

()
Prereqs: 6.8701, 18.417, or permission of instructor
Units: 3-0-9

Covers current research topics in computational molecular biology. Recent research papers presented from leading conferences such as the International Conference on Computational Molecular Biology (RECOMB) and the Conference on Intelligent Systems for Molecular Biology (ISMB). Topics include original research (both theoretical and experimental) in comparative genomics, sequence and structure analysis, molecular evolution, proteomics, gene expression, transcriptional regulation, biological networks, drug discovery, and privacy. Recent research by course participants also covered. Participants will be expected to present individual projects to the class.


6.47106.049
6.4710 Evolutionary Biology: Concepts, Models and Computation

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

Explores and illustrates how evolution explains biology, with an emphasis on computational model building for analyzing evolutionary data. Covers key concepts of biological evolution, including adaptive evolution, neutral evolution, evolution of sex, genomic conflict, speciation, phylogeny and comparative methods, life's history, coevolution, human evolution, and evolution of disease.


6.87016.047
6.8701 Computational Biology: Genomes, Networks, Evolution

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

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

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

()
Prereqs: (7.05 and (6.100B or 6.9080)) or permission of instructor
Units: 3-0-9

Presents innovative approaches to computational problems in the life sciences, focusing on deep learning-based approaches with comparisons to conventional methods. Topics include protein-DNA interaction, chromatin accessibility, regulatory variant interpretation, medical image understanding, medical record understanding, therapeutic design, and experiment design (the choice and interpretation of interventions). Focuses on machine learning model selection, robustness, and interpretation. Teams complete a multidisciplinary final research project using TensorFlow or other framework. Provides a comprehensive introduction to each life sciences problem, but relies upon students understanding probabilistic problem formulations. Students taking graduate version complete additional assignments.


7.093
7.093 Modern Biostatistics

()
Prereqs: 7.03 and 7.05
Units: 2-0-4

Provides a practical introduction to probability and statistics used in modern biology. Topics covered include discrete and continuous probability distributions, statistical modeling, hypothesis testing, independence, conditional probability, multiple test corrections, nonparametric methods, clustering, correlation, linear regression, principal components analysis with applications to high-throughput DNA sequencing, and image data analysis. Homework is in the R programming language, but prior programming experience is not required. Students taking the graduate version are expected to explore the subject in greater depth.

&7.094
7.094 Modern Computational Biology

()
Prereqs: 7.03 and 7.05
Units: 2-0-4

Introduces modern methods in computational biology, focusing on DNA/RNA/protein analysis. Topics include next-generation DNA sequencing and sequencing data analysis, RNA-seq (bulk and single-cell), and protein dynamics. Students taking the graduate version are expected to explore the subject in greater depth.


HST.504
HST.504 Topics in Computational Molecular Biology

()
Prereqs: 6.8701, 18.417, or permission of instructor
Units: 3-0-9

Covers current research topics in computational molecular biology. Recent research papers presented from leading conferences such as the International Conference on Computational Molecular Biology (RECOMB) and the Conference on Intelligent Systems for Molecular Biology (ISMB). Topics include original research (both theoretical and experimental) in comparative genomics, sequence and structure analysis, molecular evolution, proteomics, gene expression, transcriptional regulation, biological networks, drug discovery, and privacy. Recent research by course participants also covered. Participants will be expected to present individual projects to the class.


CS12: CS subjects at levels 1 and 2
6.10106.009
6.1010 Fundamentals of Programming

(,)
Prereqs: 6.100A
Units: 2-4-6

Introduces fundamental concepts of programming. Designed to develop skills in applying basic methods from programming languages to abstract problems. Topics include programming and Python basics, computational concepts, software engineering, algorithmic techniques, data types, and recursion.  Lab component consists of software design, construction, and implementation of design. Enrollment may be limited.


6.10206.031
6.1020 Software Construction

()
Prereqs: 6.1010
Units: 3-0-12

Introduces fundamental principles and techniques of software development: how to write software that is safe from bugs, easy to understand, and ready for change. Topics include specifications and invariants; testing, test-case generation, and coverage; abstract data types and representation independence; design patterns for object-oriented programming; concurrent programming, including message passing and shared memory concurrency, and defending against races and deadlock; and functional programming with immutable data and higher-order functions. Includes weekly programming exercises and larger group programming projects.


6.12106.006
6.1210 Introduction to Algorithms

(,)
Prereqs/[Coreqs]: 6.1200 and (6.100A or [6.1010])
Units: 5-0-7

Introduction to mathematical modeling of computational problems, as well as common algorithms, algorithmic paradigms, and data structures used to solve these problems. Emphasizes the relationship between algorithms and programming, and introduces basic performance measures and analysis techniques for these problems. Enrollment may be limited.


6.12206.046
6.1220 Design and Analysis of Algorithms

(,)
Prereqs: 6.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.1210 or permission of instructor
Units: 4-0-8

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


6.18006.033
6.1800 Computer Systems Engineering

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

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


6.41006.034
6.4100 Artificial Intelligence

()
Prereqs: 6.100A
Units: 4-3-5

Introduces representations, methods, and architectures used to build applications and to account for human intelligence from a computational point of view. Covers applications of rule chaining, constraint propagation, constrained search, inheritance, statistical inference, and other problem-solving paradigms. Also addresses applications of identification trees, neural nets, genetic algorithms, support-vector machines, boosting, and other learning paradigms. Considers what separates human intelligence from that of other animals. Students taking graduate version complete additional assignments.


DLAB2: Advanced departmental lab. A subject provides a DLAB2 experience if at least 40% of the grade in a 12-unit subject is based on laboratory assignments. A laboratory assignment involves a question that is answered through empirical investigation; it may include the design, construction, and testing of a physical or software artifact.
6.10406.170
6.1040 Software Studio

()
Prereqs: 6.1020 and 6.1200
Units: 4-9-2

Provides design-focused instruction on how to build software applications. Design topics include classic human-computer interaction (HCI) design tactics (need finding, heuristic evaluation, prototyping, user testing), conceptual design (modeling and evaluating constituent concepts), abstract data modeling, and visual design. Implementation topics include functional programming in Javascript, reactive front-ends, web services, and databases. Students work in teams on term-long projects in which they construct applications of social value.


6.10606.172
6.1060 Software Performance Engineering

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

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


6.11006.035
6.1100 Computer Language Engineering

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

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


6.18206.808
6.1820 Mobile and Sensor Computing

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

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


6.19206.175
6.1920 Constructive Computer Architecture

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

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


6.20406.101
6.2040 Analog Electronics Laboratory

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

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


6.20506.111
6.2050 Digital Systems Laboratory

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

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


6.20606.115
6.2060 Microcomputer Project Laboratory

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

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


6.20616.1151
6.2061 Microcomputer Project Laboratory - Independent Inquiry

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

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

6.20906.301
6.2090 Solid-State Circuits

()
Prereqs: 6.2000
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, and translinear circuits. Provides practical experience through various lab exercises, including a broadband amplifier design and characterization. Students taking graduate version complete additional assignments.


6.20926.321
6.2092 Solid-State Circuits

()
Prereqs: 6.2000
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, and translinear circuits. Provides practical experience through various lab exercises, including a broadband amplifier design and characterization. Students taking graduate version complete additional assignments.


6.22206.131
6.2220 Power Electronics Laboratory

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

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


6.22216.1311
6.2221 Power Electronics Laboratory - Independent Inquiry

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

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


6.23706.161
6.2370 Modern Optics Project Laboratory

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

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


6.24106.157
6.2410 Quantum Engineering Platforms

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

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


6.24106.157
6.2410 Quantum Engineering Platforms

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

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


6.25406.015
6.2540 Nanotechnology: From Atoms to Systems

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

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


6.26006.152
6.2600 Micro/Nano Processing Technology

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

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

6.31006.302
6.3100 Dynamical System Modeling and Control Design

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

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


6.31026.320
6.3102 Dynamical System Modeling and Control Design

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

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


6.42006.141
6.4200 Robotics: Science and Systems

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

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


6.44006.837
6.4400 Computer Graphics

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

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


6.44206.807
6.4420 Computational Design and Fabrication

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

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


6.45506.185
6.4550 Interactive Music Systems

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

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


6.45706.073
6.4570 Creating Video Games

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

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


6.48606.025
6.4860 Medical Device Design

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

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


6.48806.129
6.4880 Biological Circuit Engineering Laboratory

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

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

6.50816.816
6.5081 Multicore Programming

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

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


6.83016.819
6.8301 Advances in Computer Vision

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

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


6.84206.839
6.8420 Computational Design and Fabrication

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

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


6.86116.806
6.8611 Quantitative Methods for Natural Language Processing

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

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


6.87016.047
6.8701 Computational Biology: Genomes, Networks, Evolution

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

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


6.88016.026
6.8801 Biomedical Signal and Image Processing

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

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


6.90306.163
6.9030 Strobe Project Laboratory

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

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


6.C35
6.C35 Interactive Data Visualization and Society

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

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


ECONDS: Economics electives in data science
14.20
14.20 Industrial Organization: Competitive Strategy and Public Policy

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

Analyzes the current debate over the rise of monopolies, the strategic behavior and performance of firms in imperfectly competitive markets, and the role of competition policy. Topics include monopoly power; pricing, product choice, and innovation decisions by firms in oligopoly markets; static and dynamic measurement of market performance; and incentives in organizations. Requires regular participation in class discussion and teamwork in a competitive strategy game. Students taking graduate version complete additional assignments.


14.27
14.27 Economics and E-Commerce

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

Uses theoretical economic models and empirical evidence to help understand the growth and future of e-commerce. Economic models help frame class discussions of, among other topics, content provision, privacy, piracy, sales taxation, group purchasing, price search, and advertising on the internet. Empirical project and paper required. Students taking graduate version complete additional assignments.


14.36
14.36 Advanced Econometrics

()
Prereqs: 14.32
Units: 2-0-4

Emphasizes econometric theory, methods, and applications using regression, instrumental variables, differences-in-differences, regression discontinuity designs, machine learning and big data sets, and problems related to standard errors and statistical inference. Includes a project with a theoretical, written and data-analytic component. Familiarity with Stata or a similar statistical programming language recommended. Students taking graduate version complete additional assignments.


14.38
14.38 Inference on Causal and Structural Parameters Using ML and AI

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

Provides an applied treatment of modern causal inference with high-dimensional data, focusing on empirical economic problems encountered in academic research and the tech industry. Formulates problems in the languages of structural equation modeling and potential outcomes. Presents state-of-the-art approaches for inference on causal and structural parameters, including de-biased machine learning, synthetic control methods, and reinforcement learning. Introduces tools from machine learning and deep learning developed for prediction purposes, and discusses how to adapt them to learn causal parameters. Emphasizes the applied and practical perspectives. Requires knowledge of mathematical statistics and regression analysis and programming experience in R or Python.


14.41
14.41 Public Finance and Public Policy

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

Explores the role of government in the economy, applying tools of basic microeconomics to answer important policy questions such as government response to global warming, school choice by K-12 students, Social Security versus private retirement savings accounts, government versus private health insurance, setting income tax rates for individuals and corporations.

14.42
14.42 Environmental Policy and Economics

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

Introduces key concepts and recent advances in environmental economics, and explores their application to environmental policy questions. Topics include market efficiency and market failure, methods for valuing the benefits of environmental quality, the proper role of government in the regulation of the environment, environmental policy design, and implementation challenges. Considers international aspects of environmental policy as well, including the economics of climate change, trade and the environment, and environmental challenges in developing countries. Students taking graduate version complete additional assignments.


14.43
14.43 Economics of Energy, Innovation, and Sustainability

()
Prereqs: 14.01 or 15.0111
Units: 3-0-9

Covers energy and environmental market organization and regulation. Explores economic challenges and solutions to transforming energy markets to be more efficient, accessible, affordable, and sustainable. Applies core economic concepts - consumer choice, firm profit maximization, and strategic behavior - to understand when energy and environmental markets work well and when they fail. They also conduct data-driven economic analysis on the trade-offs of real and proposed policy interventions. Topics include renewable generation sources for electricity, energy access in emerging markets, efficiency programs and fuel efficiency standards, transitioning transportation to alternative fuels, measuring damages and adaptation to climate change, and the effect of energy and environmental policy on innovation. Expectations and evaluation criteria differ for students taking graduate version; consult syllabus or instructor for specific details.


14.44
14.44 Energy Economics and Policy

()
Prereqs: 14.01 or 15.0111
Units: 4-0-8

Analyzes business and public policy issues in energy markets and in the environmental markets to which they are closely tied. Examines the economic determinants of industry structure and evolution of competition among firms in these industries. Investigates successful and unsuccessful strategies for entering new markets and competing in existing markets. Industries studied include oil, natural gas, coal, electricity, and transportation. Topics include climate change and environmental policy, the role of speculation in energy markets, the political economy of energy policies, and market power and antitrust. Two team-based simulation games, representing the world oil market and a deregulated electricity market, act to cement the concepts covered in lecture. Students taking graduate version complete additional assignments. Limited to 60.


14.64
14.64 Labor Economics and Public Policy

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

Provides an introduction to the labor market, how it functions, and the important role it plays in people's lives. Topics include supply and demand, minimum wages, labor market effects of social insurance and welfare programs, the collective bargaining relationship, discrimination, human capital, and unemployment. Completion of or concurrent enrollment in 14.03 or 14.04,  and 14.32 recommended. Students taking graduate version complete additional assignments.


14.75
14.75 Political Economy and Economic Development

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

Explores the relationship between political institutions and economic development, covering key theoretical issues as well as recent empirical evidence. Topics include corruption, voting, vote buying, the media, and war. Discusses not just what we know on these topics, but how we know it, covering how to craft a good empirical study or field experiment and how to discriminate between reliable and unreliable evidence.  Some basic familiarity with probability and/or statistics is useful for this class.  Students taking graduate version complete additional assignments.

14.76
14.76 Firms, Markets, Trade and Growth

()
Prereqs: 14.01 and (14.30 or permission of instructor)
Units: 4-0-8

Examines how industrial development and international trade have brought about rapid growth and large-scale reductions in poverty for some developing countries, while globalization has simply increased inequality and brought little growth for others. Also considers why, in yet other developing countries, firms remain small-scale and have not integrated with global supply chains. Draws on both theoretical models and empirical evidence to better understand the reasons for these very different experiences and implications for policy. Students taking graduate version complete additional assignments.


15.0201
15.0201 Economics of Energy, Innovation, and Sustainability

()
Prereqs: 14.01 or 15.0111
Units: 3-0-9

Covers energy and environmental market organization and regulation. Explores economic challenges and solutions to transforming energy markets to be more efficient, accessible, affordable, and sustainable. Applies core economic concepts - consumer choice, firm profit maximization, and strategic behavior - to understand when energy and environmental markets work well and when they fail. They also conduct data-driven economic analysis on the trade-offs of real and proposed policy interventions. Topics include renewable generation sources for electricity, energy access in emerging markets, efficiency programs and fuel efficiency standards, transitioning transportation to alternative fuels, measuring damages and adaptation to climate change, and the effect of energy and environmental policy on innovation. Expectations and evaluation criteria differ for students taking graduate version; consult syllabus or instructor for specific details.


15.037
15.037 Energy Economics and Policy

()
Prereqs: 14.01 or 15.0111
Units: 4-0-8

Analyzes business and public policy issues in energy markets and in the environmental markets to which they are closely tied. Examines the economic determinants of industry structure and evolution of competition among firms in these industries. Investigates successful and unsuccessful strategies for entering new markets and competing in existing markets. Industries studied include oil, natural gas, coal, electricity, and transportation. Topics include climate change and environmental policy, the role of speculation in energy markets, the political economy of energy policies, and market power and antitrust. Two team-based simulation games, representing the world oil market and a deregulated electricity market, act to cement the concepts covered in lecture. Students taking graduate version complete additional assignments. Limited to 60.


15.780
15.780 Stochastic Models in Business Analytics

()
Prereqs: 6.041B, 15.0791, or permission of instructor
Units: 3-0-9

Introduces core concepts in data-driven stochastic modeling that inform and optimize business decisions under uncertainty. Covers stochastic models and frameworks, such as queuing theory, time series forecasting, network models, dynamic programming, and stochastic optimization. Draws on real-world applications, with several examples from retail, healthcare, logistics, supply chain, social and online networks, and sports analytics.


ECONTH: Economics electives in theory
14.04
14.04 Intermediate Microeconomic Theory

()
Prereqs: GIR:CAL2 and 14.01
Units: 4-0-8

Introduction to theory and data for students interested in economic science. Introduction to consumer choice, the theory of the firm and general equilibrium models, with an overview of the main results and tools used in these subjects, both directly and indirectly as used in a variety of fields. Includes analysis of consumer and producer decisions, partial and general equilibrium analysis, insurance, the welfare theorems and failures of these theorems as with externalities but with resolutions, contract theory and mechanism design, policy analysis, the content of theory for data, and the design of media of exchange as with Bitcoin and markets made possible by distributed ledgers.


14.12
14.12 Economic Applications of Game Theory

()
Prereqs: 14.01 and (6.041B, 14.04, 14.30, 18.05, or permission of instructor)
Units: 4-0-8

Analysis of strategic behavior in multi-person economic settings. Introduction to solution concepts, such as rationalizability, backwards induction, Nash equilibrium, subgame-perfect equilibrium, and sequential equilibrium. Strong emphasis on dynamic games, such as repeated games. Introduction to Bayesian games, focusing on Bayesian Nash Equilibrium, Perfect Bayesian Equilibrium, and signaling games. Applications drawn from microeconomics: imperfect competition, implicit cartels, bargaining, and auctions.


14.13
14.13 Psychology and Economics

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

Introduces the theoretical and empirical literature of behavioral economics. Examines important and systematic departures from the standard models in economics by incorporating insights from psychology and other social sciences. Covers theory and evidence on time, risk, and social preferences; beliefs and learning; emotions; limited attention; and frames, defaults, and nudges. Studies applications to many different areas, such as credit card debt, procrastination, retirement savings, addiction, portfolio choice, poverty, labor supply, happiness, and government policy. Students participate in surveys and experiments in class, review evidence from lab experiments, examine how the results can be integrated into models, and test models using field and lab data. Students taking graduate version complete additional assignments.


14.16
14.16 Strategy and Information

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

Covers modern applications of game theory where incomplete information plays an important role. Applications include bargaining, auctions, global games, market design, information design, and network economics. Students taking graduate version complete additional assignments.


14.19
14.19 Market Design

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

Covers the design and operation of organized markets, building on ideas from microeconomic and game theory. Topics may include mechanism design, auctions, matching markets, and other resource allocation problems.

14.26
14.26 Organizational Economics

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

Provides a rigorous, but not overly technical introduction to the economic theory of organization together with a varying set of applications. Addresses incentives, control, relationships, decision processes, and organizational culture and performance. Introduces selected fundamentals of game theory. Students taking graduate version complete additional assignments. Limited to 60.


14.54
14.54 International Trade

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

Provides an introduction to theoretical and empirical topics in international trade. Offers a brief history of globalization. Introduces the theory of comparative advantage and discusses its implications for international specialization and wage inequality. Studies the determinants and consequences of trade policy, and analyzes the consequences of immigration and foreign direct investment. Students taking graduate version complete additional assignments.


15.039
15.039 Organizational Economics

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

Provides a rigorous, but not overly technical introduction to the economic theory of organization together with a varying set of applications. Addresses incentives, control, relationships, decision processes, and organizational culture and performance. Introduces selected fundamentals of game theory. Students taking graduate version complete additional assignments. Limited to 60.


6.32606.207
6.3260 Networks

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

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


EECS: All the undergraduate subjects that satisfy departmental undergraduate requirements. Also see the grad_AUS and grad_II lists below.
18.05
18.05 Introduction to Probability and Statistics

()
Prereqs: GIR:CAL2
Units: 4-0-8

Elementary introduction with applications. Basic probability models. Combinatorics. Random variables. Discrete and continuous probability distributions. Statistical estimation and testing. Confidence intervals. Introduction to linear regression.


18.600
18.600 Probability and Random Variables

(,)
Prereqs: GIR:CAL2
Units: 4-0-8

Probability spaces, random variables, distribution functions. Binomial, geometric, hypergeometric, Poisson distributions. Uniform, exponential, normal, gamma and beta distributions. Conditional probability, Bayes theorem, joint distributions. Chebyshev inequality, law of large numbers, and central limit theorem. Credit cannot also be received for 6.041A or 6.041B.


2.007
2.007 Design and Manufacturing I

()
Prereqs/[Coreqs]: 2.001 and 2.670; [2.086]
Units: 3-4-5

Develops students' competence and self-confidence as design engineers. Emphasis on the creative design process bolstered by application of physical laws. Instruction on how to complete projects on schedule and within budget. Robustness and manufacturability are emphasized. Subject relies on active learning via a major design-and-build project. Lecture topics include idea generation, estimation, concept selection, visual thinking, computer-aided design (CAD), mechanism design, machine elements, basic electronics, technical communication, and ethics. Lab fee. Limited enrollment. Pre-registration required for lab assignment; special sections by lottery only.


6.100A6.0001
6.100A Introduction to Computer Science Programming in Python

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

Introduction to computer science and programming for students with little or no programming experience. Students develop skills to program and use computational techniques to solve problems. Topics include the notion of computation, Python, simple algorithms and data structures, testing and debugging, and algorithmic complexity. Combination of 6.100A and 6.100B or 16.C20 counts as REST subject. Final given in the seventh week of the term.

&6.100B6.0002
6.100B Introduction to Computational Thinking and Data Science

(,)
Prereqs: 6.100A or permission of instructor
Units: 3-0-3

Provides an introduction to using computation to understand real-world phenomena. Topics include plotting, stochastic programs, probability and statistics, random walks, Monte Carlo simulations, modeling data, optimization problems, and clustering. Combination of 6.100A and 6.100B counts as REST subject.


6.10106.009
6.1010 Fundamentals of Programming

(,)
Prereqs: 6.100A
Units: 2-4-6

Introduces fundamental concepts of programming. Designed to develop skills in applying basic methods from programming languages to abstract problems. Topics include programming and Python basics, computational concepts, software engineering, algorithmic techniques, data types, and recursion.  Lab component consists of software design, construction, and implementation of design. Enrollment may be limited.


6.10206.031
6.1020 Software Construction

()
Prereqs: 6.1010
Units: 3-0-12

Introduces fundamental principles and techniques of software development: how to write software that is safe from bugs, easy to understand, and ready for change. Topics include specifications and invariants; testing, test-case generation, and coverage; abstract data types and representation independence; design patterns for object-oriented programming; concurrent programming, including message passing and shared memory concurrency, and defending against races and deadlock; and functional programming with immutable data and higher-order functions. Includes weekly programming exercises and larger group programming projects.


6.10406.170
6.1040 Software Studio

()
Prereqs: 6.1020 and 6.1200
Units: 4-9-2

Provides design-focused instruction on how to build software applications. Design topics include classic human-computer interaction (HCI) design tactics (need finding, heuristic evaluation, prototyping, user testing), conceptual design (modeling and evaluating constituent concepts), abstract data modeling, and visual design. Implementation topics include functional programming in Javascript, reactive front-ends, web services, and databases. Students work in teams on term-long projects in which they construct applications of social value.


6.10606.172
6.1060 Software Performance Engineering

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

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


6.11006.035
6.1100 Computer Language Engineering

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

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


6.11206.818
6.1120 Dynamic Computer Language Engineering

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

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


6.12006.042
6.1200 Mathematics for Computer Science

(,)
Prereqs: GIR:CAL1
Units: 5-0-7

Elementary discrete mathematics for science and engineering, with a focus on mathematical tools and proof techniques useful in computer science. Topics include logical notation, sets, relations, elementary graph theory, state machines and invariants, induction and proofs by contradiction, recurrences, asymptotic notation, elementary analysis of algorithms, elementary number theory and cryptography, permutations and combinations, counting tools, and discrete probability.


6.12106.006
6.1210 Introduction to Algorithms

(,)
Prereqs/[Coreqs]: 6.1200 and (6.100A or [6.1010])
Units: 5-0-7

Introduction to mathematical modeling of computational problems, as well as common algorithms, algorithmic paradigms, and data structures used to solve these problems. Emphasizes the relationship between algorithms and programming, and introduces basic performance measures and analysis techniques for these problems. Enrollment may be limited.


6.12206.046
6.1220 Design and Analysis of Algorithms

(,)
Prereqs: 6.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.1210 or permission of instructor
Units: 4-0-8

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


6.14206.054
6.1420 Fixed Parameter and Fine-grained Computation

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

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


6.16006.053
6.1600 Foundations of Computer Security

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

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


6.18006.033
6.1800 Computer Systems Engineering

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

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


6.18106.039
6.1810 Operating System Engineering

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

Design and implementation of operating systems, and their use as a foundation for systems programming. Topics include virtual memory, file systems, threads, context switches, kernels, interrupts, system calls, interprocess communication, coordination, and interaction between software and hardware. A multi-processor operating system for RISC-V, xv6, is used to illustrate these topics. Individual laboratory assignments involve extending the xv6 operating system, for example to support sophisticated virtual memory features and networking.


6.18206.808
6.1820 Mobile and Sensor Computing

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

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


6.18506.052
6.1850 Computer Systems and Society

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

Explores the impact of computer systems on individual humans, society, and the environment. Examines large- and small-scale power structures that stem from low-level technical design decisions, the consequences of those structures on society, and how they can limit or provide access to certain technologies. Students learn to assess design decisions within an ethical framework and consider the impact of their decisions on non-users. Case studies of working systems and readings from the current literature provide comparisons and contrasts. Possible topics include the implications of hierarchical designs (e.g., DNS) for scale; how layered models influence what parts of a network have the power to take certain actions; and the environmental impact of proof-of-work-based systems such as Bitcoin. Enrollment may be limited.


6.19106.004
6.1910 Computation Structures

(,)
Prereqs: GIR:PHY2, 6.100A, and (6.1900 or 6.9010)
Units: 4-0-8

Provides an introduction to the design of digital systems and computer architecture. Emphasizes expressing all hardware designs in a high-level hardware language and synthesizing the designs. Topics include combinational and sequential circuits, instruction set abstraction for programmable hardware, single-cycle and pipelined processor implementations, multi-level memory hierarchies, virtual memory, exceptions and I/O, and parallel systems.


6.19206.175
6.1920 Constructive Computer Architecture

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

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


6.20006.002
6.2000 Electrical Circuits: Modeling and Design of Physical Systems

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

Fundamentals of linear systems, and abstraction modeling of multi-physics lumped and distributed systems using lumped electrical circuits. Linear networks involving independent and dependent sources, resistors, capacitors, and inductors. Extensions to include operational amplifiers and transducers. Dynamics of first- and second-order networks; analysis and design in the time and frequency domains; signal and energy processing applications. Design exercises. Weekly laboratory with microcontroller and transducers.


6.20406.101
6.2040 Analog Electronics Laboratory

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

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


6.20506.111
6.2050 Digital Systems Laboratory

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

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


6.20606.115
6.2060 Microcomputer Project Laboratory

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

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


6.20616.1151
6.2061 Microcomputer Project Laboratory - Independent Inquiry

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

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

6.20906.301
6.2090 Solid-State Circuits

()
Prereqs: 6.2000
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, and translinear circuits. Provides practical experience through various lab exercises, including a broadband amplifier design and characterization. Students taking graduate version complete additional assignments.


6.22006.061
6.2200 Electric Energy Systems

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

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


6.22106.014
6.2210 Electromagnetic Fields, Forces and Motion

()
Prereqs: GIR:PHY2 and 18.03
Units: 3-0-9

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


6.22206.131
6.2220 Power Electronics Laboratory

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

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


6.22216.1311
6.2221 Power Electronics Laboratory - Independent Inquiry

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

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


6.23006.013
6.2300 Electromagnetics Waves and Applications

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

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


6.23706.161
6.2370 Modern Optics Project Laboratory

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

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


6.24006.051
6.2400 Introduction to Quantum Systems Engineering

()
Prereqs: 18.03, 18.031, 18.06, or 18.C06
Units: 4-2-6

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


6.24106.157
6.2410 Quantum Engineering Platforms

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

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


6.25006.012
6.2500 Nanoelectronics and Computing Systems

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

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


6.25306.701
6.2530 Introduction to Nanoelectronics

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

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


6.25406.015
6.2540 Nanotechnology: From Atoms to Systems

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

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


6.26006.152
6.2600 Micro/Nano Processing Technology

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

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


6.30006.003
6.3000 Signal Processing

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

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


6.30106.011
6.3010 Signals, Systems and Inference

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

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


6.30206.187
6.3020 Fundamentals of Music Processing

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

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


6.31006.302
6.3100 Dynamical System Modeling and Control Design

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

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


6.32606.207
6.3260 Networks

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

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


6.34006.02
6.3400 Introduction to EECS via Communication Networks

()
Prereqs: 6.100A
Units: 4-4-4

Studies key concepts, systems, and algorithms to reliably communicate data in settings ranging from the cellular phone network and the Internet to deep space. Weekly laboratory experiments explore these areas in depth. Topics presented in three modules - bits, signals, and packets - spanning the multiple layers of a communication system. Bits module includes information, entropy, data compression algorithms, and error correction with block and convolutional codes. Signals module includes modeling physical channels and noise, signal design, filtering and detection, modulation, and frequency-division multiplexing. Packets module includes switching and queuing principles, media access control, routing protocols, and data transport protocols.


6.37006.041
6.3700 Introduction to Probability

(,)
Prereqs: GIR:CAL2
Units: 4-0-8

An introduction to probability theory, the modeling and analysis of probabilistic systems, and elements of statistical inference. Probabilistic models, conditional probability. Discrete and continuous random variables. Expectation and conditional expectation, and further topics about random variables. Limit Theorems. Bayesian estimation and hypothesis testing. Elements of classical statistical inference. Bernoulli and Poisson processes. Markov chains. Students taking graduate version complete additional assignments.


6.37026.431
6.3702 Introduction to Probability

(,)
Prereqs: GIR:CAL2
Units: 4-0-8

An introduction to probability theory, the modeling and analysis of probabilistic systems, and elements of statistical inference. Probabilistic models, conditional probability. Discrete and continuous random variables. Expectation and conditional expectation, and further topics about random variables. Limit Theorems. Bayesian estimation and hypothesis testing. Elements of classical statistical inference. Bernoulli and Poisson processes. Markov chains. Students taking graduate version complete additional assignments.


6.37206.401
6.3720 Introduction to Statistical Data Analysis

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

Introduction to the central concepts and methods of data science with an emphasis on statistical grounding and modern computational capabilities. Covers principles involved in extracting information from data for the purpose of making predictions or decisions, including data exploration, feature selection, model fitting, and performance assessment. Topics include learning of distributions, hypothesis testing (including multiple comparison procedures), linear and nonlinear regression and prediction, classification, time series, uncertainty quantification, model validation, causal inference, optimization, and decisions. Computational case studies and projects drawn from applications in finance, sports, engineering, and machine learning life sciences. Students taking graduate version complete additional assignments. Recommended prerequisite: 18.06.


6.37306.419
6.3730 Statistics, Computation and Applications

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

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


6.38006.008
6.3800 Introduction to Inference

()
Prereqs: GIR:CAL2 or permission of instructor
Units: 4-4-4

Introduces probabilistic modeling for problems of inference and machine learning from data, emphasizing analytical and computational aspects. Distributions, marginalization, conditioning, and structure, including graphical and neural network representations. Belief propagation, decision-making, classification, estimation, and prediction. Sampling methods and analysis. Introduces asymptotic analysis and information measures. Computational laboratory component explores the concepts introduced in class in the context of contemporary applications. Students design inference algorithms, investigate their behavior on real data, and discuss experimental results.


6.39006.036
6.3900 Introduction to Machine Learning

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

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


6.39506.404
6.3950 AI, Decision Making, and Society

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

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


6.41006.034
6.4100 Artificial Intelligence

()
Prereqs: 6.100A
Units: 4-3-5

Introduces representations, methods, and architectures used to build applications and to account for human intelligence from a computational point of view. Covers applications of rule chaining, constraint propagation, constrained search, inheritance, statistical inference, and other problem-solving paradigms. Also addresses applications of identification trees, neural nets, genetic algorithms, support-vector machines, boosting, and other learning paradigms. Considers what separates human intelligence from that of other animals. 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.41306.817
6.4130 Principles of Autonomy and Decision Making

()
Prereqs: 6.100B or 6.9080
Units: 4-0-8

Surveys decision making methods used to create highly autonomous systems and decision aids. Applies models, principles and algorithms taken from artificial intelligence and operations research. Focuses on planning as state-space search, including uninformed, informed and stochastic search, activity and motion planning, probabilistic and adversarial planning, Markov models and decision processes, and Bayesian filtering. Also emphasizes planning with real-world constraints using constraint programming. Includes methods for satisfiability and optimization of logical, temporal and finite domain constraints, graphical models, and linear and integer programs, as well as methods for search, inference, and conflict-learning. Students taking graduate version complete additional assignments.


6.42006.141
6.4200 Robotics: Science and Systems

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

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


6.42106.800
6.4210 Robotic Manipulation

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

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


6.44006.837
6.4400 Computer Graphics

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

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


6.44206.807
6.4420 Computational Design and Fabrication

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

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


6.45106.810
6.4510 Engineering Interactive Technologies

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

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


6.45306.811
6.4530 Principles and Practice of Assistive Technology

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

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


6.45506.185
6.4550 Interactive Music Systems

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

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


6.45706.073
6.4570 Creating Video Games

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

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


6.45906.805
6.4590 Foundations of Information Policy

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

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


6.47106.049
6.4710 Evolutionary Biology: Concepts, Models and Computation

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

Explores and illustrates how evolution explains biology, with an emphasis on computational model building for analyzing evolutionary data. Covers key concepts of biological evolution, including adaptive evolution, neutral evolution, evolution of sex, genomic conflict, speciation, phylogeny and comparative methods, life's history, coevolution, human evolution, and evolution of disease.


6.48106.021
6.4810 Cellular Neurophysiology and Computing

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

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


6.48206.022
6.4820 Quantitative and Clinical Physiology

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

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


6.48306.023
6.4830 Fields, Forces and Flows in Biological Systems

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

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


6.48406.024
6.4840 Molecular, Cellular, and Tissue Biomechanics

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

Develops and applies scaling laws and the methods of continuum mechanics to biomechanical phenomena over a range of length scales. Topics include structure of tissues and the molecular basis for macroscopic properties; chemical and electrical effects on mechanical behavior; cell mechanics, motility and adhesion; biomembranes; biomolecular mechanics and molecular motors. Experimental methods for probing structures at the tissue, cellular, and molecular levels. Students taking graduate version complete additional assignments.


6.48606.025
6.4860 Medical Device Design

()
Prereqs: 2.008, 6.2040, 6.2050, 22.071, 6.2060, or permission of instructor
Units: 3-3-6

Provides an intense project-based learning experience around the design of medical devices with foci ranging from mechanical to electro mechanical to electronics. Projects motivated by real-world clinical challenges provided by sponsors and clinicians who also help mentor teams. Covers the design process, project management, and fundamentals of mechanical and electrical circuit and sensor design. Students work in small teams to execute a substantial term project, with emphasis placed upon developing creative designs -- via a deterministic design process -- that are developed and optimized using analytical techniques. Includes mandatory lab. Instruction and practice in written and oral communication provided. Students taking graduate version complete additional assignments. Enrollment limited.


6.48806.129
6.4880 Biological Circuit Engineering Laboratory

()
Prereqs: GIR:BIOL and GIR:CAL2
Units: 2-8-2

Students assemble individual genes and regulatory elements into larger-scale circuits; they experimentally characterize these circuits in yeast cells using quantitative techniques, including flow cytometry, and model their results computationally. Emphasizes concepts and techniques to perform independent experimental and computational synthetic biology research. Discusses current literature and ongoing research in the field of synthetic biology. Instruction and practice in oral and written communication provided. Enrollment limited.


6.49006.03
6.4900 Introduction to EECS via Medical Technology

()
Prereqs: GIR:CAL2 and GIR:PHY2
Units: 4-4-4

Explores biomedical signals generated from electrocardiograms, glucose detectors or ultrasound images, and magnetic resonance images. Topics include physical characterization and modeling of systems in the time and frequency domains; analog and digital signals and noise; basic machine learning including decision trees, clustering, and classification; and introductory machine vision. Labs designed to strengthen background in signal processing and machine learning. Students design and run structured experiments, and develop and test procedures through further experimentation.


6.50816.816
6.5081 Multicore Programming

()
Prereqs: 6.1210
Units: 4-0-8

Introduces principles and core techniques for programming multicore machines. Topics include locking, scalability, concurrent data structures, multiprocessor scheduling, load balancing, and state-of-the-art synchronization techniques, such as transactional memory. Includes sequence of programming assignments on a large multicore machine, culminating with the design of a highly concurrent application. Students taking graduate version complete additional assignments.


6.51516.905
6.5151 Large-scale Symbolic Systems

()
Prereqs: 6.4100 or permission of instructor
Units: 3-0-9

Concepts and techniques for the design and implementation of large software systems that can be adapted to uses not anticipated by the designer. Applications include compilers, computer-algebra systems, deductive systems, and some artificial intelligence applications. Covers means for decoupling goals from strategy, mechanisms for implementing additive data-directed invocation, work with partially-specified entities, and how to manage multiple viewpoints. Topics include combinators, generic operations, pattern matching, pattern-directed invocation, rule systems, backtracking, dependencies, indeterminacy, memoization, constraint propagation, and incremental refinement. Students taking graduate version complete additional assignments.


6.58316.814
6.5831 Database Systems

()
Prereqs: (6.1800 and (6.1210 or 6.1220)) or permission of instructor
Units: 3-0-9

Topics related to the engineering and design of database systems, including data models; database and schema design; schema normalization and integrity constraints; query processing; query optimization and cost estimation; transactions; recovery; concurrency control; isolation and consistency; distributed, parallel and heterogeneous databases; adaptive databases; trigger systems; pub-sub systems; semi structured data and XML querying. Lecture and readings from original research papers. Semester-long project and paper. Students taking graduate version complete different assignments. Enrollment may be limited.


6.59316.812
6.5931 Hardware Architecture for Deep Learning

()
Prereqs: 6.1910 or 6.3000
Units: 3-3-6

Introduction to the design and implementation of hardware architectures for efficient processing of deep learning algorithms in AI systems. Topics include basics of deep learning, programmable platforms, accelerators, co-optimization of algorithms and hardware, training, support for complex networks, and applications of advanced technologies. Includes labs involving modeling and analysis of hardware architectures, building systems using popular deep learning tools and platforms (CPU, GPU, FPGA), and an open-ended design project. Students taking graduate version complete additional assignments.


6.63316.602
6.6331 Fundamentals of Photonics

()
Prereqs: 2.71, 6.2300, or 8.07
Units: 3-0-9

Covers the fundamentals of optics and the interaction of light and matter, leading to devices such as light emitting diodes, optical amplifiers, and lasers. Topics include classical ray, wave, beam, and Fourier optics; Maxwell's electromagnetic waves; resonators; quantum theory of photons; light-matter interaction; laser amplification; lasers; and semiconductors optoelectronics. Students taking graduate version complete additional assignments.


6.72016.215
6.7201 Optimization Methods

()
Prereqs: 18.06
Units: 4-0-8

Introduces the principal algorithms for linear, network, discrete, robust, nonlinear, and dynamic optimization. Emphasizes methodology and the underlying mathematical structures. Topics include the simplex method, network flow methods, branch and bound and cutting plane methods for discrete optimization, optimality conditions for nonlinear optimization, interior point methods for convex optimization, Newton's method, heuristic methods, and dynamic programming and optimal control methods. Expectations and evaluation criteria differ for students taking graduate version; consult syllabus or instructor for specific details.


6.74116.405
6.7411 Principles of Digital Communication

()
Prereqs: (6.3000, 6.3100, or 6.3400) and (6.3700, 6.3800, or 18.05)
Units: 3-0-9

Covers communications by progressing through signal representation, sampling, quantization, compression, modulation, coding and decoding, medium access control, and queueing and principles of protocols. By providing simplified proofs, seeks to present an integrated, systems-level view of networking and communications while laying the foundations of analysis and design. Lectures are offered online; in-class time is dedicated to recitations, exercises, and weekly group labs. Homework exercises are based on theoretical derivation and software implementation. Students taking graduate version complete additional assignments.

6.83016.819
6.8301 Advances in Computer Vision

()
Prereqs: (6.1200 or 6.3700) and (18.06 or 18.C06)
Units: 4-0-11

Advanced topics in computer vision with a focus on the use of machine learning techniques and applications in graphics and human-computer interface. Covers image representations, texture models, structure-from-motion algorithms, Bayesian techniques, object and scene recognition, tracking, shape modeling, and image databases. Applications may include face recognition, multimodal interaction, interactive systems, cinematic special effects, and photorealistic rendering. Includes instruction and practice