Common Ground Subjects
The Common Ground for Computing Education consists of broadly-applicable computing classes and curricula. Each department or program assesses whether such collaborative classes and curricula make sense for their educational objectives. The Common Ground helps identify potential collaborations, and provides support to departments and programs that find these collaborations beneficial.
Subjects that are part of the Common Ground can be easily identified by their subject number. Each number includes a “C” to the immediate right of the decimal point. Because Common Ground subjects are multidepartmental collaborations, each course typically has two or more departmental numbers. The subject code following the “C” is consistent for all departmental numbers associated with a particular course. For example:
Collaboration via cross-listing
16.C20[J], 18.C20[J], CSE.C20[J]
Collaboration via corequisite structure
6.C01 and one of: 1.C01, 2.C01, 3.C01[J]/10.C01[J]/20.C01[J], or 22.C01
Machine Learning, Optimization, Inference
- 2.C01, 2.C51 Physical Systems Modeling and Design Using Machine Learning
- 3.C01[J]/10.C01[J]/20.C01[J], 3.C51[J]/10.C51[J]/20.C51[J] Machine Learning for Molecular Engineering
- 6.C01, 6.C51 Modeling with Machine Learning: From Algorithms to Applications
- 6.C35/11.C35 Interactive Data Visualization and Society
- 6.S052, 6.S952 Modeling with Machine Learning for Computer Science
- 6.S099 Machine Learning Single-Cell Cancer Immunotherapy Competition – IAP 2023
- 18.C06/6.S084 Linear Algebra and Optimization
- 22.C01, 22.C51 Modeling with Machine Learning: Nuclear Science and Engineering Applications
- SCM.C51 Machine Learning Applications for Supply Chain
- 21H.C30 Encoding Culture
- ES.S601, ES.S602 Programming Skills and Computational Thinking in-Context
Computational Science and Engineering
- 1.C25/6.C25/12.C25/16.C25/18.C25/22.C25 Real World Computation with Julia
- 2.C27/3.C27/6.C27 Computational Imaging: Physics and Algorithms
- 16.C20/18.C20/CSE.C20 Introduction to Computational Science and Engineering
Machine Learning, Optimization, Inference
Modeling with Machine Learning: From Algorithms to Applications

Offered: Spring
12 units, Undergraduate and Graduate
Instructors: Regina Barzilay (EECS), Tommi Jaakkola (EECS), Saurabh Amin (CEE), George Barbastathis (MechE), Connor Coley (ChemE), Ernest Fraenkel (BE), Rafael Gomez-Bombarelli (DMSE), Mingda Li (NSE), Elenna Dugundji (SCM)
Focuses on developing technical skills to work with big data to expose societal issues and communicate the insights. Working with an external partner (e.g., city government, NGO, academic researcher, media outlet, community organization), students frame important issues that can be mediated or communicated by interactive visualizations. Students then work with real-world datasets, provided by the partner, to implement their own interactive web-based data visualizations (using Vega-Lite, JavaScript, CSS and D3) designed to have a positive civic impact in that domain. Provides exposure to both the messiness and imperfection of real-world data as well as key issues of ethics and inequality that may arise in working with it.
Teaches students from a range of majors to translate a problem into a machine learning (ML) formulation and find appropriate tools for solving it. Students enroll in two 6-unit modules, run in tandem over the course of a full term—the common core, which covers ML fundamentals, and one of four discipline-specific modules that build on the core material.
Core Module
6.C01, 6.C51 Modeling with Machine Learning: From Algorithms to Applications
Prerequisite: Calculus II and 6.100A
Instructors: Regina Barzilay (EECS)
Focuses on modeling with machine learning methods with an eye towards applications in engineering and sciences. Students will be introduced to modern machine learning methods, from supervised to unsupervised models, with an emphasis on newer neural approaches. Develops 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. Enrollment limited.
Go to catalog listing
Disciplinary Modules
1.C01, 1.C51 Machine Learning for Sustainable Systems
Prerequisite: (1.000 or 1.010) or permission of instructor
Instructor: Saurabh Amin (Civil and Environmental Engineering)
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.
Go to catalog listing
2.C01, 2.C51 Physical Systems Modeling and Design Using Machine Learning
Prerequisite: 2.086
Instructor: George Barbastathis (Mechanical Engineering)
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.
Go to catalog listing
3.C01[J]/10.C01[J]/20.C01[J], 3.C51[J]/10.C51[J]/20.C51[J] Machine Learning for Molecular Engineering
Prerequisite: Calculus II and 6.100A
Instructors: Rafael Gomez-Bombarelli (Materials Science and Engineering), Connor Coley (Chemical Engineering), Ernest Fraenkel (Biological Engineering) on sabbatical in Spring 2023
See catalog listing
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.
Go to catalog listing
6.S052, 6.S952 Modeling with Machine Learning for Computer Science – NEW in Spring 2022
Prerequisite: 18.C06; 6.1200 or 6.3700; 6.100A
Instructor: Tommi Jaakkola (EECS)
Focuses on in-depth modeling of engineering tasks as machine learning problems. Emphasizes framing, method design, and interpretation of results. In comparison to broader co-requisite 6.C01/6.C51, this project-oriented subject consists of deep dives into select technical areas or engineering tasks involving both supervised and exploratory uses of machine learning. Deep dives into technical areas, such as robustness, interpretability, privacy or causal discovery; engineering tasks such as recommender systems, performance optimization, or automated design.
22.C01, 22.C51 Modeling with Machine Learning: Nuclear Science and Engineering Applications
Prerequisite: Calculus II and 6.100A
Instructor: Mingda Li (Nuclear Science and Engineering)
Focuses on applying various machine learning techniques to a broad range of topics which are of core value in modern nuclear science and engineering. Relevant topics include machine learning on fusion and plasma diagnosis, reactor physics and nuclear fission, nuclear materials properties, quantum engineering and nuclear materials, and nuclear security. Special components center on the additional machine learning architectures that are most relevant to a certain field, the implementation, and picking up the right problems to solve using a machine learning approach. Final project dedicated to the field-specific applications. Students taking graduate version complete additional assignments.
Go to catalog listing
SCM.C51 Machine Learning Applications for Supply Chain
Prerequisite: SCM.254 or permission of instructor
Instructor: Elenna Dugundji (Center for Transportation and Logistics)
Building upon 6.C51, students will design and develop applications targeted to solve key problems in Supply Chain (SC) using state-of-art machine learning (ML) methods and algorithms. Special emphasis will be given to the selection of the appropriate ML methods for the SC problems addressed, as well as requirements for code productionalization and code efficiency, both key in real industry applications.
Go to catalog listing
6.C35/11.C35 Interactive Data Visualization and Society

