*******************************************************************************
Textbook and tools
*******************************************************************************
Required reading
=================
`Algorithms `__, by Jeff Erikson. The book is available at no cost in PDF format. Inexpensive printed copies are also available for purchase.
Programming environment
========================
For this course, I use Jupyter Notebooks, hosted in Google's Colaboratory. These notebooks blend Python code and rich-text documentation that supports superb mathematical typography through LaTeX. The notebooks are, according to *Nature*, one of the 10 computing projects that transformed Science. (`The article is available `__, through the LUC libraries, and worth reading.)
If you have a ``gmail`` account, you have access to Google Colaboratory. If you do not have a ``gmail`` account, you have a few options.
* Your best bet is to just establish a ``gmail`` account.
* Otherwise, you could download and install a free version of the `Anaconda Navigator `__. Then you can fork the course's Jupyter Notebooks from GitHub and execute them on the Navigator. Please take into consideration that the instructor cannot provide technical support for downloading, installing, and maintaining Anacoda on your computer, and for managing git forks.
* If you prefer to use a different language than Python, you may do so. Most IDEs for languages like Java, C, C++, etc, however, do not support (easily) rich-text documentation or mathematical typography. The course does not expect you to produce much of either, but it would be nice if you tried out *Markdown* and LaTeX.
Rich-text documentation in this course is done with *Markdown*. Mathematics are typeset with *LaTeX*. **You are not expected** to be familiar with *Markdown* or *LaTeX.* And there is no requirement to learn either. But both are good skills to have and you may want to spend some time exploring them. *Markdown* easy to learn; *LaTeX* is a bit more demanding.
To learn more about these tools:
* `Getting started with Markdown `__.
* `Introduction to LaTeX `__.