Yesterday, I spent a couple of hours looking into what freebies the internets have for kids wanting to learn how to program. Thankfully, there are options a-plenty for this sort of stuff, but it does take a little Googling to undercover them all, so let me save you the trouble.
There are quite a few broad categories of these tools: lets look at each in turn, roughly in order of age/experience appropriateness. I’ll start with the tools best suited for the younger developers with little experience with coding and move up to the platforms that really require a solid programming background to appreciate. The level of software-based hand holding will decrease through each of categories, as will the reliance on primary colour palettes and kid-friendly animal avatars.
Logo-rithms
Don’t tell them they’re coding
Since the dawn of the time, the programming language most closely associated with learning has been Logo. Not surprisingly, there are a number of online tools that use variations of the Logo metaphor of controlling a moveable instrument (originally a turtle holding a pen, but now apparently any animal will suffice).
The Code Monkey environment: Logo for Simians
- Code Monkey: Here we’re controlling a monkey. Slightly clunky with directions popping up all the time. Signup encouraged via nagging messages, but not required.
- Logo Interpreter: Gives user option of text entry or mouse to create commands. Limited functionality without signup
- Turtle Academy: Seems like a more “grown up” Logo environment. Documentation suggests entire Berkeley Logo instruction set is available.
- Light Bot: No typing involved here, all instructions are created by drag-and-drop. Objective is to have a robot activate a light. Also available for iOS and Android via respective marketplaces.
- Move the Turtle: Is a paid Logo development app for iOS.
- Cargo-Bot: Solely for iPad, Cargo-Bot gives players a limited set of commands to instruct a robot.
- Bugzy Code: For Android devices only.
Guided Tutorials
We tell -> you type -> repeat
The options in this category are based around industry languages (e.g., Javascript, Ruby, etc) and feature embedded browser-based developer sandboxes where participants can have their code evaluated/executed in response to specific tasks.
Hackety Hack using Ruby to do Turtle graphics
These tools would suit older kids as they don’t attempt to hide the raw code behind any other metaphors. Examples in this category include:
- Code Academy: covers Javascript, Python, PHP, Ruby and website technologies (JQuery, HTML, CSS). Signup required.
- Code Monster: covers Javascript
- Code Pupil: covers HTML & CSS. Has some interesting browser restrictions (e.g., doesn’t run on Firefox on OSX)
- Hackety-Hack: A downloadable Ruby-based development tutorial.
- Kids Ruby: Similar to Hackety Hack, but aimed at a younger audience.
Unguided Tutorials
Time to take off the training wheels
This category is for sites that provide a more unstructured development environment. Whilst the environment has the ability to execute code within the browser, it will not provide the step-by-step instructions to help people incrementally build up their solutions. Generally this category is for people with a better holistic knowledge of development and have more confidence in building larger solutions with little assistance.
Code challenged for the Javascript course at Code School.
- Happy Fun Coding: Provides a number of video tutorials, but these are not integrated with the development environment. No free text editing of code, rather uses custom editing controls to adjust specific CSS elements (e.g., color picker for background-color attribute).
- Khan Academy: Not surprisingly, Khan Academy has lots of content around coding in Javascript delivered in it’s typically informal style.
- Code School: Technically, this is offered as a freemium model as only a couple of the courses are free with the rest (e.g., Javascript, HTML/CSS, iOS) requiring payment. Most of the courses are delivered via a combination of video and coding challenges.
Jigsaw Languages
Visual Programming
Jigsaw Languages are so-named (by me) because they all use a similar visual programming metaphor that allows you to slot appropriate pieces of templated code snippets together in logical ways. The respective shapes are a strong visual cue to the developer to what “piece” should fit here. As usual, a picture tells a thousand words…
The Scratch environment showing how expressions are composed.
Here we have a screenshot from the Scratch development environment with an “If” block placed on the Scripts area. There is no condition in the block at the moment (i.e., the hexagonal shape after the “if” is empty), but the shape that fits the condition helps developers work out which element from the left hand set of green shapes could fit here and which ones will not.
- Scratch: From MIT and the best known of this category
- Blockly: A visual code editor component similar to Scratch – see an in-depth comparison here. Blockly is also used as part of the programming interface to the coding game on KickStarter called CodeSpells.
- Hopscotch: Scratch for the iPad is the best way to describe it.
- Turtle!: A Windows phone app combining Logo-styled language within the visual programming style popularised by Scratch. Added: Sep 17, 2014.
Game/World Builders
The Sky is the limit
There’s some fine lines in this category as there are many game building platforms that wont really expose any of the technical specifics needed to help generate interest and understanding in coding. I’ve tried to include some of the ones that do.
- Alice: Uses a similar visual metaphors to Scratch and Logo-based tools, but it’s ability to model 3D objects and worlds takes it beyond many of the Jigsaw Languages category. Needs download to run.
- Greenfoot: An IDE (Integrated Development Environment) for the Java language, built with younger developers in mind. Provides the ability to use a combination of visual programming (a la Scratch) and direct source editing (a la Hackety Hack). Added: Sep 17, 2014.
- BlueJ: (Full disclosure: I contributed some code to BlueJ many, many years ago). Another Java IDE like Greenfoot, but for a slightly more mature audience. Added: Sep 17, 2014.
- Honourable mentions to Beta The Game, Codea, Agentsheets and Agentcubes which which look mighty interesting but are not free 😦
- Update Sep 17, 2014: There is a free online version of AgentCubes here.
Conclusion
If you’ve stumbled across this blog looking for something for yourself or your kids to use to get into coding, I hope I’ve left you with lots of links to click on as there are certainly lots of cool tools to consider. I haven’t used many of these in earnest, so I’ve shied away from trying to compare one against the other.
And if there are notable choices, I’ve not included here, please let me know and I’ll update this list.