These Jupyter notebooks introduce key Algorithmic and Software Design concepts:
- Error: floating point errors (rounding, representation, subtraction), convergence.
- Quality control: code requirements, unit testing, version control.
- Performance: big O complexity, scaling and parallel speed-up, code profiling.
- Sampling: numerical interpolation (polynomial fitting, piecewise linear, cubic spline) and integration (Newton-Cotes methods, Gaussian quadrature).
- Iteration: ODE integration methods (Euler, improved Euler, backward Euler). Concepts of convergence, accuracy and stiffness.
- Data: file I/O, linked lists.
- Combinatorics: sorting, searching, Dijkstra's shortest path algorithm.
- APIs: design and OpenStreetMap example
Download and unzip a local copy of this library. Open a Jupyter Notebook server and then open intro/intro.ipynb.
Alternatively, clone a copy of this library into your Microsoft Azure Account.
David Dempsey Colin Simpson