Online courses
Introductory
David J. Malan:
CS50
Beyond introductory
Andrew Ng:
Machine Learning
Tim Roughgarden:
Algorithms
Simon Schocken:
nand2tetris