One of my most-read posts is Computer languages for kids, because people are desperately looking for ways to teach computer programming to their kids (something the schools are not doing hardly at all, even at the high-school level: see Shoehorning computer science into K–12).
So far my best advice has been to start kids with Scratch, the free drag-and-drop programming language from MIT, somewhere around 4th grade. Some people have used Scratch with younger kids, but the fit is not always good, as Scratch assumes that kids can read fairly fluently and already have a good notion of sequence. (I’ve been told, though, that even college students taking a first programming class sometimes have what I would think of as a pre-kindergarten grasp of sequence, so maybe Scratch is making too strong an assumption even for the targeted age group.)
I’ve not been able to make recommendations for younger kids, as I’ve not seen anything suitable.
A recent post on the Mindshift website (apparently the transcript for an NPR programs), Introducing Programming to Preschoolers, describes a new tool supposedly coming out this summer: Scratch Jr. The new language builds on experience with Scratch and with cherp, a Lego robotics language for preschoolers. Unfortunately, details about Scratch Jr. do not seem to be available, so we’ll have to wait until this summer when they release it to see what it offers. Some of the mentioned changes (like replacing the overly subtle color distinctions of Scratch blocks by bigger color contrasts of more saturated colors) seem to be small, but important tweaks. Bigger changes will be needed to handle pre-literate children, and I’m curious to see how much power they can leave in the language while lowering the entry barrier.
- Scratch Jr: Introducing Programming to Preschoolers (computinged.wordpress.com)
- Is Learning Computing Like Eating Vegetables? (computinged.wordpress.com)
- How Young Is Too Young to Learn to Code? (smashcs.wordpress.com)