CS 61A: The Structure and Interpetation of Computer Programs

Introduction to Python
Understanding Return Values
Environment Diagrams
Understanding Recursion
Mutability and Immutability
Object Oriented Programming
Tree Recursion
Understanding Higher Order Functions
Understanding Lambdas
Understanding Decorators
Declarative Programming
Scheme
Understanding Lambdas
Understanding Iterators
Understanding List Comprehension
Interpreters and Language Processing
Sequences
Data Structures Reference
Understanding Data Abstraction
String Hacks and other Useful Tricks
Here's a great bit of motivation for new programmers
** The notes are still being written and uploaded.
They will be up before the end of the spring semester.