- Golub and Van Loan, Matrix Computations (3e) (required)
- Trefethen and Bau, Numerical Linear Algebra (optional)
- Applied Numerical Linear Algebra (optional)

While I will use MATLAB in my lecture materials and notes, I will allow you to submit homework scripts either in MATLAB or in Python (using SciPy and NumPy).

If you are new to MATLAB programming, you could do worse than the tutorials at the Mathworks. In addition to the tutorials provided by Mathworks, you'll find links to tutorials written at several universities, and to some popular books.

All homework scripts should run in MATLAB. However, if you do most of your development work on a machine without MATLAB, you might want to look into Octave, a freely-available MATLAB-like system.

If you do not have a Python distribution that includes SciPy, the folks at Enthought have a free distribution that will do the trick. You can also obtain an academic version. It is entirely possible to install SciPy on your own as well.

The SciPy web pages include documentation and tutorials. You may also like these online lectures on SciPy.