Lecture 1: Getting Started with Python and Programming Environment
Lecture 2: Hardware, Boolean Algebra, and Loops
Lecture 3: Array Storage and Data Structures
Lecture 4: Algorithms and Common Problems
Lecture 5: Input/Output and Program Design
Lecture 6: Solving Problems Numerically
Lecture 7: ODE Solutions
Lecture 8: Graphics
Problem set 1 due
Project description due
Lecture 9: Graphics (cont.) and GUIs
Lecture 10: Code Re-visits
Lecture 11: Data Analysis
Lecture 12: Libraries, Geopandas, and Xarray
Lecture 13: Outputting and Formatting Results
Lecture 14: Compiled Languages
Problem set 2 due
Lecture 15: Fortran
Lecture 16: C/C++
Lecture 17: C/C++ (cont.)
Lecture 18: Finish C++, Classes in Python
Lecture 19: Julia
Problem set 3 due
Lecture 20: Julia Objects, Multiple Dispatch
Lecture 21: Parallel Programming; Algorithms and Scaling; MPI
Lecture 22: Version Control and Software Management Practices
Project presentations
Lecture 23: Working with Large Data Files: NetCDF and Databases
Final project submission due