Offered under: 1.C25, 6.C25, 12.C25, 16.C25, 18.C25, 22.C25
Term(s): Fall only
Level: Undergraduate
Units: 12
Prerequisite: Any programming, differential equations, and linear algebra, e.g., 6.100A18.0318.C06
Instructors: Alan Edelman (Mathematics), Raffaele Ferrari (Earth, Atmospheric, and Planetary Sciences), Youssef Marzouk (AeroAstro), John Williams (Civil and Environmental Engineering)

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.
Go to catalog listing