Resources
Books
No book is required. But we highly recommend two books for this course.
- Fluent Python: Clear, Concise, and Effective Programming, by Luciano Ramalho. Publisher: O'Reilly Media. 2015.
- Designing Data Intensive Applications, by http://dataintensive.net/, The Big Ideas Behind Reliable, Scalable, and Maintainable Systems by Martin Kleppmann. Publisher: O'Reilly Media 2014
Other useful books
- The Practice of Programming by Brian W. Kernighan and Rob Pike, Addison-Wesley, 1999.
- Skiena: The Algorithm Design Manual
- Abelson, Sussmann and Sussmann: SICP and python based online version based on it: http://composingprograms.com/
- High Performance Python: By Micha Gorelick, Ian Ozsvald. Oreilly Media 2014.
- Evaluating Derivatives: Principles and Techniques of Algorithmic Differentiation by Andreas Griewank
Papers and other readings
Git
- Recommended: Git from the bottom up
- Recommended: Git Book
- GitHub Videos and Training
- GitHub Interactive Tutorial
- Git - the simple guide
- Git Reference
- Git Cheat Sheet
- Git Immersion Tutorial
- Git Atlassian Tutorial
Python
- python
- Rich overview of Python 3 language features (recommended to work through)
- Scientific visualization with Python and Matplotlib
C/C++
Vim
- Spend 30 minutes to complete the
vimtutor
. After you have installedvim
, execute the following command in your command line:vimtutor
- Vim Cheat Sheet
- Vimcasts
- Recommended book
Bash
Unix-Related
Windows Users
Ubuntu Docker Image
You can get an Ubuntu based Docker container with
docker pull iacs/cs107_ubuntu
The container is hosted here.
The Dockerfile
and run_cs107_docker.sh
launch script can be found in the
class repository.