A few months back I read the article, "Why Johnny can't code" by David Brin. He talks about the trials he had teaching his son to BASIC. Just yesterday, I came across this article by Nat Torkington entitled, "Why Johnny Can't Program." This one talks about his adventures teaching programming to youngsters. He didn't use BASIC but rather Logo and Lego Mindstorms. The comments there are a good source for other suggestions. Some suggested languages aimed at kids like KPL or Squeak. Others suggested that Ruby or Python were the way to go. I think this latter group probably doesn't have young children.
My son is almost seven and insists that he's going to work at Microsoft when grows up. Makes a father proud. He enjoys math and for a while I've thought about how to introduce him to the concept of programming. I thought about Basic, but after reading Nat's article, I thought better of it. "Hello World" probably doesn't appeal to the average 7 year old. Something with visuals might be more interesting to start with. Many of the suggestions were too complex for a first language.
I decided to start small and settled on Logo as my introductory language of choice. Logo also happens to be the first language I used back in 4th grade. I recall finding it being taught without much context but I enjoyed it. I thought I'd give it a shot. After some looking around, I chose the free MSWLogo.
Tonight I introduced it to him. He picked it up quickly and really enjoys it so far. We'll see how long it holds his attention. I suspect we'll have to move on from Logo before too long. If things go well, I'll return to this topic in the future.
If you have suggestions on language or techniques that have worked for you, please send me mail or leave a comment.