Some crazy guys over at Microsoft came up with some interpreted programming language built on top of the C# interpreter. Seems like it could be really fun to play with and an excellent teaching tool. Check it out at http://www.kidsprogramminglanguage.com/.
That sounds like a good way to do some programming in the classroom, but I doubt a whole lot of kids would just pick it up on their own. I can think of a completely different way to expose youngin’s to programming in a way that requires far less outside encouragement. That way is World of Warcraft macros and UI scripting.
My little brother and all his buddies are fluent. From what I’ve seen, its basically javascript with a different set of objects. I think the best way to teach someone anything is to fool them into learning it.