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
notes
Lecture Notes
assignment
Problem Sets
Editable Files

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.)