Subject Updates Fall 2021


    6.S057 Computer Systems and Society

    Undergraduate Level – II
    Units: 3-0-9
    Prereqs: 6.033
    Instructor: Katrina LaCurts (
    Schedule: TR11-12:30, room 66-144
    More information:


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

    6.S058 Representation and Inference in Artificial Intelligence (meets with 16.420)

    Undergraduate Level
    (Meets with 16.420)
    Units: 3-0-9
    Prerequisites: 6.006 and (6.008 or 6.041) and 6.009
    Instructors: Profs. Leslie Kaelbling ( and Tomas Lozano-Perez (
    Schedule: MW9:30-11, room E25-111
    More information at:


    An introduction to representations and algorithms for artificial intelligence, exclusive of machine learning. 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, basic decentralized and game-theoretic models.


    Pilot version of subject designed for proposed AI+D major
    Can substitute for 6.034 as a header in 6-2 and 6-3 (requires petition but guaranteed to be accepted)
    Counts as an EECS subject for 6-1, 6-2, and 6-3, even if you have already taken 6.034
    Counts as a CS12 subject for 6-2 students
    Meets with 16.420 (G), which counts as EECS AUS or AAGS in the AI concentration
    The combination of this subject and 6.036 will cover almost all of the topics in 6.034 in more technical depth

    6.S059 Nanotechnology – Design from Atoms to Everything

    Undergraduate Level -DLAB2, AUS2

    Units: 2-3-7

    Prerequisite: 8.02 Physics II

    Instructors: Profs. Farnaz Niroui and Rajeev Ram

    Schedule:  Lectures: TR10, room 32-155; Labs Fridays times 9am-12pm, 12-3pm, 2-5pm, room 12-3101

    Enrollment limited


    Introduces the fundamentals of applied quantum mechanics, materials science and fabrication skills needed to design, engineer and build emerging nanotechnologies with diverse applications in energy, computing, display and sensing. In this class, studies are motivated by the technology, its application and desired performance, then the full progression from the fundamentals to the implemented device and functional systems will be outlined. By completing open-ended, goal-driven laboratory modules, students will gain hands-on design experience with this interplay between science and engineering, and use their skills towards developing and implementing their own technologies through a final project.

    6.S060 Foundations of Computer Security

    Undergraduate Level
    Prereq: 6.006 and 6.033, or permission of instructor
    Units: 4-0-8
    Instructors: Professors Henry Corrigan-Gibbs (, Srini Devadas (, and Yael Kalai (
    Schedule: Lec MW11-12:30, room 36-153; Rec F11, 35-308; F3, room 35-308
    More information:


    Fundamental notions and big ideas in cryptography and computer security including: pseudorandomness, cryptographic hash functions, symmetric cryptography, authentication codes, key exchange, public-key cryptography, principle of least privilege, isolation and non-interference. Students will be encouraged to think like adversaries of systems and will learn about network attacks, man-in-the-middle attacks, attacks that exploit software vulnerabilities, timing attacks, and side channel attacks.

    6.S061 Introduction to Computer Science and Programming for Non-Programmers

    Undergraduate Level
    Units: 3-0-6
    Prereqs: None
    Instructors: Prof. John Guttag (; Prof. Fredo Durand (; Prof. Eric Grimson (; Ana Bell (
    Schedule: MW3:00-4:30, room 54-100


    Introduction to computer science and programming for students with no programming experience. The course is similar to 6.0001, but it runs over an entire semester. 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.

    6.S078 Engineering the Internet (meets with 6.450)

    Undergraduate Level (AUS, Lab)
    Units: 3-0-9
    Prerequisites: 6.02, 6.041, 6.042, or equivalent
    Instructor: Professor Muriel Medard (
    Schedule: TR2:30-4, room 2-105


    This course will meet with graduate subject 6.450 combining the basics of signal processing, communications, networking and information theory. By relying on ample examples from current networking and communications, and by providing simplified proofs, accessible to students with only an introductory knowledge of probability, the course will seek to provide an integrated, systems-level view of current networking, including storage, while laying the foundations of analysis and design. Topics include areas of network security, cloud computing and evolution of fifth-generation (5G) wireless systems. Combines themes from both EE and CS in a naturally integrated fashion.

    6.S080 Data-Driven Decision Making and Society

    Undergraduate Level
    Units: 4-0-8
    Prerequisites: 6.041, 6.042, or 18.600 (or any one as a co-requisite)
    Instructors: Prof. Aleksander Madry, Prof. Asu Ozdaglar, and Prof. Ashia Wilson
    Schedule: TR11-12:30, room 54-100; Recitations F1, F2, F3 room 13-3101


    Introduction to societally-minded thinking about data-driven decision making. Surveys the key concepts and challenges emerging in this context, pinpointing the underlying non-obvious interactions, undesirable feedback loops and unintended consequences. The overarching goal is to enable the students to develop their own principled perspective on the interaction of data-driven decision making and society.

    6.S081 Introduction to Operating Systems

    Undergraduate Level – AUS
    Units: 3-6-3
    Prereqs: 6.004
    Instructor: Prof. Adam Belay (
    Schedule: MW1-2:30, room 32-123


    The topics covered in 6.S081 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 is used to illustrate these topics. Individual laboratory assignments involve extending an operating system kernel, for example to support sophisticated virtual memory features and network protocols. Programming experience is a prerequisite, ideally in the C language.

    6.S084 Linear Algebra and Optimization (also 18.061)

    Undergraduate Level
    Units: 5-0-7
    Prerequisites: 18.02
    Instructors: Professors Pablo Parrilo (, Ankur Moitra (
    Schedule: Lectures, MWF1 room 4-370; Recitations TR 10, 11, 12, 1, 2, 3, room 2-146


    Unified introduction to linear algebra and optimization, their interconnections, and applications throughout science and engineering. Specific topics include vectors, matrices, eigenvalues, singular values, least-squares, convex optimization, linear/quadratic programming, gradient descent, Newton’s method. Viewpoint will emphasize conceptual, geometric, and computational aspects. Applications from many domains, including networks, signal processing, and machine learning.

    Relation to 18.06: This course will count towards the linear algebra requirement for math majors! Also, since the material will overlap substantially with 18.06 it is strongly advised that you do not take it if you have already taken 18.06. They are not classified by the registrar as classes with essentially similar content, but individual majors (e.g. math and eecs) may treat them as such.

    21M.387 Fundamentals of Music Processing (also 6.S197)

    Undergraduate Level
    Units: 3-0-9
    Prereqs: 6.003, 6.0002, and 21M.051
    HASS-A (for 21M.387), 6.S197 (EECS department lab)
    Instructor: Prof. Eran Egozy
    Schedule: TR11-12:30, room 4-270


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


    6.644 Quantum Measurement and Control

    Graduate Level – AAGS

    Units: 3-0-9

    Prereqs: 8.04 or permission of instructor

    Instructor:  Prof. Kevin O’Brien,

    Schedule:  TR1-2:30, room 32-144




    This subject counts as an Applied Physics concentration.

    Introduction to modern quantum measurement and applications, including quantum trajectory theory and experimental demonstrations. We cover linear and nonlinear quantum circuits, coherent and non-classical photon states, circuit quantum electrodynamics, quantum measurement, quantum feedback control, quantum trajectories, quantum jumps, and applications to quantum information processing. This course will prepare graduate students for research in quantum devices (optical, superconducting, electronic, spin, etc), quantum computing, or quantum communication. Focuses on quantum measurements in the real world vs the idealized world of projective measurements taught in introductory courses.

    6.881 Tissue vs Silicon in Machine Learning


    Graduate Level – AAGS

    Units 3-0-9

    Prereqs:  none

    Instructor:  Prof. Nir Shavit (

    Schedule:  W11-2, room 3-442




    This subject qualifies as an Artificial Intelligence concentration subject. Studies the relation between machine learning and neural tissue, the models and computational approaches of each and what can be deduced from one about the other. Topics will include biological constructs such as neurons, connectome graphs, scaling in neural tissue, associative memory, and pruning, versus neural network training and inference hardware and software designs, scaling laws, and optimization techniques.


    6.887 Machine Learning for Systems


    Graduate Level -AAGS

    Units: 3-0-9

    Prereqs: see below

    Instructors:  Profs. Mohammad Alizadeh ( and Tim Kraska (

    Schedule:  MW2:30-4, room 32-124



    This subject counts as a subject in the Computer Systems concentration. Machine learning is poised to change how people design, operate, and analyze computer systems. This course introduces the emerging area of learning-based systems, with the goal to provide working experience in applying learning to system design and to prepare students for research in this field. Topics include automatic optimization of system parameters, learning-enhanced data structures and algorithms (e.g., indexes, sketches, compression, caching, scheduling), core techniques (e.g., reinforcement learning, bandit algorithms, deep learning) and their applications to systems and networking.  The course will include lectures, invited talks by experts, a semester-long project and paper, and hands-on labs designed to give experience with topics covered.




    Programming: 6.009 (Fundamentals of Programming)

    Data Structures: 6.006 (Introduction to Algorithms) or equivalent

    Machine Learning: 6.008 (Introduction to Inference), 6.036 (Introduction to Machine Learning), 6.034 (Artificial Intelligence) or equivalent

    Systems: 6.033 or equivalent

    6.890 Graph and Matrix Algorithms

    Graduate Level

    Units:  3-0-9

    Prerequisites:  6.006, 6.046

    Instructor:  Professor Virginia Vassilevska Williams (

    Schedule: TR11-12:00, room 3-270



    This subject will qualify as a Theoretical Computer Science concentration subject.


    Due to the surprisingly fast algorithms for the problem, matrix multiplication is routinely used as a basic building block for algorithms beating the brute-force approach. This course explores a variety of problems, mostly within graph algorithms, and discusses how they can be solved faster using a fast matrix multiplication algorithm. We will also see that although many of these problems provably require the use of matrix multiplication to be solved exactly, sometimes matrix multiplication can be avoided by computing answers approximately, leading to very fast algorithms. Finally, we will discuss most of the known algorithms for matrix multiplication including the Coppersmith-Winograd algorithm and its relatives.


    Topics include: Graph Transitive Closure, All Pairs Shortest Paths, Perfect Matching, distance oracles, graph spanners, matrix multiplication algorithms, and a variety of equivalences between problems involving matrix multiplication. Prerequisites: 6.046 or the equivalent mathematical maturity.

    6.S897 Academic Job Search

    Graduate Level

    Units: 2-0-4

    Prereqs: permission of instructor

    Instructors:  Prof. Saman Amarasignhe (, Co-Instructor Deanna Montgomery (

    Schedule: Tuesdays 4:30-6:30, room 4-231




    This seminar is intended for EECS senior graduate students and post-docs who plan to enter the academic job market this Fall.  The seminar will explore what it is like to be a junior faculty member and what it takes to get a faculty job. You will hear from multiple junior faculty how they managed to successfully navigate the job search and from the MIT EECS search committee members on how the search process works internally.  We are also inviting search committee members from multiple universities for an “Academic Career Fair Day”. You’ll get to hear from them and possibly have short one-on-one “pre-interview” meetings with some. The EECS Communication Lab will conduct interactive workshops on the components of a faculty application. You will be required to complete multiple projects including writing a CV, research and teaching statements, giving oral presentations on your research, and participating in other academic job market-related activities.

    6.S898 Deep Learning

    Graduate Level

    Units: 3-0-3

    Prerequisites: 6.036, 6.041 or 6.042; 18.06

    Instructors: Prof. Phillip Isola (

    Schedule:  TR1-2:30, room 4-231




    Fundamentals of deep learning, including both theory and applications. Topics include neural net architectures (MLPs, CNNs, RNNs, transformers), backpropagation and automatic differentiation, learning theory and generalization in high-dimensions, and applications to computer vision, natural language processing, and robotics. Each lecture will be from a different invited expert in the field.

    6.S899 Brain Algorithms

    Graduate Level

    Units: 3-0-9

    Prerequisites: Analysis of algorithms, at the level of 6.046.  Probability.  Desirable:  Distributed algorithms, 6.852 or a similar course.  Some familiarity with system modeling and neuroscience.

    Instructor: Prof. Nancy Lynch (

    Schedule: TR11-12:30, room 32-124

    Satisfies: AAGS (updated 12/20/21)




    Understanding computation in biological neural networks like the human brain is a central challenge of modern neuroscience and AI. This problem has been studied from many perspectives; this course will approach the problem using algorithmic methods from theoretical computer science.


    Specifically the course will rely on synchronous, stochastic Spiking Neural Network (SNN) models. It will identify abstract problems to be solved by SNNs, including problems of focus and attention, similarity and clustering, representation, and learning. It will study algorithms  (networks) that solve the problems, and analyze them in terms of costs such as network size and convergence time.  Major emphasis will be on how concepts (both logical and physical) are represented in the brain, how these representations satisfy algorithmic goals, and how they are learned. Other emphasis will be on understanding how noise and uncertainty affect the costs of solving problems, and on how networks that solve simple problems can be combined into larger networks that solve more complex problems.


    6.S975 Seminar on Learning and Data-Driven Algorithms in Geometry

    Graduate level PDF

    Units: 2-0-7

    Prerequisites: knowledge of Linear Algebra, Calculus, and basic programming skills

    Instructors: Professor Justin Solomon (, Tal Shnitzer-Dery (, Oded Stein (

    Schedule: Monday 1-3, room 34-303




    In this class, we will read papers on geometry and simulation, and track the history of the subject from classical papers all the way to the current time, where machine learning and data-driven algorithms are employed to enhance classical methods. This seminar has a unique structure: every week, each participant plays a different role and prepares a small presentation of the paper from their point of view. There will be a wide variety of roles, such as peer reviewer, programmer, graphic designer, PhD student, private investigator, historian, and more.