Offered: Spring
12 units, Undergraduate and Graduate
Prerequisite: None
Instructors: Catherine D’Ignazio (DUSP), Arvind Satyanarayan (EECS), Sarah Williams (DUSP)
Focuses on developing technical skills to work with big data to expose societal issues and communicate the insights. Working with an external partner (e.g., city government, NGO, academic researcher, media outlet, community organization), students frame important issues that can be mediated or communicated by interactive visualizations. Students then work with real-world datasets, provided by the partner, to implement their own interactive web-based data visualizations (using Vega-Lite, JavaScript, CSS and D3) designed to have a positive civic impact in that domain. Provides exposure to both the messiness and imperfection of real-world data as well as key issues of ethics and inequality that may arise in working with it.
Go to catalog listing
6.S099 Machine Learning Single-Cell Cancer Immunotherapy Competition – IAP 2023

Offered: IAP
6 units (P/D/F), Undergraduate
Schedule: Tuesdays & Thursdays, 11:30-1, January 10-February 2, Room 26-168
Prerequisite: Programming (e.g., Python) at the level of 6.1010. Recommended prereqs: 6.3720, 6.3900, or 6.3730[J]/IDS.012[J]. No background in biology required.
Instructors: Caroline Uhler (EECS), Paul Blainey (Biological Engineering), Jonathan Weissman (Biology)
Image credit: Alex Ritter, Jennifer Lippincott Schwartz and Gillian Griffiths, National Institutes of Health
The future of cancer care is immunotherapy — using our body’s immune system to eliminate tumors. While T cells, our immune system’s fighter cells, should recognize and kill growing tumors, cancer cells send signals to T cells that cause these fighter cells to malfunction. But what if we could modify T cells to make them better at killing cancer cells? In this class, students will participate in a global cancer immunotherapy data science challenge and apply their machine learning skills to help solve this key biological problem. The challenge is being run by the Eric and Wendy Schmidt Center at the Broad Institute of MIT and Harvard. Students will learn the basics of cancer biology, single-cell sequencing technology, and data analysis needed to succeed in the challenge. Top-scoring submissions will be validated in a lab at the Broad Institute, and winners will be eligible for monetary prizes totaling $50,000 and paper authorship.
Go to catalog listing
18.C06/6.S084 Linear Algebra and Optimization, REST

Offered: Fall
12 units, Undergraduate
Prerequisite: Calculus II
Instructors: Ankur Moitra (Math), Pablo Parrilo (EECS)
82% EECS and Math majors
Other majors: AeroAstro, CEE, ChemE, Economics, MechE, Physics, Sloan
Covers same fundamental concepts as 18.06 Linear Algebra with a view toward modeling, computation, and applications. Integrates geometric, algebraic, and computational viewpoints.
Unified introduction to linear algebra and optimization, their interconnections, and applications throughout science and engineering. 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.
Go to catalog listing
Computational Thinking
21H.C30 Encoding Culture

