Be sure to refresh this page to see the most recent version.
Schedule - Fall 2024
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
System Setup
Day 00 - 10/01
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/03
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/08
Class Material
Reading
- NumPy Ufuncs Recommended
Day 03 - 10/10
Homework
- Homework 0 due.
- Homework 1 released.
Class Material
- 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.
- Python Objects, OOP
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/15
Homework
- Homework 2 released
Class Material
- 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/22
Class Material
- Linear operators
- Sparse matrix formats,
scipy.sparse
- Sparse Linear Algebra (We’ll start if there is time)
Reading
- Mastering SciPy pp 19 - 28 (Creation of sparse matrices, linear operators) Required
10/26
Homework
- Homework 2 due
Day 06 - 10/24
Class material
- Sparse Linear Algebra (Continued)
- Differentiation
Reading
- Mastering SciPy pp 105 - 110 (Differentiation) Required
- SciPy
solve_ivp
Required
Day 07 - 10/29
Homework
- Homework 3 released
Class material
Reading
unittest
documentation Required at least skim it to see what is in there.- Mastering SciPy pp 165 - 178 (Initial Value Problems) Required
Day 08 - 10/21
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.quad
Recommended
Day 09 - 11/05
Homework
- Homework 3 due
- Homework 4 released
- Project proposal due
Class material
- Integration, Quadrature (continued)
- Python Iterators and Generators
- Condition numbers
Reading
- Python Tutorial on Iterators Required
- Python Tutorial on Generators Required
Day 10 - 11/07
Class material
Day 11 - 11/12
Homework
- Homework 4 due
- Homework 5 released
Class Material
Day 12 - 11/14
Class Material
Day 13 - 11/19
Homework
- Homework 5 due
- Homework 6 released
Class Material
- Dimensionality Reduction, Plotly (continued)
- Linear Algebra in PyTorch
- Basic Neural Networks in PyTorch
Project checkpoint - 11/20
Day 14 - 11/21
- Scipy distributions
- Monte Carlo Methods
- Introduction to Fourier methods
Project
Groups finalized 10/21.
Project proposal due 11/5.
Midterm checkpoint due 11/20.
Final Project report due 12/11.
Finals Period
College reading period is 12/7-12/9