* Foundations of Computer Science - http://infolab.stanford.edu/~ullman/focs.html
* Specifying Software: A Hands-On Introduction - https://www.amazon.com/Specifying-Software-Hands-Introductio... The name is a misnomer. See the ToC. This is actually a practical introduction to CS theory.
https://runestone.academy/runestone/books/published/pythonds...
Grokking Algorithms
Classic Computer Science Problems in Python
https://www.edx.org/course/introduction-to-computer-science-...
You can do it for free (or pay to get academic credit). I haven't yet managed to start the course.
- Linear algebra (fischer's book)
- analysis (koenigsberger's book)
- discrete maths (zorich's books)
- probability theory (all of stats - wassermann)
foundations:
- parallel programming (A minicourse on multithreaded programming Charles E. Leiserson, Harald Prokop.)
- algorithms and datastructures (Widmayer's book)
core:
- systems (Computer Systems: A Programmer's Perspective" (3rd Edition) by R. Bryant and D. O'Hallaro)
- network (Computer Networking: A Top-Down Approach, James F. Kurose and Keith W. Ross)
- numerical methods
- data modeling and dbs
- formal methods and functional programming (Miran Lipovača. Learn you a Haskell for great good!)
(eth zurich's bachelors)
All the books are one google search away.