## Syllabus

### Prerequisite:

programming course: engineering programming (371.1.1671) or computer programming (202.1.9011) or equivalent.

### Course Plan:

- Overview of compiled Low-level languages: fortran, C++, python
- Overview of interpreted languages: Matlab, Mathematica, IDL
- Numerics: precision, stability, bottlenecks, computer structure
- Solution methods: iteration, bisection, Newton, secant, linear algebra
- Minimization and maximization: Brent, Newton, simulated annealing
- Interpolation and extrapolation: polynomial, spline, Laplace
- Numerical differentiation and integration
- Statistical description of data: modeling, comparing distributions
- Spectral methods, FFT, wavelet transforms
- Monte Carlo simulations
- ODE methods: finite differences, adaptive, Euler, shooting, relaxation
- PDE methods: reduction, relaxation, multi-grid

### Sources:

- Numerical recipes (Press, Teukolsky, Vetterling, Flannery 2007)
- Computational physics (Hjorth-Jensen 2003)
- A survey of computational physics (Princeton 2008)