Scratch - a graphical programming tool

http://scratch.mit.edu/

Scratch is a programming language that makes it easy to create your own interactive stories, animations, games, music, and art -- and share your creations on the web.

As young people create and share Scratch projects, they learn important mathematical and computational ideas, while also learning to think creatively, reason systematically, and work collaboratively.

Find out more about Scratch here, http://scratch.mit.edu/  

To download direct, click here, http://scratch.mit.edu/download

Screenshots

There is a version of Scratch called BYOB (short for Build Your Own Blocks) which lets you add defintions of new blocks, i.e., draggable, programmed components implementing functions, and procedures. It can be used for those students who want to go beyond the basics with Scratch.

It's downloadable, still free, still open source I think, from http://www.chirp.scratchr.org/blog/?p=19

John Stout