Undergraduate
6.S057 Computer Systems and Society
Undergraduate Level – II
Units: 3-0-9
Prereqs: 6.033
Instructor: Katrina LaCurts (lacurts@mit.edu)
Schedule: TR11-12:30, room 66-144
More information: https://visor.mit.edu/6.s057/
Description
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 (lpk@csail.mit.edu and Tomas Lozano-Perez (tlp@mit.edu)
Schedule: MW9:30-11, room E25-111
More information at: https://mit-6s058.github.io
Description
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.
ROLE IN CURRICULUM:
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
Description:
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 (henrycg@csail.mit.edu), Srini Devadas (devadas@mit.edu), and Yael Kalai (tauman@mit.edu)
Schedule: Lec MW11-12:30, room 36-153; Rec F11, 35-308; F3, room 35-308
More information: https://6s060.csail.mit.edu/2021/
Description
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 (guttag@mit.edu); Prof. Fredo Durand (fredo@mit.edu); Prof. Eric Grimson (egrimson@mit.edu); Ana Bell (anabell@mit.edu)
Schedule: MW3:00-4:30, room 54-100
Description
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 (medard@mit.edu)
Schedule: TR2:30-4, room 2-105
Description
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
Description
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 (abelay@mit.edu)
Schedule: MW1-2:30, room 32-123
Description
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 (parrilo@mit.edu), Ankur Moitra (moitra@mit.edu)
Schedule: Lectures, MWF1 room 4-370; Recitations TR 10, 11, 12, 1, 2, 3, room 2-146
Description
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
http://musictech.mit.edu/fmp
Description
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.
Graduate
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, kpobrien@mit.edu
Schedule: TR1-2:30, room 32-144
Description
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 (shanir@csail.mit.edu)
Schedule: W11-2, room 3-442
Description
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 (alizadeh@csail.mit.edu) and Tim Kraska (kraska@mit.edu)
Schedule: MW2:30-4, room 32-124
Description
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.
Prerequisites:
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 (virgito@gmail.com)
Schedule: TR11-12:00, room 3-270
Description:
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 (saman@mit.edu), Co-Instructor Deanna Montgomery (dmont@mit.edu)
Schedule: Tuesdays 4:30-6:30, room 4-231
Description
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 (phillipi@mit.edu)
Schedule: TR1-2:30, room 4-231
Description
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 (lynch@csail.mit.edu)
Schedule: TR11-12:30, room 32-124
Satisfies: AAGS (updated 12/20/21)
Description
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 (jsolomon@mit.edu), Tal Shnitzer-Dery (talsd@mit.edu), Oded Stein (ostein@mit.edu)
Schedule: Monday 1-3, room 34-303
Description
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.