Structure and interpretation of computer programs
Computer Systems: A Programmer's Perspective
Nand2Tetris
The Algorithm Design Manual
Single Variable Calculus MIT 18.01 (Prerequisite for Mathematics for Computer Science MIT 6.042J / 18.062J)
Discrete Mathematics. (L. Lovász and K. Vesztergombi)
Mathematics for Computer Science MIT 6.042J / 18.062J