Be sure to refresh this page to see the most recent version.
Schedule - Fall 2023
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
System Setup
- Basic Bash [Video Walkthrough]
- Install Anaconda Python [Video Walkthrough]
- Install Jupyter notebooks [Video Walkthrough]
- Using Python
Day 00 - 9/26
Class Material
- Python Basics
- Bits, Bytes, and Numbers
- Basic Containers and Packages
- Python Scripts [Example Script] [Download Example]
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 - 9/28
Homework
- Homework 0 released.
Day 02 - 10/3
Class Material
Reading
- NumPy Ufuncs Recommended
Day 03 - 10/5
Class Material
- Dense Linear Algebra
- SciPy BLAS and LAPACK Interfaces
- Python Objects, OOP 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/10
Homework
- Homework 2 released
Class Material
Reading
- Modules Required
- Newton’s Method on Wolfram Mathworld Recommended
Day 05 - 10/12
Homework
- Homework 1 due
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
Day 06 - 10/17
Class material
- Sparse Linear Algebra (Continued)
- Differentiation
Reading
- Mastering SciPy pp 105 - 110 (Differentiation) Required
- SciPy
solve_ivp
Required
Day 07 - 10/19
Homework
- Homework 2 due
- Homework 3 released
- Project groups finalized
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
- Matplotlib tutorials Recommended take a look around
Day 08 - 10/24
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 - 10/26
Homework
- Homework 3 due
- Homework 4 released
Class material
- Condition numbers
- Python Iterators and Generators
Reading
- Python Tutorial on Iterators Required
Day 10 - 10/31
Homework
- Project proposal due
Class material
Reading
- Python Tutorial on Generators Required
Day 11 - 11/02
Homework
- Homework 4 due
- Homework 5 released
Class Material
Day 12 - 11/07
Class Material
Day 13 - 11/09
Homework
- Homework 5 due
- Homework 6 released
Class Material
Cancelled
Day 14 - 11/14
Homework
- Midterm checkpoint due 11/14
Class Material
Day 15 - 11/16
Homework
- Homework 6 due
- Homework 7 released
Class Material
Day 16 - 11/28
Class Material
- Fast Multipole Method
Day 17 - 11/30
Homework
- Homework 7 due
Class Material
- Fast Fourier Transform (FFT)
- Boundary Value Problems
Project
Groups finalized 10/19.
Project proposal due 10/31.
Midterm checkpoint due 11/14.
Final Project report due 12/7.
Finals Period
College reading period is 12/2-12/4