Be sure to refresh this page to see the most recent version.
Schedule - Fall 2025
This course follows a Tuesday/Thursday schedule. There is a section for each day, with materials for that day. This schedule is subject to change before a class is held.
Schedule Archives: Fall 2020 Fall 2021 Winter 2022 Fall 2023 Fall 2024
System Setup
Day 00 - 09/30
Class Material
Reading
- Discrete or Continuous? by N. Trefethen. Required
- PEP 0020 - The Zen of Python Required
- PEP 0008 - Style Guide (just skim and read anything interesting) Required
- Array Programming with NumPy by Harris, et al. Recommended
- Top-10 Algorithms of the 20th Century by B. Cipra. Recommended for those interested in the culture of scientific computing.
Day 01 - 10/02
Homework
- Homework 0 released.
- See the git tutorial if you are not familiar with git version control.
Class Material
Reading
- Functions Required
- More on defining functions Required
- Function definitions Recommended
Day 02 - 10/07
Class Material
Reading
- NumPy Ufuncs Recommended
Day 03 - 10/09
Homework
- Homework 0 due.
- Homework 1 released.
Class Material
- Python Objects, OOP (continued)
- Dense Linear Algebra If you don’t have much prior experience with matrix factorizations, it is highly recommended to go through the exercises in the notebook.
Reading
- Mastering SciPy pp 13 - 18 (Creation of matrices) required
- Mastering SciPy pp 28 - 38 (Basic Matrix Manipulation) required
- Mastering SciPy pp 38 - 41 (Matrix Factorizations) required
-
Mastering SciPy pp 54 - 55 (Eigenvalue Decompositions) required
- LAPACK on netlib Optional
-
BLAS on netlib Optional
- Classes Required at least through 9.5 (inheritance)
- Class definitions Recommended
Day 04 - 10/14
Class Material
- Dense Linear Algebra (Continued)
- SciPy BLAS and LAPACK Interfaces
- Modules and Packages [GitHub repository
- Convergence of Algorithms
- Root Finding
Reading
- Modules Required
- Newton’s Method on Wolfram Mathworld Recommended
Day 05 - 10/16
Class Material
Reading
- Mastering SciPy pp 19 - 28 (Creation of sparse matrices, linear operators) Required
- Mastering SciPy pp 105 - 110 (Differentiation) Required
Day 06 - 10/21
Class material
- Sparse Linear Algebra (Continued)
- Differentiation
Reading
- Mastering SciPy pp 105 - 110 (Differentiation) Required
Day 07 - 10/23
Homework
- Homework 2 due
- Homework 3 released
Class material
- Differentiation (Continued
- Initial Value Problems
- Unit testing
- Sympy
Reading
unittestdocumentation Required at least skim it to see what is in there.- Mastering SciPy pp 165 - 178 (Initial Value Problems) Required
- SciPy
solve_ivpRequired
Day 08 - 10/28
Class material
Reading
- Mastering SciPy pp. 61 - 104 (Interpolation and Approximation) Required
- SciPy interpolation tutorial Recommended
- PyPlot Use FAQ Required (first half)
- Matplotlib tutorials Recommended take a look around
- Mastering SciPy pp. 111-123 Required
scipy.integrate.quadRecommended
Day 09 - 10/30
Homework
- Homework 3 due
- Homework 4 released
Class material
Reading
- Python Tutorial on Iterators Required
- Python Tutorial on Generators Required
Day 10 - 11/04
Homework
- Project proposal due
Class material
- Condition numbers
- Agent-based modeling
Day 11 - 11/06
Homework
- Homework 4 due
- Homework 5 released
Class material
Day 12 - 11/11
Day 13 - 11/13
Homework
- Homework 5 due
- Homework 6 released
Class Material
- Nearest Neighbor Queries (continued)
- Dimensionality Reduction, Plotly
- Linear Algebra in PyTorch
- Basic Neural Networks in PyTorch
- Scipy distributions
Day 14 - 11/18
No class
Day 15 - 11/20
Homework
- Homework 6 due
- Homework 7 released
- Project checkpoint due
Class material
- Monte Carlo Methods
- Introduction to Fourier methods
Day 16 - 12/05
Homework
- Homework 7 due
- Homework review
Class material
- Introduction to Fourier methods
- Boundary Value Problems
Project
Groups finalized 10/20.
Project proposal due 11/4.
Midterm checkpoint due 11/19.
Final Project report due 12/11.
Finals Period
College reading period is 12/6-12/8