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 (ISBN 0-201-61586-X) 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.
- Hacker guide to Python https://thehackerguidetopython.com
- Evaluating Derivatives: Principles and Techniques of Algorithmic Differentiation by Andreas Griewank
Papers and other readings
- GitHub Videos and Training
- GitHub Interactive Tutorial
- git - the simple guide
- Git Reference
- Git Cheat Sheet
- Git Immersion Tutorial