CS61A
Taught using Scheme: a lexically-scoped, procedural programming language
Core Concepts
- Recursion
- Abstraction
- First-class procedures
- Models of programming
Also used as introduction to core CS disciplines
MIT version attempts to teach Zen of programming via problem sets.
- The Little Schemer and The Seasoned Schemer (by Felleisen and Friedman)