Date | Lec # | Topics | Notes |
Jun 8 | 1 | Course Intro: course objectives; how to learn programming (or anything else); computational thinking; what can a computer do? | notes |
Jun 9 | 2 | Python Basics: Python in context; data, variables and operations | notes |
Jun 10 | 3 | Python Basics 2: basic data types | notes |
Jun 11 | 4 | Python Basics 3: advanced data types | notes |
Jun 12 | 5 | Conditionals and Loops: boolean values; if-then-else; for loops; while loops | notes |
Jun 15 | 6 | Functions: defining functions; return values; function arguments; scope; equality vs. identity; recursion | notes |
Jun 16 | 7 | Data representation: characters; integers, signs and endianness; arrays; Python objects and lists; memory management | notes |
Jun 17 | 8 | Application: Sorting Algorithms I: bubble sort; computational time; comparison counts | notes |
Jun 18 | 9 | Application: Sorting Algorithms II: divide and conquer; merge sort; quicksort | notes |
Jun 19 | 10 | Studio (Classes and Objects) | |
Jun 22 | 11 | Numerical analysis in context: history; rational number representation; floating point representation and properties; propagation of errors | notes |
Jun 23 | 12 | Numerical analysis in context 2 | notes |
Jun 24 | 13 | Studio (Debugging) | |
Jun 25 | 14 | Rootfinding methods: standard methods (bisection, Newton, secant, Halley, fixed point); rootfinding with the scipy library; orders of convergence; potential problems | notes |
Jun 26 | 15 | Rootfinding methods continued | notes |
Jun 29 | 16 | Polynomial Interpolation: interpolation basics, orthogonal interpolation bases, Lagrange interpolating polynomials, Runge's phenomenon, interpolation on Chebyshev nodes | notes |
Jun 30 | 17 | Error in Polynomial Interpolation: approximation theory; minimax approximation; interpolation error formula; the Lebesgue function and Lebesgue constant | notes |
Jul 1 | 18 | More Interpolation: spline basics; rates of convergence; FFT-based interpolation; image resizing; interpolating curves in 3D | notes |
Jul 2 | 19 | Studio (interpolation) | |
Jul 3 | | | |
Jul 6 | 20 | Numerical Integration: Riemann sums; trapezoidal rule; Simpson's rule; Gaussian quadrature | notes |
Jul 7 | 21 | ODEs: forward Euler; Runge-Kutta methods; estimating order of accuracy; applications to disease modeling; applications to pursuit-evasion modeling; basic error analysis | notes |
Jul 8 | 22 | Discussion of final projects; sympy for symbolic computation | notes |
Jul 9 | 23 | Randomness and Simulation: pseudo-random number generators; distribution of random numbers; Monte Carlo simulation; plot.ly demo | notes |
Jul 10 | 24 | Optimization: 1D and multi-D optimization; bound-constrained optimization; nonlinearly constrained optimization; linear least squares and linear regression; more general curve fitting | |
Jul 13 | 25 | Working with NetworkX: generating and plotting graphs; built-in graph generators; interactive graphs with JavaScript and D3; partitioning and the Karate Club graph; Markov chains and the stable distribution | |
Jul 14 | 26 | Studio: final projects | |
Jul 15 | 27 | Intro to git; Studio: final projects | |
Jul 16 | 28 | Studio: final projects | |
Jul 17 | 29 | Fun with Python lists; Studio: final projects | |
Jul 20 | 30 | A quick Cython example; Studio: final projects | |
Jul 21 | 31 | IPython %run magic; Studio: final projects | |
Jul 22 | 32 | Studio: final projects | |
Jul 23 | 33 | Intro to SVMs and scikit-learn: linear SVMs; the kernel trick and nonlinear SVMs; application to written digit classification | |
Jul 24 | 34 | Predicting the future with Python | |
Jul 27 | 35 | Final Presentations | |
Jul 28 | 36 | Final Presentations | |
Jul 29 | 37 | Final Presentations | |
Jul 30 | 38 | Final Presentations | |
Jul 31 | 39 | | |
Homework will be assigned through SageMath Cloud and is due at 11:59pm on the date listed.
HW # | Due | Description |
1 | Jun 10 | Little Man Computer/The Little Man Computer.ipynb |
2 | Jun 15 | Python Basics/Numbers.ipynb |
3 | Jun 15 | Python Basics/Data Types and Data Structures.ipynb |
4 | Jun 16 | Conditionals and Loops/Conditionals and Loops.ipynb |
5 | Jun 17 | Functions/Functions.ipynb (see the notes) |
6 | Jun 19 | Sorting Algorithms I/Bubble Sort.ipynb |
7 | Jun 22 | Sorting Algorithms II/Quicksort.ipynb |
8 | Jun 25 | Floating Point Representation/Floating Point Representation.ipynb |
9 | Jun 29 | Rootfinding Methods/Rootfinding Methods.ipynb |
10 | Jul 1 | Polynomial Interpolation/Polynomial Interpolation.ipynb |
11 | Jul 2 | Error in Polynomial Interpolation/Error in Polynomial Interpolation.ipynb |
12 | Jul 2 | More Interpolation/More Interpolation.ipynb |
13 | Jul 8 | Integration/Integration.ipynb |
14 | Jul 9 | ODEs/ODEs.ipynb |
15 | Jul 13 | Project Proposal/Project Proposal.ipynb |
16 | Jul 22 | Project Draft (Place all relevant files in the "Project Draft/" folder on SageMathCloud.) |
17 | Aug 3 | Final Project (Place all relevant files in the "Final Project/" folder on SageMathCloud.) |
| Aug 3 | Final Project Sharing Survey |