Snap!

Snap! (formerly BYOB) is a visual, drag-and-drop programming language. It is an extended re-implementation of Scratch (a project of the Lifelong Kindergarten Group at the MIT Media Lab) that allows you to Build Your Own Blocks. It also features first class lists, first class procedures, first class sprites with inheritance, and first class continuations. These added capabilities make it suitable for a serious introduction to computer science for high school or college students.