- Free Programming Books (GitHub awesome list) - "[...] administered by the Free Ebook Foundation, a not-for-profit organization devoted to promoting the creation, distribution, archiving and sustainability of free ebooks."
The following list goes beyond the essential/required reading that is part of this degree. The essential reading for each module, if available, can be found by visiting the relevant page in this repository from the list of modules.
- Structure and Interpretation of Computer Programs, by Harold Abelson, Gerald Jay Sussman and Julie Sussman (2nd edition) - "An excellent computer science text used in introductory courses at MIT. So called because of the wizard on the jacket. One of the bibles of the LISP/Scheme world. Also, less commonly, known as the Purple Book."
- Make It Stick: The Science of Successful Learning - "To most of us, learning something "the hard way" implies wasted time and effort. Good teaching, we believe, should be creatively tailored to the different learning styles of students and should use strategies that make learning easier. Make It Stick turns fashionable ideas like these on their head. Drawing on recent discoveries in cognitive psychology and other disciplines, the authors offer concrete techniques for becoming more productive learners."
- Mathematics for Machine Learning - "We wrote a book on Mathematics for Machine Learning that motivates people to learn mathematical concepts. The book is not intended to cover advanced machine learning techniques because there are already plenty of books doing this. Instead, we aim to provide the necessary mathematical skills to read those other books."
- Nix The Tricks, by Tina Cardone and the online math community known as the MTBoS - "This book is filled with alternatives to the shortcuts so prevalent in mathematics education and explains exactly why the tricks are so bad for understanding math."
- Calculus Made Easy, by Silvanus Thompson - "Being a very-simplest introduction to those beautiful methods which are generally called by the terrifying names of the Differentia."
- How to Solve It - A New Aspect of Mathematical Method, by G. Polya (PDF file)
- Linear Algebra Done Right, by Sheldon Axler - "The text focuses on the central goal of linear algebra: understanding the structure of linear operators on finite-dimensional vector spaces."
- A Computational Introduction to Number Theory and Algebra, by Victor Shoup - " My goal in writing this bookwas to provide an introduction to number theory and algebra, with an emphasis on algorithms and applications, that would be accessible to a broad audience. In particular, I wanted to write a book that would be appropriate for typical students in computer science or mathematics who have some amount of general mathematical experience, but without presuming too much specific mathematical knowledge."
- Assembly Language for x86 Processors, Global Edition - "Assembly Language for x86 Processors, 7e is suitable for undergraduate courses in assembly language programming and introductory courses in computer systems and computer architecture. Proficiency in one other programming language, preferably Java, C, or C++, is recommended."
- Game Engine Black Books - "It is a very deep insight on how id software developed the game engine that run Wolfenstein 3D and it is complete with code fragments with very detailed descriptions, down to the VGA programming and the assembly code that draws the screen during the game. Mindblowing!" (from David Della Rossa, student in this degree)
- Awesome Programming Books - "A curated list of awesome programming books."
- Actionable Gamification - "Gamification Pioneer Yu-kai Chou takes readers on a journey to learn his sixteen years of obsessive research in creating the Octalysis Framework, and how to apply the framework to create engaging and successful experiences in their product, workplace, marketing, and personal lives." (from Amazon)