16.0002/18.0002: Introduction to Computational Science and Engineering
David Darmofal SM ’91, PhD ’94
Jerome C. Hunsaker Professor of Aeronautics and Astronautics, Department of Aeronautics and Astronautics
Professor of Applied Mathematics, Department of Mathematics
From the catalog
This class provides an introduction to computational algorithms for understanding scientific phenomena and designing engineering systems, drawing from diverse applications including mechanics, robotics, climate science, biology, aerospace, and others. Topics include computational algorithms to simulate time-dependent processes, optimization and control of physical systems, and quantification of uncertainty in problems involving randomness using probability and statistics.
How do different greenhouse gases affect the climate? How does Covid-19 transmission change with or without lockdown measures? Where exactly will a Martian lander touch down given its speed and the atmospheric drag? These are the kinds of questions explored in Introduction to Computational Science and Engineering (CSE), a pilot class of the Common Ground for Computing Education, created through the MIT Stephen A. Schwarzman College of Computing.
Students take a mathematical model of a physical system, approximate it with numerical methods, and implement it through computer programming to solve such problems. The course is broken down into three major applications for CSE theory: solving time-dependent problems, optimization of systems, and accounting for uncertainty in those systems. A main goal, aside from gaining proficiency in computer programming, is to show students how these CSE algorithms apply across a variety of majors.
“For students more interested in physical systems, they will learn the underlying computational thinking and programming more effectively here because they’re excited by the applications,” says Professor David Darmofal. Teaching assistant Mark Chiriac ’24 says, “We have applications to climate science, planetary motion, epidemiology, even space landing.”
Each problem set (p-set) is tied to a key concept in computational science and engineering.
In spring 2021, p-set topics (and their corresponding concepts) were:
- Martian lander (initial value problems)
- Geothermal home heating (linear systems of equations)
- Climate modeling (nonlinear and stiff equations)
- Cell tower placement (optimization and gradient descent)
- Covid-19 spread (uncertainty quantification)
In exploring the Martian lander, students consider such questions as: Will the lander’s parachute open? When? How does that affect landing? They revisit the Martian lander during the lecture on probability and statistics and use Monte Carlo simulations to consider how uncertain drag, speed, and orientation could affect landing scenarios.
“By the end of the semester, students have a toolbox of concepts they could use for many wider problems,” says Darmofal.
Penelope Herrero-Marques ’24 says she was glad she took this class in her first year at MIT because it exposed her to a breadth of science and engineering applications. “Taking this class so early opened my eyes to the exciting, powerful, interdisciplinary field of CSE before getting too focused on any particular discipline,” she says.
“The magic of CSE is that this framework applies across disciplines,” says Professor Laurent Demanet. “It’s like a language common to different fields of science and engineering. We provide the grammar for this language, and then students can use it in their own majors later on.”