Students are assumed to know how to program in a language of their choice. Examples in the class will be provided in python.
Homework assignments will be turned in via the git version control software, managed through github for education. Students should register for a github account.
#  topic  assigned  due  

1  differentiation / integration  09/07/2017  09/19/2017  homework1.pdf solutions: homework1solutions.ipynb 

2  roots / ODEs  09/21/2017  10/03/2017  homework2.pdf solutions: homework2solutions.ipynb 

3  linear algebra  10/03/2017  10/10/2017  homework3.pdf solutions: homework3solutions.ipynb 

4  FFTs  10/10/2017  10/17/2017  homework4.pdf solutions: homework4solutions.ipynb 

5  hyperbolic PDEs  10/17/2017  10/31/2017 
homework5.pdf solutions: homework5solutions.ipynb 

6  parabolic / elliptic PDEs  10/31/2017  11/09/2017  homework6.pdf solutions: homework6solutions.ipynb 

7  Monte Carlo / optimization  11/09/2017  11/21/2017  homework7.pdf solutions: homework7solutions.ipynb 

8  final project  —  12/07/2017  project.pdf 
An overview of the course and logistics.
How computers store numbers, types of errors, ...
Version control, testing, ...
Numerical approximations for sampled and analytic functions.
Basic methods for reconstructing functions.
Basic methods finding zeros.
Methods for explicit and implicit integration, boundaryvalue and eigenvalue problems.
Basic methods for solving linear systems.
An overview Fourier transforms.
Fitting models functions to data.
Finitevolume methods for linear advection and Burgers' equation.
Smoothing, multigrid, and FFT methods for elliptic equations.
Explicit and implicit methods for the heat equation.
Random sampling applied to integration and optimization.
Optimization techniques using evolutionary concepts.
An overview of techniques used in high performance computing.
Using neural networks for simple learning tasks.
Secondorder finitevolume methods for hydrodynamics.
What have we learned?