Offered: Spring
12 units, Undergraduate
Prerequisite: 6.100A
Instructors: Catherine Clark (History), Ryaan Ahmed (History, Music)
Computers allow scholars and artists to study and play with media such as texts, images, audio, and numerical datasets with unprecedented scale and speed. These affordances open a world of opportunity for cultural production: artists can sketch, remix, and make on machines, and an individual scholar can access and analyze more and more varied cultural artifacts than ever before.
But what does it mean to model, create, or analyze these media on a computer? This course explores this question, in the technical sense of how we represent these media as bits on a hard drive, and in considering the consequences of doing so. Students will learn the history and current practice of digitally encoding common forms of media, along with the cultural and social issues implicit in these systems. They will apply computational methods for manipulating and analyzing encoded media, drawing from a wide range of practices including computational linguistics, audio processing, computer vision, and machine learning. In doing this work, students will confront underlying issues of what is lost and gained when we encode culture, and equip themselves to think critically about their own computing work.
ES.S601, ES.S602 Programming Skills and Computational Thinking in-Context

Offered: Fall and Spring
18 units, Undergraduate
Teaching and development team: Analia Barrantes (ESG), Ana Bell (EECS), Leigh Royden (EAPS, ESG), Paola Rebusco (ESG)
Teaches experimental sections of 6.100A Introduction to Computer Science and Programming in Python and 6.100B Introduction to Computational Thinking and Data Science in tandem with the physics GIR. In the fall term, one section of ES.801 (ESG version of 8.01, 12 units) is paired with one section of 6.100A (6 units). In the spring term, one section of ES.802 (ESG version of 8.02, 12 units) is paired with one section of 6.100B (6 units). Students in these sections will enroll in both the ESG and CS subjects (for a total of 18 units) and receive a separate grade for each. This pilot will generate a library of problems that connect and combine basic computation in Python with basic concepts in the physics GIRs.
Computational Science and Engineering
1.C25/6.C25/12.C25/16.C25/18.C25/22.C25 Real World Computation with Julia
Focuses on algorithms and techniques for writing and using modern technical software in a job, lab, or research group environment that may consist of interdisciplinary teams, where performance may be critical, and where the software needs to be flexible and adaptable. Topics include automatic differentiation, matrix calculus, scientific machine learning, parallel and GPU computing, and performance optimization with introductory applications to climate science, economics, agent-based modeling, and other areas. Labs and projects focus on performant, readable, composable algorithms and software. Programming will be in Julia. Expects students have some familiarity with Python, Matlab, or R. No Julia experience necessary.
Counts as an elective for CEE students, an advanced subject (18.100 and higher) for Math students, an advanced elective for EECS students, and a computation restricted elective for NSE students. AeroAstro students can petition department to count this class as a professional subject in the computing area.
2.C27/3.C27/6.C27 Computational Imaging: Physics and Algorithms
Contemporary understanding of imaging is essentially computational: it involves encoding onto a form of radiation the information about a physical object, transferring the radiation through the imaging system, converting it to a digital signal, and finally computationally decoding the object information and presenting it to the user. This class introduces a unified formulation of computational imaging systems in the form of a three-round “learning spiral:” in the first two rounds of the spiral, the instructors describe the physical and algorithmic parts in two exemplary imaging systems; in the third round, students conduct themselves in the context of the class project on an imaging system of their choice.
The undergraduate and graduate versions share lectures but have different recitations. Includes optional “clinics” throughout the term to even out background knowledge of linear algebra, optimization, and computational imaging-related programming best practices for students of diverse disciplinary backgrounds.
16.C20/18.C20/CSE.C20 Introduction to Computational Science and Engineering

Offered: Fall and Spring (second half of term)
6 units, Undergraduate
Prerequisite: Calculus I, Physics I, 6.100A
Instructors: David Darmofal (AeroAstro), Laurent Demanet (Math)
72% first-year students
Majors from AeroAstro, Architecture, BE, CEE, ChemE, EECS, Math, MechE, NSE, Physics
Image credit: NASA/JPL-Caltech
Follows the same pedagogy as 6.100B Introduction to Computational Thinking and Data Science, including Python, but is set in the context of computational science and engineering and uses applications from across science and engineering including dynamics, mechanics, robotics, heat transfer, climate science, chemistry, biology, aerospace and others.
This course provides an introduction to computational algorithms for understanding of scientific phenomena and designing of engineering systems. Topics include: computational algorithms to simulate time-dependent phenomena; optimize and control applications from science and engineering; and quantify uncertainty in problems involving randomness, including an introduction to probability and statistics.
Credit cannot also be received for 6.100B. Can be combined with 6.100A Introduction to Computer Science Programming in Python for REST credit.
Go to catalog listing