This page contains links to helpful resources for learning Python and Numpy+Scipy+Matplotlib, including links to documentation, books, and tutorials. The material below was not created by course staff and are not required for the completion of the course.

- Dive into Python 3
- Learn Python the hard way
- Python tutorial
- Facts and myths about Python names and values
- CSE workshop training material

- Numpy/Scipy documentation
- Numpy Quickstart Tutorial
- Numpy Routines
- Numpy for Matlab Users
- Python Data Science Handbook
- Scipy Lectures
- Introduction to Python for Science
- An introduction to Numpy and SciPy
- 100 Numpy exercises
- The Numpy MedKit by Stéfan van der Walt
- From Python to Numpy (An open-access book on numpy vectorization techniques, Nicolas P. Rougier, 2017)
- More in this reddit thread

See below some useful links that we have collected over the years. These are not material created by course staff, and are not required for the completion of the course.

There is **no required textbook** for the course. However, the textbook
*Numerical Mathematics and Computing* 6th edition by Cheney and Kinkaid can be helpful if you need some extra reading.
The 5th and 7th editions are also fine references.

- Immersive Linear Algebra
- Essence of Linear Algebra (YouTube, by 3Blue1Brown)
- Linear Algebra (YouTube, by MathTheBeautiful)

- Statistics for Hackers by Jake VanderPlas

- What is a vector space?
- What is a vector space?
- “Practical Data Science: Matrices, vectors, and linear algebra”
- Vector Spaces
- Gaussian Blur

- An Interactive Tutorial on Numerical Optimization by Ben Frederickson