Schedule - Fall 2020
This Schedule is for Fall 2020. The website for the Fall 2021 version of the class is here. This page will be updated for Winter 2022.
This course follows a Monday, Wednesday, Friday schedule. There is a section for each day, with materials for that day. This schedule is subject to change before a class is held.
Day 00 - 9/30
Class Material
Slides for course introduction (use UChicago login). [Zoom Recording - first 20 min are slides, second 25 min are questions]
- Basic Bash [Video Walkthrough]
- Install Anaconda Python [Video Walkthrough]
- Install Jupyter notebooks [Video Walkthrough]
- Python Basics [Video]
Reading
- Discrete or Continuous? by N. Trefethen. Required
- Top-10 Algorithms of the 20th Century by B. Cipra. Required
- What Kind of Science is Computational Science? by R. Allain Recommended
- and A Rebuttal by T. Kolda. Recommended
- A Science-Based Case for Large-Scale Simulation US Department of Energy Optional
Day 01 - 10/2
Homework
- see the git tutorial if you are not familiar with git version control. [Video]
- Homework 0 released
Class Material
- Bits, Bytes, and Numbers [Video]
- Basic Containers and Packages [Video]
- Asymptotic notation [Video]
- Python Scripts [Download] [Video Walkthrough]
Reading
- 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 02 - 10/5
Class Material
Reading
- Functions Required
- More on defining functions Required
- Function definitions Recommended
Day 03 - 10/7
Class Material
Reading
- Classes Required at least through 9.5 (inheritance)
- Class definitions Recommended
- Modules Required
Day 04 - 10/9
Homework
- Homework 0 due - 12pm CST
- Homework 1 released
If you are still new to git, see collaboriating with git [Video]
Class Material
Reading
- Newton’s Method on Wolfram Mathworld Recommended
Day 05 - 10/12
Class Material
Reading
- Mastering SciPy pp 13 - 18 (Creation of matrices) required
- NumPy Ufuncs Recommended
Day 06 - 10/14
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 28 - 38 (Basic Matrix Manipulation) required
- Mastering SciPy pp 38 - 41 (Matrix Factorizations) required
- Mastering SciPy pp 54 - 55 (Eigenvalue Decompositions) required
Day 07 - 10/16
Homework
- Homework 1 due
- Homework 2 released
Class Material
Reading
- LAPACK on netlib Recommended
- BLAS on netlib Recommended
Day 08 - 10/19
Class Material
Reading
- Mastering SciPy pp 19 - 28 (Creation of sparse matrices, linear operators) Required
Day 09 - 10/21
Sparse direct methods, iterative methods, ARPACK, randomized linear algebra.
Reading
- 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 10 - 10/23
Homework
- Homework 2 due
- Homework 3 released
Class Material
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 11 - 10/26
Class Material
Reading
- SymPy Introduction Required Look around the documentation as well.
- Mastering SciPy pp 105 - 110 (Differentiation) Required
Day 12 - 10/28
Class Material
Reading
- Mastering SciPy pp 165 - 178 (Initial Value Problems) Required
- SciPy
solve_ivp
Required
Day 13 - 10/30
Homework
- Homework 3 due
- Homework 4 released
Class Material
Link to python-packages
repository which is used in the videos.
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
Day 14 - 11/2
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
Day 15 - 11/4
Class Material
- Intro to RCC [Video by Yian]
- Integration, Quadrature [Video]
Reading
- RCC User Guide Recommended to familiarize yourself with what is available
- Mastering SciPy pp. 111-123 Required
scipy.integrate.quad
Recommended
Day 16 - 11/6
Homework
- Homework 4 due
- Homework 5 released
Class Material
Reading
- Mastering SciPy pp. 125-163 (Optimization) Required OK to skim over code.
- SciPy Optimize Tutorial Recommended
Day 17 - 11/9
Class Material
Reading
- SciPy
integrate.solve_bvp
Recommended - SymPy
ode.dsolve
Recommended
Day 18 - 11/11
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
Day 19 - 11/13
Project
Midterm Checkpoint Due. See guidelines.
Homework
- Homework 6 released
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.
Day 20 - 11/16
Homework
- Homework 5 due
Class Material
Reading
- 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 21 - 11/18
Class Material
Reading
- Mastering SciPy pp. 199-202 (Shortest Path Problems) Recommended
- NetworkX Tutorial Recommended
Day 22 - 11/20
Homework
- Homework 6 due
- Homework 7 released
Class Material
Reading
- Mastering SciPy pp. 292-298 (Dimensionality Reduction) Required
- Tutorial on Spectral Clustering by Ulrike von Luxburg Optional
Thanksgiving Break
Thanksgiving break is 11/23-11/27
Day 23 - 11/30
Class Material
Reading
- PyTorch Tutorials check them out to see if there is something that matches your interests Optional
Day 24 - 12/2
Class Material
Reading
- FFT Algorithm by Cooley and Tukey Recommended
- Mastering SciPy pp. 311-374 (Image Processing) Optional
Day 25 - 12/4
Homework
- Homework 7 due
Class Material
Reading
- SciPy stats tutorial Recommended
- Mastering SciPy pp. 217-274 (Descriptive Statistics) Recommended
Reading Period
Finals Period
Final Project due 12/9. See repository