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.

New subjects in the Common Ground undergo review by the Common Ground Standing Committee. If you have ideas for a new class, please reach out to

Introduction to Computational Science and Engineering
Linear Algebra and Optimization
Modeling with Machine Learning: From Algorithms to Applications

Introduction to Computational Science and Engineering (6.S082/16.901/18.S190)

Fall 2020 (second half of term)
6 units, Undergraduate
Prerequisite: 6.0001
Instructors: David Darmofal (AeroAstro), Laurent Demanet (Math)

66% are first-year students
Majors from AeroAstro, ChemE, EECS, Physics

Image credit: NASA/JPL-Caltech

Follows the same pedagogy as 6.0002 (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.0002. Can be combined with 6.0001 (Introduction to Computer Science Programming in Python) for REST credit.

Linear Algebra and Optimization (6.S084/18.S096)

Fall 2020
12 units, Undergraduate
Prerequisite: Calculus II
Instructors: Ankur Moitra (Math), Pablo Parrilo (EECS)

71% EECS and Math majors
Other majors from AeroAstro, BE, ChemE, Economics, MechE, Physics, Sloan

Covers same fundamental concepts as 18.06 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.

Approved substitution for 18.06 for EECS and Math students.

Modeling with Machine Learning: From Algorithms to Applications

Spring 2021
12 units, Undergraduate and Graduate
Instructors: Regina Barzilay (EECS), Tommi Jaakkola (EECS), Saurabh Amin (CEE), George Barbastathis (MechE), Conor Coley (ChemE), Mohammad Fazel Zarandi (Sloan), Ernest Fraenkel (BE), Rafael Gomez-Bombarelli (MSE), Mingda Li (NSE), Natalia Summerville (SCM)

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

Modeling with Machine Learning: From Algorithms to Applications (6.402, 6.482)
Prerequisite: Calculus II and 6.0001
Instructors: Regina Barzilay (EECS), Tommi Jaakkola (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.

Disciplinary Modules

Machine Learning for Sustainable Systems (1.024, 1.224)
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.

Physical Systems Modeling and Design Using Machine Learning (2.161, 2.169)
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.

Machine Learning for Molecular Engineering (3.100/10.402/20.301, 3.322/10.662/20.401)
Prerequisite: Calculus II and 6.0001
Instructors: Rafael Gomez-Bombarelli (Materials Science and Engineering), Conor Coley (Chemical Engineering), Ernest Fraenkel (Biological Engineering)

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.

Modeling with Machine Learning: Nuclear Science and Engineering Applications (22.042, 22.42)
Prerequisite: Calculus II and 6.0001
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.

Machine Learning Applications for Supply Chain (SCM.S90)
Offered second half of term
Instructor: Natalia Summerville (Supply Chain Management)

Building upon 6.482, 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.