undergraduate
Structure and Interpretation of Computer Programs (SICP)
Hal Abelson and Gerald Jay Sussman's landmark MIT 6.001 lectures introducing computational thinking, Lisp, procedural abstraction, linear recursion versus iteration, and the substitution model of evaluation.

