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
Coding and implementation
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. These 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.
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 had the resources to try out Markdown and LaTeX.
Documentation
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: