12.010 | Fall 2024 | Undergraduate

Computational Methods of Scientific Programming

Course Description

This introductory course exposes students to modern programming methods and techniques used in practice by physical scientists today. Emphasis is placed on code design, algorithm development/verification, and comparative advantages/disadvantages of different languages (including Python, Julia, and C/C++) and tools …
This introductory course exposes students to modern programming methods and techniques used in practice by physical scientists today. Emphasis is placed on code design, algorithm development/verification, and comparative advantages/disadvantages of different languages (including Python, Julia, and C/C++) and tools (including Jupyter, machine learning from data or models, and cloud and high-performance computing workflows). Students are introduced to and work with common programming tools, types of problems, and techniques for solving a variety of data-analytic and equation-modeling scenarios from real research: examination visualization techniques; basic numerical analysis; methods of dissemination and verification; and practices for reproducible work, version control, documentation, and sharing/publication.
Learning Resource Types
Lecture Notes
Problem Sets
Editable Files
A large warehouse-like room filled with rows of connected electronic modules, with the Summit logo and the IBM logo printed on one end of the first row.
When it was launched in 2018, the Summit supercomputer at Oak Ridge National Laboratory was the most powerful computer in the world. (Image courtesy of DOE. Image is in the public domain.)