Our comprehensive set of learning materials sorted by topic. For each topic you'll find a variety of
resources. **Notes** is our course textbook, providing in-depth factual knowledge.
They are designed to guide your learning,
but they do not limit what you are supposed to know.
**Slides** contain all the course material and they are used as template for the pre-recorded videos.
**Review** contain a list of questions to help you reviewing what you learned in each topic.
**IPython** has a collection of Jupyter notebooks with examples and coding implementation for each topic.
For each one of the topics below, you have a collection of PrairieLearn assignments to support your learning: lectures, homework, machine problems group activities.

Since we provide a variety of learning resources, we do not require a textbook for the course. However, in case you need extra reading material, we suggest "Numerical Mathematics and Computing" by Cheney and Kinkaid or "Scientific Computing: An Introductory Survey" by Michael Heath.

- Introduction
- Python
- Error & Big-O
- Floating Point
- Rounding & Cancellation
- Taylor Series
- Randomness & Monte Carlo Methods
- Vectors, Matrices & Norms
- Linear System of Equations
- Conditioning
- Sparse Matrices
- Eigenvalues
- Markov Chains
- Finite Difference Methods
- Nonlinear System of Equations
- Optimization
- Singular Value Decomposition
- Linear Least Squares
- Principal Component Analysis

Python is a powerful, yet simple programming language with a rich library of numerical analysis tools such as Numpy. Python will be a core part of this course.

When approximating values, we want to control and bound our errors.

Representing real numbers is one of the most fundamental units of data in computer systems

Floating point operations have finite precision, but we can learn how to predict, control and/or avoid them.

Taylor Series is a method of expanding a function into an infinite sum of its derivatives.

When mathematically approximating a value becomes too difficult, sometimes the best way is to simulate it with raw compute power

The most fundamental form of data in linear algebra.

Many problems can be represented as a linear system of equations.

How much the error of a function's output changes with respect to change in its input

A special set of scalars associated with a linear system of equations

A stochastic model describing a sequence of possible events in which the probability of each event depends only on the state attained in the previous event

A system of two or more equations in two or more variables containing at least one equation that is not linear

All matrix transformations can be described as a rotation, a stretching, and another rotation.

Approximates the solution to a linear system of equations. Often used when a true solution does not exist.

A technique used to emphasize variation and bring out strong patterns in a dataset