Home/Learning resources

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.
**Google Colab** hosts coding examples demonstrating the
topic's
applications. **Review** contain a list of questions to help you reviewing what you learned in each topic.

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.

I often get this question from students: "How can I study for this course?" I will give here my recommendation, based on observations, my own experience as student, and feedback received over the years. Of course, every student is different, and the recommendations below may not apply to you.

1) Watch the pre-recorded videos and complete the short questions (PrairieLearn lecture activities).
Some students prefer to read instead of watching videos. If that is your case, you can take a look at the lecture **slides**
and/or **notes** before answering the short questions.

2) Start the homework AFTER you go over the course content and have a good understanding of the material. Use the homework to test your knowledge. Go back and review the concepts when you get a questions marked as incorrect. I know it can be tempting to just keep trying until you get the question marked as correct (the so desirable PrairieLearn green badge!), but you will be missing the opportunity to actually learn from your mistakes.

3) Watch the pre-recorded videos before the corresponding group activities. You will have more productive and interesting conversations with your team mates if you know the content.

4) When preparing for the quizzes, take a look at the **review questions**.
They may help you figuring out what you know and what you still
need to learn. Go back to the videos, slides and/or notes from concepts that you have not mastered yet.

- 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
- Nonlinear System of Equations
- Optimization
- Singular Value Decomposition
- Linear Least Squares
- Principal Component Analysis

Find out what you are going to learn in this Numerical Methods course.

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

Representing large systems with many zeros

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

Continuously improving a function through its parameters.

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