Schedule - Winter 2022
The start of Winter quarter has been delayed 1 week, and the following 2 weeks will be online.
This course follows a Monday/Wednesday 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
System Setup
- Basic Bash [Video Walkthrough]
- Install Anaconda Python [Video Walkthrough]
- Install Jupyter notebooks [Video Walkthrough]
- Using Python
Day 00 - 1/10
Class Material
Slides for course introduction
- Python Basics
- Bits, Bytes, and Numbers
- Basic Containers and Packages
- Python Scripts [Example Script] [Download Example]
Reading
- Discrete or Continuous? by N. Trefethen. Required
- Top-10 Algorithms of the 20th Century by B. Cipra. 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
Day 01 - 1/12
Homework
- see the git tutorial if you are not familiar with git version control. [Video]
- Homework 0 released
Class Material
Reading
- Functions Required
- More on defining functions Required
- Function definitions Recommended
Day 02 - 1/17
MLK Day. No class
Day 03 - 1/19
Homework
- Homework 0 due
- Homework 1 released
Class Material
Reading
- Classes Required at least through 9.5 (inheritance)
- Class definitions Recommended
- Modules Required
Day 04 - 1/24
Class Material
Reading
- Newton’s Method on Wolfram Mathworld Recommended
- NumPy Ufuncs Recommended
Day 05 - 1/26
Homework
- Homework 1 due
- Homework 2 released
Class Material
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
Day 06 - 1/31
Class Material
Reading
- Mastering SciPy pp 19 - 28 (Creation of sparse matrices, linear operators) Required
Day 07 - 2/2
Homework
- Homework 2 due
- Homework 3 released
Class Material
- Agent-based modeling
- Python Iterators and Generators
- Sparse Linear Algebra (We’ll start if there is time)
Reading
- Python Tutorial on Iterators Required
- Python Tutorial on Generators Required
- E. Bonabeau Agent-based modeling: Methods and techniques for simulating human systems (2002) Recommended
You may also want to look at the Wikipedia entry for Agent-based model
Day 08 - 2/7
Class Material
Sparse direct methods, iterative methods, ARPACK, randomized linear algebra.
Reading
unittest
documentation Required at least skim it to see what is in there.- Introduction to GitHub actions Recommended again, skim to see what is in there
- Python packaging Required
- Mastering SciPy pp 44 - 51 (Sparse direct, iterative methods) Required
- Mastering SciPy pp 56 - 57 (
eigs
,eigsh
) Required - Finding Structure with Randomness: Probabilistic Algorithms for Constructing Approximate Matrix Decompositions (Halko, Martinsson, Tropp. 2009) Recommended - you can just skim and read the algorithms on a first pass.
Day 09 - 2/9
Homework
- Homework 3 due
- Homework 4 released
Class Material
Reading
- SymPy Introduction Required Look around the documentation as well.
- Mastering SciPy pp 105 - 110 (Differentiation) Required
- Mastering SciPy pp 165 - 178 (Initial Value Problems) Required
- SciPy
solve_ivp
Required
Day 10 - 2/14
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 11 - 2/16
Homework
- Homework 4 due
- Homework 5 released
Class Material
Reading
- RCC User Guide Recommended to familiarize yourself with what is available
- Mastering SciPy pp. 125-163 (Optimization) Required OK to skim over code.
- SciPy Optimize Tutorial Recommended
Day 12 - 2/21
Class Material
- Optimization (continued)
- Boundary Value Problems
- Pandas (if time)
Reading
- SciPy
integrate.solve_bvp
Recommended - SymPy
ode.dsolve
Recommended
Day 13 - 2/23
Homework
- Homework 5 due
- Homework 6 released
Project
Midterm Checkpoint Due. See guidelines.
Class Material
Reading
- Python for data analysis by Wes McKinney Ch. 5 (Pandas) Required (you can download the chapter or the whole book through the library with a UChicago account)
- Pandas Tutorials Recommended to skim and see if you find something relevant
- Scikit learn introduction Required
- Scikit learn user guide Recommended Just look through what the possibilities are
- Mastering SciPy pp. 275-309 (Inference and Data Analysis) Recommended - There are some examples with Scikit learn in there.
Day 14 - 2/28
Class Material
Reading
- Scikit learn introduction Required
- Scikit learn user guide Recommended Just look through what the possibilities are
- Mastering SciPy pp. 275-309 (Inference and Data Analysis) Recommended - There are some examples with Scikit learn in there.
- Mastering SciPy pp. 205-209 (Nearest Neighbors and Range Searching) Required
- Mastering SciPy pp. 179-216 (Computational Geometry) Optional (We’re not going to cover Hulls, Triangulations, and Bezier Curves)
Day 15 - 3/2
Homework
- Homework 6 due 3/4
- Homework 7 released 3/4
Class Material
Reading
- Mastering SciPy pp. 199-202 (Shortest Path Problems) Recommended
- NetworkX Tutorial Recommended
Day 16 - 3/7
Class Material
Reading
- Mastering SciPy pp. 292-298 (Dimensionality Reduction) Required
- Tutorial on Spectral Clustering by Ulrike von Luxburg Optional
Day 17 - 3/9
Homework
- Homework 7 due 3/11
Class Material
Reading
- PyTorch Tutorials check them out to see if there is something that matches your interests Optional
Finals Period
College reading period is 3/12-3/14
Final Project report due 3/18.