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, 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, 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 Complexity

()
Prereqs/[Coreqs]: 6.1200[6.042] and 6.1210[6.006] and (6.1220[6.046] or 6.1400[6.045] or 18.404)
Units: 3-0-9

[Meets with 6.S974] 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.1010 and 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.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.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 Introduction to Electric Power Systems

()
Prereqs: 6.2000 and 6.2300
Units: 3-0-9

Electric circuit theory with application to power handling electric circuits. Modeling and behavior of electromechanical devices, including magnetic circuits, motors, and generators. Operational fundamentals of synchronous. Interconnection of generators and motors with electric power transmission and distribution circuits. Power generation, including alternative and sustainable sources. Incorporation of energy storage in power systems. Students taking graduate version complete additional assignments.

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.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.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
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
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: ((2.087, 6.100B, 6.9080, 18.03, or 18.06) 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.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.

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
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 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: 18.06 and (6.1200 or 6.3700)
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
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
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.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.S083
6.S083 Julia – Solving Real World Problems with Computation

()
Prereqs/[Coreqs]: 18.03, 18.06, 6.100A[6.0001], or equivalents
Units: 3-0-9

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

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

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: ((2.087, 6.100B, 6.9080, 18.03, or 18.06) 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: 18.06 and (6.1200 or 6.3700)
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.

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

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: ((2.087, 6.100B, 6.9080, 18.03, or 18.06) 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: 18.06 and (6.1200 or 6.3700)
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.

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

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

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

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

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


6.45906.805
6.4590 Foundations of Information Policy

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

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


6.85306.859
6.8530 Interactive Data Visualization

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

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

[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, 6.4100, or permission of instructor
Units: 3-0-9

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


6.85306.859
6.8530 Interactive Data Visualization

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

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

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

[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 and may include: basic notion of systems security, cryptographic hash functions, symmetric cryptography (one-time pad, stream ciphers, block ciphers), cryptanalysis, secret-sharing, authentication codes, public-key cryptography (encryption, digital signatures), public-key attacks, elliptic curve cryptography; pairing functions, fully homomorphic encryption, differential privacy, bitcoin, viruses, electronic voting, Assignments include a group final 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 Complexity

()
Prereqs/[Coreqs]: 6.1200[6.042] and 6.1210[6.006] and (6.1220[6.046] or 6.1400[6.045] or 18.404)
Units: 3-0-9

[Meets with 6.S974] 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.2000 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.1010 and 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 Introduction to Electric Power Systems

()
Prereqs: 6.2000 and 6.2300
Units: 3-0-9

Electric circuit theory with application to power handling electric circuits. Modeling and behavior of electromechanical devices, including magnetic circuits, motors, and generators. Operational fundamentals of synchronous. Interconnection of generators and motors with electric power transmission and distribution circuits. Power generation, including alternative and sustainable sources. Incorporation of energy storage in power systems. Students taking graduate version complete additional assignments.

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.1010 and 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 Complexity

()
Prereqs/[Coreqs]: 6.1200[6.042] and 6.1210[6.006] and (6.1220[6.046] or 6.1400[6.045] or 18.404)
Units: 3-0-9

[Meets with 6.S974] 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 and may include: basic notion of systems security, cryptographic hash functions, symmetric cryptography (one-time pad, stream ciphers, block ciphers), cryptanalysis, secret-sharing, authentication codes, public-key cryptography (encryption, digital signatures), public-key attacks, elliptic curve cryptography; pairing functions, fully homomorphic encryption, differential privacy, bitcoin, viruses, electronic voting, Assignments include a group final 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, 6.4100, or permission of instructor
Units: 3-0-9

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


6.85306.859
6.8530 Interactive Data Visualization

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

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

[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
[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: 18.06 and (6.1200 or 6.3700)
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.

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.


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.


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: ((2.087, 6.100B, 6.9080, 18.03, or 18.06) 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.


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: 18.06 and (6.1200 or 6.3700)
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 Complexity

()
Prereqs/[Coreqs]: 6.1200[6.042] and 6.1210[6.006] and (6.1220[6.046] or 6.1400[6.045] or 18.404)
Units: 3-0-9

[Meets with 6.S974] 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.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 Introduction to Electric Power Systems

()
Prereqs: 6.2000 and 6.2300
Units: 3-0-9

Electric circuit theory with application to power handling electric circuits. Modeling and behavior of electromechanical devices, including magnetic circuits, motors, and generators. Operational fundamentals of synchronous. Interconnection of generators and motors with electric power transmission and distribution circuits. Power generation, including alternative and sustainable sources. Incorporation of energy storage in power systems. 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.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.26906.717
6.2690 Design and Fabrication of Microelectromechanical Systems

()
Prereqs: (GIR:PHY2 and (2.003 or 6.003)) or permission of instructor
Units: 3-0-9

Provides an introduction to microsystem design. Covers material properties, microfabrication technologies, structural behavior, sensing methods, electromechanical actuation, thermal actuation and control, multi-domain modeling, noise, and microsystem packaging. Applies microsystem modeling, and manufacturing principles to the design and analysis a variety of microscale sensors and actuators (e.g., optical MEMS, bioMEMS, and inertial sensors). Emphasizes modeling and simulation in the design process. Students taking the graduate version complete additional assignments.


6.31006.302
6.3100 Dynamical System Modeling and Control Design

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

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


6.32606.207
6.3260 Networks

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

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


6.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: ((2.087, 6.100B, 6.9080, 18.03, or 18.06) 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.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.41406.803
6.4140 The Human Intelligence Enterprise

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

Analyzes seminal work directed at the development of a computational understanding of human intelligence, such as work on learning, language, vision, event representation, commonsense reasoning, self reflection, story understanding, and analogy. Reviews visionary ideas of Turing, Minsky, and other influential thinkers. Examines the implications of work on brain scanning, developmental psychology, and cognitive psychology. Emphasis on discussion and analysis of original papers. Students taking graduate version complete additional assignments. 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.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.48506.027
6.4850 Biomolecular Feedback Systems

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

Comprehensive introduction to dynamics and control of biomolecular systems with emphasis on design/analysis techniques from control theory. Provides a review of biology concepts, regulation mechanisms, and models. Covers basic enabling technologies, engineering principles for designing biological functions, modular design techniques, and design limitations. 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.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: 18.06 and (6.1200 or 6.3700)
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.83916.801
6.8391 Machine Vision

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

Deriving a symbolic description of the environment from an image. Understanding physics of image formation. Image analysis as an inversion problem. Binary image processing and filtering of images as preprocessing steps. Recovering shape, lightness, orientation, and motion. Using constraints to reduce the ambiguity. Photometric stereo and extended Gaussian sphere. Applications to robotics; intelligent interaction of machines with their environment. Students taking the graduate version complete different 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.S083
6.S083 Julia – Solving Real World Problems with Computation

()
Prereqs/[Coreqs]: 18.03, 18.06, 6.100A[6.0001], or equivalents
Units: 3-0-9

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


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 an introduction to probability and statistics used in modern biology. Discrete and continuous probability distributions, statistical modeling, hypothesis testing, Bayesian statistics, independence, conditional probability, Markov chains, methods for data visualization, clustering, principal components analysis, nonparametric methods, Monte Carlo simulations, false discovery rate. Applications to DNA, RNA, and protein sequence analysis; genetics; genomics. Homework involves the R programming language, but prior programming experience is not required. Students registered for the graduate version complete an additional project, applying biostatistical methods to data from their research.

&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 sequence analysis. Topics include next-generation DNA sequencing and sequencing data analysis, RNA-seq (bulk and single-cell), ribosome profiling, and proteomics. Students registered for the graduate version complete an additional project, applying bioinformatic methods to data from their research.


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.


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: Additional CI-M subjects. 6.UAT or 6.UAR are the first CI-M
6.18006.033
6.1800 Computer Systems Engineering

()
Prereqs: 6.1010 and 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.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.48906.182
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.


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 an introduction to probability and statistics used in modern biology. Discrete and continuous probability distributions, statistical modeling, hypothesis testing, Bayesian statistics, independence, conditional probability, Markov chains, methods for data visualization, clustering, principal components analysis, nonparametric methods, Monte Carlo simulations, false discovery rate. Applications to DNA, RNA, and protein sequence analysis; genetics; genomics. Homework involves the R programming language, but prior programming experience is not required. Students registered for the graduate version complete an additional project, applying biostatistical methods to data from their research.

&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 sequence analysis. Topics include next-generation DNA sequencing and sequencing data analysis, RNA-seq (bulk and single-cell), ribosome profiling, and proteomics. Students registered for the graduate version complete an additional project, applying bioinformatic methods to data from their research.


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 Elements of Software Construction

()
Prereqs: 6.1010
Units: 5-0-10

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.1010 and 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.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.48906.182
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: 18.06 and (6.1200 or 6.3700)
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.


EECS: All the subjects that satisfy departmental requirements. Also see the grad_AUS and grad_II lists below.
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 Elements of Software Construction

()
Prereqs: 6.1010
Units: 5-0-10

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.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.1010 and 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.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.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 Introduction to Electric Power Systems

()
Prereqs: 6.2000 and 6.2300
Units: 3-0-9

Electric circuit theory with application to power handling electric circuits. Modeling and behavior of electromechanical devices, including magnetic circuits, motors, and generators. Operational fundamentals of synchronous. Interconnection of generators and motors with electric power transmission and distribution circuits. Power generation, including alternative and sustainable sources. Incorporation of energy storage in power systems. Students taking graduate version complete additional assignments.


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.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.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.26906.717
6.2690 Design and Fabrication of Microelectromechanical Systems

()
Prereqs: (GIR:PHY2 and (2.003 or 6.003)) or permission of instructor
Units: 3-0-9

Provides an introduction to microsystem design. Covers material properties, microfabrication technologies, structural behavior, sensing methods, electromechanical actuation, thermal actuation and control, multi-domain modeling, noise, and microsystem packaging. Applies microsystem modeling, and manufacturing principles to the design and analysis a variety of microscale sensors and actuators (e.g., optical MEMS, bioMEMS, and inertial sensors). Emphasizes modeling and simulation in the design process. Students taking the graduate version complete additional assignments.


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.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.37306.419
6.3730 Statistics, Computation and Applications

()
Prereqs: ((2.087, 6.100B, 6.9080, 18.03, or 18.06) 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.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.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.41406.803
6.4140 The Human Intelligence Enterprise

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

Analyzes seminal work directed at the development of a computational understanding of human intelligence, such as work on learning, language, vision, event representation, commonsense reasoning, self reflection, story understanding, and analogy. Reviews visionary ideas of Turing, Minsky, and other influential thinkers. Examines the implications of work on brain scanning, developmental psychology, and cognitive psychology. Emphasis on discussion and analysis of original papers. Students taking graduate version complete additional assignments. 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.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, (2.370 or 20.110), and (18.03 or 3.016B)
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.


6.48506.027
6.4850 Biomolecular Feedback Systems

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

Comprehensive introduction to dynamics and control of biomolecular systems with emphasis on design/analysis techniques from control theory. Provides a review of biology concepts, regulation mechanisms, and models. Covers basic enabling technologies, engineering principles for designing biological functions, modular design techniques, and design limitations. 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.48906.182
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.83016.819
6.8301 Advances in Computer Vision

()
Prereqs: 18.06 and (6.1200 or 6.3700)
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.83916.801
6.8391 Machine Vision

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

Deriving a symbolic description of the environment from an image. Understanding physics of image formation. Image analysis as an inversion problem. Binary image processing and filtering of images as preprocessing steps. Recovering shape, lightness, orientation, and motion. Using constraints to reduce the ambiguity. Photometric stereo and extended Gaussian sphere. Applications to robotics; intelligent interaction of machines with their environment. Students taking the graduate version complete different 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.90106.08
6.9010 Introduction to EECS via Interconnected Embedded Systems

()
Prereqs/[Coreqs]: 6.100A; [GIR:PHY2]
Units: 1-5-6

Introduction to embedded systems in the context of connected devices, wearables, and the "Internet of Things" (IoT). Topics include microcontrollers, energy utilization, algorithmic efficiency, interfacing with sensors, networking, cryptography, and local versus distributed computation. Students design, make, and program an Internet-connected wearable or handheld device. In the final project, student teams design and demo their own server-connected IoT system. Enrollment limited; preference to first- and second-year students.


6.90206.943
6.9020 How to Make (Almost) Anything

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

Provides a practical hands-on introduction to digital fabrication, including CAD/CAM/CAE, NC machining, 3-D printing and scanning, molding and casting, composites, laser and waterjet cutting, PCB design and fabrication; sensors and actuators; mixed-signal instrumentation, embedded processing, and wired and wireless communications. Develops an understanding of these capabilities through projects using them individually and jointly to create functional systems.


6.90306.163
6.9030 Strobe Project Laboratory

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

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


6.90806.01
6.9080 Introduction to EECS via Robotics

()
Prereqs: 6.100A or permission of instructor
Units: 2-4-6

An integrated introduction to electrical engineering and computer science, taught using substantial laboratory experiments with mobile robots. Key issues in the design of engineered artifacts operating in the natural world: measuring and modeling system behaviors; assessing errors in sensors and effectors; specifying tasks; designing solutions based on analytical and computational models; planning, executing, and evaluating experimental tests of performance; refining models and designs. Issues addressed in the context of computer programs, control systems, probabilistic inference problems, circuits and transducers, which all play important roles in achieving robust operation of a large variety of engineered systems.


6.93506.935
6.9350 Financial Market Dynamics and Human Behavior

()
Prereqs: 15.401, 15.414, or 15.415
Units: 4-0-5

Drawing on the latest research in psychology, evolutionary biology, neuroscience, and artificial intelligence, as well as in behavioral and mainstream financial economics, provides new perspectives and insights into the role that human behavior plays in the business environment and the dynamics of financial markets and institutions. Incorporates practical applications from several industries including finance, insurance, biotechnology, pharmaceuticals, and government policy. Students apply ideas from this perspective to formulate original hypotheses regarding new career opportunities and disruptive technologies in their industry of choice.


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.

&1.C01
1.C01 Machine Learning for Sustainable Systems

()
Prereqs/[Coreqs]: (1.000 and 1.010) or permission of instructor; [6.C01]
Units: 1-1-4

Building on core material in 6.C01, emphasizes the design and operation of sustainable systems. Illustrates how to leverage heterogeneous data from urban services, cities, and the environment, and apply machine learning methods to evaluate and/or improve sustainability solutions. Provides case studies from various domains, such as transportation and urban mobility, energy and water resources, environmental monitoring, infrastructure sensing and control, climate adaptation, and disaster resilience. Projects focus on using machine learning to identify new insights or decisions that can help engineer sustainability in societal-scale systems. Students taking graduate version complete additional assignments. Students cannot receive credit without simultaneous completion of the core subject 6.C01.


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

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

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

&10.C01

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

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

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

&2.C01
2.C01 Physical Systems Modeling and Design Using Machine Learning

(,)
Prereqs/[Coreqs]: 2.086; [6.C01]
Units: 1-3-2

Building on core material in 6.C01, encourages open-ended exploration of the increasingly topical intersection between artificial intelligence and the physical sciences. Uses energy and information, and their respective optimality conditions, to define supervised and unsupervised learning algorithms as well as ordinary and partial differential equations. Subsequently, physical systems with complex constitutive relationships are drawn from elasticity, biophysics, fluid mechanics, hydrodynamics, acoustics, and electromagnetics to illustrate how machine learning-inspired optimization can approximate solutions to forward and inverse problems in these domains. Students taking graduate version complete additional assignments. Students cannot receive credit without simultaneous completion of 6.C01.


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

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

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

&20.C01
20.C01 Machine Learning for Molecular Engineering

()
Prereqs/[Coreqs]: GIR:CAL2 and 6.100A; [6.C01]
Units: 2-0-4

Building on core material in 6.C01, provides an introduction to the use of machine learning to solve problems arising in the science and engineering of biology, chemistry, and materials. Equips students to design and implement machine learning approaches to challenges such as analysis of omics (genomics, transcriptomics, proteomics, etc.), microscopy, spectroscopy, or crystallography data and design of new molecules and materials such as drugs, catalysts, polymer, alloys, ceramics, and proteins. Students taking graduate version complete additional assignments. Students cannot receive credit without simultaneous completion of 6.C01.


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

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

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

&22.C01

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

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

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

&3.C01

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


EE12: EE subjects at levels 1 and 2
6.20006.002
6.2000 Electrical Circuits: Modeling and Design of Physical Systems

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

Fundamentals of linear systems, and abstraction modeling of multi-physics lumped and distributed systems using lumped electrical circuits. Linear networks involving independent and dependent sources, resistors, capacitors, and inductors. Extensions to include operational amplifiers and transducers. Dynamics of first- and second-order networks; analysis and design in the time and frequency domains; signal and energy processing applications. Design exercises. Weekly laboratory with microcontroller and transducers.


6.22106.014
6.2210 Electromagnetic Fields, Forces and Motion

()
Prereqs: GIR:PHY2 and 18.03
Units: 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.25006.012
6.2500 Nanoelectronics and Computing Systems

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

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

6.30006.003
6.3000 Signal Processing

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

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


6.30106.011
6.3010 Signals, Systems and Inference

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

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


6.48106.021
6.4810 Cellular Neurophysiology and Computing

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

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


6.62106.640
6.6210 Electromagnetic Fields, Forces and Motion

()
Prereqs: GIR:PHY2 and 18.03
Units: 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.


EECS12: EECS subjects at levels 1 and 2
6.19106.004
6.1910 Computation Structures

(,)
Prereqs: GIR:PHY2, 6.100A, and (6.1900 or 6.9010)
Units: 4-0-8

Provides an introduction to the design of digital systems and computer architecture. Emphasizes expressing all hardware designs in a high-level hardware language and synthesizing the designs. Topics include combinational and sequential circuits, instruction set abstraction for programmable hardware, single-cycle and pipelined processor implementations, multi-level memory hierarchies, virtual memory, exceptions and I/O, and parallel systems.


6.38006.008
6.3800 Introduction to Inference

()
Prereqs: GIR:CAL2 or permission of instructor
Units: 4-4-4

Introduces probabilistic modeling for problems of inference and machine learning from data, emphasizing analytical and computational aspects. Distributions, marginalization, conditioning, and structure, including graphical and neural network representations. Belief propagation, decision-making, classification, estimation, and prediction. Sampling methods and analysis. Introduces asymptotic analysis and information measures. Computational laboratory component explores the concepts introduced in class in the context of contemporary applications. Students design inference algorithms, investigate their behavior on real data, and discuss experimental results.


6.39006.036
6.3900 Introduction to Machine Learning

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

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


SERC: Social and Ethical Responsibilies of Computing
6.39006.036
6.3900 Introduction to Machine Learning

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

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


6.39506.404
6.3950 AI, Decision Making, and Society

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

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


6.45906.805
6.4590 Foundations of Information Policy

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

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


6.83016.819
6.8301 Advances in Computer Vision

()
Prereqs: 18.06 and (6.1200 or 6.3700)
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.


II: Independent inquiry. Also see grad_II list below. A subject provides an II experience if at least 40% of the grade in a 12-unit subject depends on a single relatively open-ended project. The student should be involved in defining the project. Projects may be done singly or in groups; they may be analytical or empirical in nature. They should be supervised in the sense that at least one milestone (proposal, outline, presentation) is evaluated and the student given feedback before the final deadline.
6.10406.170
6.1040 Software 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 Complexity

()
Prereqs/[Coreqs]: 6.1200[6.042] and 6.1210[6.006] and (6.1220[6.046] or 6.1400[6.045] or 18.404)
Units: 3-0-9

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


6.18206.808
6.1820 Mobile and Sensor Computing

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

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


6.20506.111
6.2050 Digital Systems Laboratory

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

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

6.20616.1151
6.2061 Microcomputer Project Laboratory - Independent Inquiry

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

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


6.22216.1311
6.2221 Power Electronics Laboratory - Independent Inquiry

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

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


6.23706.161
6.2370 Modern Optics Project Laboratory

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

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


6.37306.419
6.3730 Statistics, Computation and Applications

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

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


6.41206.804
6.4120 Computational Cognitive Science

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

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


6.42006.141
6.4200 Robotics: Science and Systems

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

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


6.42106.800
6.4210 Robotic Manipulation

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

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

6.44206.807
6.4420 Computational Design and Fabrication

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

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


6.45106.810
6.4510 Engineering Interactive Technologies

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

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


6.45306.811
6.4530 Principles and Practice of Assistive Technology

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

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


6.45906.805
6.4590 Foundations of Information Policy

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

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


6.48806.129
6.4880 Biological Circuit Engineering Laboratory

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

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


6.48906.182
6.51516.905
6.5151 Large-scale Symbolic Systems

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

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

6.83016.819
6.8301 Advances in Computer Vision

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

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


6.86116.806
6.8611 Quantitative Methods for Natural Language Processing

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

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


6.87016.047
6.8701 Computational Biology: Genomes, Networks, Evolution

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

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


6.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.S083
6.S083 Julia – Solving Real World Problems with Computation

()
Prereqs/[Coreqs]: 18.03, 18.06, 6.100A[6.0001], or equivalents
Units: 3-0-9

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


6.UAR
6.UAR Seminar in Undergraduate Advanced Research

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

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


PLAB: Project-Based Design Laboratory for 6-2 (new)
6.11006.035
6.1100 Computer Language Engineering

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

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


6.18206.808
6.1820 Mobile and Sensor Computing

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

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


6.20406.101
6.2040 Analog Electronics Laboratory

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

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


6.20506.111
6.2050 Digital Systems Laboratory

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

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


6.20606.115
6.2060 Microcomputer Project Laboratory

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

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

6.22206.131
6.2220 Power Electronics Laboratory

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

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


6.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.44206.807
6.4420 Computational Design and Fabrication

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

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

6.45106.810
6.4510 Engineering Interactive Technologies

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

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


6.45506.185
6.4550 Interactive Music Systems

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

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


PROB: Probability grounding
18.05
18.05 Introduction to Probability and Statistics

()
Prereqs: GIR:CAL2
Units: 4-0-8

Elementary introduction with applications. Basic probability models. Combinatorics. Random variables. Discrete and continuous probability distributions. Statistical estimation and testing. Confidence intervals. Introduction to linear regression.


18.600
18.600 Probability and Random Variables

(,)
Prereqs: GIR:CAL2
Units: 4-0-8

Probability spaces, random variables, distribution functions. Binomial, geometric, hypergeometric, Poisson distributions. Uniform, exponential, normal, gamma and beta distributions. Conditional probability, Bayes theorem, joint distributions. Chebyshev inequality, law of large numbers, and central limit theorem. Credit cannot also be received for 6.041A or 6.041B.


6.041A
6.12006.042
6.1200 Mathematics for Computer Science

(,)
Prereqs: GIR:CAL1
Units: 5-0-7

Elementary discrete mathematics for science and engineering, with a focus on mathematical tools and proof techniques useful in computer science. Topics include logical notation, sets, relations, elementary graph theory, state machines and invariants, induction and proofs by contradiction, recurrences, asymptotic notation, elementary analysis of algorithms, elementary number theory and cryptography, permutations and combinations, counting tools, and discrete probability.


6.37006.041
6.3700 Introduction to Probability

(,)
Prereqs: GIR:CAL2
Units: 4-0-8

An introduction to probability theory, the modeling and analysis of probabilistic systems, and elements of statistical inference. Probabilistic models, conditional probability. Discrete and continuous random variables. Expectation and conditional expectation, and further topics about random variables. Limit Theorems. Bayesian estimation and hypothesis testing. Elements of classical statistical inference. Bernoulli and Poisson processes. Markov chains. Students taking graduate version complete additional assignments.


6.38006.008
6.3800 Introduction to Inference

()
Prereqs: GIR:CAL2 or permission of instructor
Units: 4-4-4

Introduces probabilistic modeling for problems of inference and machine learning from data, emphasizing analytical and computational aspects. Distributions, marginalization, conditioning, and structure, including graphical and neural network representations. Belief propagation, decision-making, classification, estimation, and prediction. Sampling methods and analysis. Introduces asymptotic analysis and information measures. Computational laboratory component explores the concepts introduced in class in the context of contemporary applications. Students design inference algorithms, investigate their behavior on real data, and discuss experimental results.


grad_AUS2: Graduate subjects that satisfy the AUS2 or EECS requirements
16.420
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.25326.719
6.2532 Nanoelectronics

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

Meets with undergraduate subject 6.2530, but requires the completion of additional/different homework assignments and or projects. See subject description under 6.2530.


6.26926.777
6.2692 Design and Fabrication of Microelectromechanical Systems

()
Prereqs: (GIR:PHY2 and (2.003 or 6.003)) or permission of instructor
Units: 3-0-9

Provides an introduction to microsystem design. Covers material properties, microfabrication technologies, structural behavior, sensing methods, electromechanical actuation, thermal actuation and control, multi-domain modeling, noise, and microsystem packaging. Applies microsystem modeling, and manufacturing principles to the design and analysis a variety of microscale sensors and actuators (e.g., optical MEMS, bioMEMS, and inertial sensors). Emphasizes modeling and simulation in the design process. Students taking the graduate version complete additional assignments.


6.31026.320
6.3102 Dynamical System Modeling and Control Design

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

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


6.37226.481
6.3722 Introduction to Statistical Data Analysis

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

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


6.37326.439
6.3732 Statistics, Computation and Applications

()
Prereqs: ((6.100B or 6.9080), (2.087, 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