From UC Berkeley:
Scratch (scratch.mit.edu) is a programming language for kids 8-14. BYOB extends Scratch to a full-power language for computer science students 14-20. Features include custom (build your own) blocks, first class procedures (lambda), first class lists (including lists of lists), and first class truly object oriented sprites with prototyping inheritance. The download includes source code and documentation; additional tutorials are available at bttp://byob.berkeley.edu.