Much of the material in this document is taken from Appendix H.1 in the book *A Primer on Scientific Programming with Python*, 4th edition, by the same author, published by Springer, 2014.

The strictly required software packages for working with this document are

- Python version 2.7 [1]
- Numerical Python (NumPy) [2] [3] for array computing
- Matplotlib [4] [5] for plotting

- IPython [6] [7] for interactive computing
- SciTools [8] for add-ons to NumPy
- ScientificPython [9] for add-ons to NumPy
- nose for testing programs
- pip for installing Python packages
- Cython for compiling Python to C
- SymPy [10] for symbolic mathematics
- SciPy [11] for advanced scientific computing

- Use a computer system at an institution where the software is installed. Such a system can also be used from your local laptop through remote login over a network.
- Install the software on your own laptop.
- Use a web service.

Using a web service is very straightforward, but has the disadvantage that you are constrained by the packages that are allowed to install on the service. There are services at the time of this writing that suffice for working with most of this document, but if you are going to solve more complicated mathematical problems, you will need more sophisticated mathematical Python packages, more storage and more computer resources, and then you will benefit greatly from having Python installed on your own computer.

This author's experience is that installation of mathematical software on personal computers quickly becomes a technical challenge. Linux Ubuntu (or any Debian-based Linux version) contains the largest repository today of pre-built mathematical software and makes the installation trivial without any need for particular competence. Despite the user-friendliness of the Mac and Windows systems, getting sophisticated mathematical software to work on these platforms requires considerable competence.