The focus of the book is to give a practical introduction to computational problem-solving with Python. Brief introductions to the theory of the covered topics are given in each chapter, to introduce notation and remind
readers of the basic methods and algorithms. However, this book is not a self-consistent
treatment of numerical methods. To assist readers that are not previously familiar with
some of the topics of this book, references for further reading are given at the end of each
chapter. Likewise, readers without experience in Python programming will probably find
it useful to read this book together with a book that focuses on the Python programming
language itself.
The first chapter in this book introduces general principles for scientific computing
and the main development environments that are available for work with computing in
Python: the focus is on IPython and its interactive Python prompt, the excellent Jupyter
Notebook application, and the Spyder IDE.