List of resources to teach your (or someone else's) kids programming, covers ages 3-9 for now.
Because coding, logic and math are intertwined for a good reason, lists for those are coming soon.
Feel free to contribute by putting up a PR with more/better resources! I don't know everything.
With my own kids, I found the iPad to be the ideal platform for beginning programmers for the following reasons:
- often used by parents as an infanticide prevention device
- decent apps exist that are fun, educational, and need minimal parental involvement
- touchscreen drag-and-drop is much easier for little hands than mouse/keyboard controls
- visual instruction primitives (e.g. arrows) in the apps make this an option for pre-readers.
These apps are good for ages 3-9, arranged in the order of progression. With older children I'd try "real" programming environments but we are not there yet, so cannot comment first-hand. Most of the listed apps are free, or have a decent number of free levels.
Help an adorable fuzzball roll through a maze by writing a program with arrows. Kodable includes many levels, the first 30 are free, for later ones buy the full app, it's worth it. The levels are all structured the same way, and there are no ads, in-app purchases, or any other junk. Kodable website has curriculum materials if you want to be organized about instruction and not just hand your kid the iPad (that approach totally works too). There is also a school version that lets the teacher track class progress, and a similar parent version.
(Note: Kodable keeps playing with the app format and pricing, so the specifics are probably out of date when you read this.)
The simple sequence level worked for my then-3-year-old. I've taught this to kindergarteners, who are all able to master sequences, conditionals and loops; some can do functions. The visual-arrow-programming holds interest of up to 7-8 years old (if your child is new to coding). The new Kodable extensions take this to middle school levels with Javascript - haven't tried that yet.
A neat thing about Kodable is that it introduces debugging very early on, in the initial levels. Given a full program (set of arrows) with a bug in it (some arrows are wrong or missing), your task is to find and fix the bug, at which point the fuzz will roll through the maze and squash an actual insect bug.
In other positives, there is no time limit, and the game doesn't penalize getting it wrong the first time, or the Nth time. Encourage your child to "test" the program before it's fully written: put one arrow in place, run the program, see if it's going the right way, then add more arrows. This approach can help overcome hesitation in children who are worried about doing the wrong thing and "breaking the computer".
Gender neutral.
The free version has about 40 puzzle levels where you write a program with arrows to get the Foo character to a donut, etc. Compared to Kodable, the game is more "zany" and would appeal to somewhat older kids, age 6-10 (not advised for 3-4yo). There are also free-play areas where you build a game level and then play it, great fun, but not very coding oriented; monitor your child's usage so they don't get stuck playing Mario-like levels for hours :-)
Programming concepts covered: sequences, loops, conditionals. There is some extended for-pay version that we have not tried.
Gender neutral.
This is one of free "Hour of Code" apps out there, and a good one; with about 20 levels, it will probably take longer than 1 hour. It's still visual programming with arrows, but the puzzle presentation is 3D which makes it harder for most kids. Also, some levels require tricky logical thinking to solve the puzzle before you can code up the solution.
Good for K-2nd grade, younger children will be prone to tantrums when they can't figure out the solution. Adults may need to help with "design" and leave "implementation" to the child.
Gender neutral, unless you count laser beams as "boy toys".
Another free "Hour of Code" app with visual arrows, also with 3D presentation like Box Island, but trickier due to the need to figure out degrees of a left/right turn. An expanded version is available for pay.
Suitable for K-3rd grade but will have a higher attrition rate due to those darn turns (try it yourself first). Not recommended as a starter, use other apps (above) before moving on to this one.
Gender neutral but feels very "spare" in the way Unix prompt does.
Junior version of the popular Scratch programming environment aimed at ages 5-7, we haven't tried it yet, will post a review in a bit.
So this is a fun one. It's still visual programming with arrows; you get to pick up, move and release crates. The goal is to arrange them in a given order. The presentation is entirely suitable to a child even as young as 4yo. However, if you don't get recursion, this game will make you cry, where "you" is the grownup professional coder. I highly recommend trying it with children, just let them quit if it's too hard, because it will get too hard quickly. Unless your little genius understands recursion, which is entirely possible - might be one of those things that's easy if you start early, like, I dunno, Russian.
Programming concepts: functions, loops, recursion. This is in fact the only game I came across that covers recursion. Man, does it cover it. (Can you tell I'm scarred?)
Suitable for ages 5-105.
Exciting that Hopscotch has become available as an iPad app (previously only a browser version existed). It's drag and drop programming, but the building blocks are word-based instructions such as "Change color" so the child needs to be a competent reader.
Suitable for 2nd-4th grade, ages 7+, won't be boring for a 12yo either.
Hopscotch is an open programming environment where you can build whatever you want, which in practice means games. This will take a lot more adult supervision at first because when you can do anything, you don't know what to do - expect to help your kid with the idea and initial game design.
There are lots of resources around Hopscotch, possibly too many, this curriculum looked good for beginners.
This is NOT an iPad app, Scratch works in the browser (on an iPad or, more likely, an actual laptop/PC because it would help to have a mouse or trackpad). I'm including it here because this is likely to be the environment kids will graduate to after using up the earlier resources.
Scratch is a visual programming language, you start with making a cute cat move around, and then proceed to code up games. There is a big community around this, and school tutorials are available from their ScratchEd website, but it's all a bit disorganized so I don't know yet which are good... here is one tutorial.
This is probably for 4th grade and up, and needs an instructor who is very comfortable with Scratch. I'm not there yet so cannot comment more specifically, try me in a year.