- Storytelling Alice (Windows only, I'm Mac).
- Scratch, built on top of Squeak by folks at MIT (I'm currently leaning towards this).
- Squeak itself.
- Hackety Hack, for Ruby. (Currently Windows only, and apparently on hiatus. Looks really neat though).
Any other recommendations? Where's "A Young Lady's Illustrated Primer" when you need it?
This is great news. In his essays, pg has repeatedly expressed interest in the Y Combinator enabling younger people to start startups - why not 11 or 12 year olds? They can grow their service functionality and user base after school, present their software to investors on the weekends, pursue rounds of funding during school vacations, and either IPO or get acquired by the time they graduate high school. ;)
I jest, of course, but it's an interesting idea. Sort of a high-powered lemonade stand for entrepreneur youth. With respect to the real Y combinator, it may be a little challenging for those without a foothold in the field (such as children) because if you don't know what recursion is it can be hard to see what's so special about it.
Even now, when we have strict HTML and CSS2 and some decent browsers, I still get chills sometimes at how fugly this whole "web-development" is... These "technologies" weren't meant to be what we use them for.
Personally, I'm against insulting a child's intelligence with a toy meant to baby them. When I learned to program, I built practical things I could use. When I hit toy languages, I got very frustrated by their limitedness.
I think the kids must have genuine interest of computers in order to learn programming, or you have to somehow generate that interest. I picked up programming in high school, and I thought it was fascinating because I was already very familiar with computers. However, if I were to learn programming in 6th grade when I know nothing about it... I think I would be both confused and bored.
It may be a challenge for you if the kids aren't too familiar with computers (I guess it's doubtful in this age...)
But, no, a look at http://hackety.org/ suggests that _Why is just on one of those epic hacker side-tracks, like Knuth went on when he took a decade-long break to invent TeX. To make Hackety Hack work well cross-platform, _Why had to invent a cross-platform Ruby-based toolkit for web-like apps (Shoes) and he's still kind of polishing that. So I don't think Hackety Hack is dead, yet. It may merely be cocooned, preparing to burst forth like Mothra and blow us all away with hurricane force.
from http://code.whytheluckystiff.net/hacketyhack/
Given the amount of work he's put into shoes, I think he will easily be able to make this date.
Here's one that might be worth considering. Kids like to draw. So get them to draw something on either paper then scan it or on the screen with a paint program. Save the image(s) to either a .png or .jpg format.
hand drawn images + browser + Processing.js
Then head over to http://ejohn.org/blog/processingjs/ then check out the sprite example ~ http://ejohn.org/apps/processing.js/examples/basic/sprite.ht...Forget python, squeak, ruby. Arc and lisp can wait. Think browser as your OS and Processing as your language. The bonus of creating their own images then given some bits of code to change the numbers. Let them fail a few times. Most important is getting an immediate result.
This is probably the simplest environment that most kids are familiar with, a browser. So use it. There are plenty of examples ~ http://processing.org/learning/basics/ the system is FOSS and x-platform. The example also allows them to create their own "Illustrated Primer" with powerful tools yet still simple to use.
.. I hope you're not being serious.
http://www.jacksonfish.com/blog/2007/08/28/programming-for-k...
Earn a bankroll of neopoints at neopets.com, and give them out as payment for programming exercises completed. My daughter (nine) just earned 30,000 neopoints from me yesterday for doing three easy Python programming exercises (where easy, starting out, means something like "cut and paste this and get it to run, with help from Dad allowed" and then goes from there). How to earn lots of neopoints? Neopian stocks, mostly.
Scratch is so good you can even use Scratch time as a reward, if you're mean enough to do that.
For editing of Python, we're trying out Pico, which is like an Emacs lite, with the main useful commands clearly shown at the bottom of the screen.
I'd go with something that has a large quality graphics/model library. Its good learning how to code, but its even better to feel proud of what you've created, and having an application, movie, or game that looks nice and polished is crucial for that feeling of accomplishment.
Seems like the biggest hurdle will be getting them interested and thinking for themselves (for example, if you ask them to write whatever kind of program they want, how the heck are they going to know what's possible?)
Once you can use python, jumping to C++, C# or Java is not that hard.
If you want to make them really uber: From Nand to Tetris in 12 Steps!
http://www.youtube.com/watch?v=JtXvUoPx4Qs
All the courseware is open source.
“My 6 year old son is learning computer programming by first understanding the mathematical foundations, then applying what he has learned using Haskell, because it is short and natural (he doesn’t even know what Haskell is)” http://blog.tmorris.net/does-java-cause-self-delusion/
I have had students as young as 10 make it through the programming newbies series of books on this site with a little help.