How to Design Programs - Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, and Shriram Krishnamurthi
The Little Schemer - Daniel P. Friedman, Matthias Felleisen
Programming for the Puzzled - Srini Devadas
How Computers Work – Ron White
Code: The Hidden Language of Computer Hardware and Software – Charles Petzold
Computer Organization and Design – David A. Patterson, John L. Hennessy
Once Upon an Algorithm - Martin Erwig
Algorithms Unlocked – Thomas H. Cormen
Operating Systems: Three Easy Pieces – Andrea C. Arpaci-Dusseau, Remzi H. Arpaci-Dusseau
Computer Networking: A Top-Down Approach – Jim Kurose
A Framework for Web Science – Tim Berners-Lee
Designing an Internet – David D. Clark
Readings in Database Systems – Peter Bailis, Joseph M. Hellerstein, Michael Stonebraker
Architecture of a Database System – James Hamilton, Joseph M. Hellerstein, Michael Stonebraker
Distributed Systems – Maarten van Steen, Andrew S. Tanenbaum
CS50 Lectures 2007, 2017, Understanding Technology, CS for Business Professionals – Harvard, prof. David J. Malan
6.042J / 18.062J Mathematics for Computer Science - MIT OpenCourseWare, prof. Albert R. Meyer
CS1 Compilers – Stanford Lagunita, prof. Alex Aiken
CS75 Building Dynamic Websites – Harvard Extension School, prof. David J. Malan
GSD-6338: Introduction to Computational Design - Harvard Graduate School of Design, prof. Jose Luis Garcia del Castillo