Beyond Scratch : Coding for kids

Scratch is the quintessential platform for teaching kids about coding. This is what they use in Code Clubs across the land and it’s used widely in schools as well. The drag and drop approach used by block programming languages is great for teaching coding concepts and computation thinking but at a certain point, some kids are going to be interested in learning more or creating different kinds of things with their code.

A few people have asked me recently what I suggest for those who are ready to move on from Scratch. There are lots of different tools out there that can help young people who are interesting in developing their coding skills further but all of the different options can be a bit overwhelming (and some are better for learning than others).

An oft-repeated truth about programming languages it that once you’ve learnt one, picking up additional languages becomes easier. The concepts are a significant part of the required learning, the rest is noise syntax.

So rather than focus on which language to learn, it’s important to choose something that builds on their interests, something that has an active community that encourages sharing and collaboration. Remixing is a great incentiviser as well as an important learning tool.

And a fast pay off makes a big difference too. You want something that learners can see results from quickly. It’s no fun to work at something for hours without seeing any sort of outcome.

In fact, if we put together a quick checklist, it would be

  • active community
  • easily accessible
  • the right tool for the job
  • fast payoff

There are lots of different coding tools and resources aimed at children of different ages. Here we’ve focused on the ones that are aimed at the same sort of age group as Scratch. They’re also online or downloadable tools, so no offline learning resources such as Robot Turtles, Hello Ruby and Ozobot. We also prioritised free and/or open resources where possible.

Here are some different options to consider for creative coding with kids.

MIT App Inventor

MIT App Inventor is a tool to help you learn the basics of developing mobile apps. App Inventor 2 is the current version and is browser based so it can be used on any platform (Windows, Mac or Linux) in any browser aside from Internet Explorer.

[MIT AppMaker user interface editor

 

MIT AppMaker user interface editor

AppInventor was originally developed by Google’s Mark Friedman and MIT Professor Hal Abelson co-led the development on sabbatical at Google but the project is now run by MIT’s Center for Mobile Learning.

Like Scratch, App Inventor is a block programming environment and has a huge amount of community education resources available.

The interface is a bit more complex and because it’s aimed at mobile development specifically, it combines interface design and block programming. There are a few more concepts to grasp that make it a natural progression for Scratch users.

You can even do live testing on a connected android device while you build apps via the MIT AI2 Companion app – it enables real-time debugging which is great for learning. If you don’t have an Android device, you can use the Android emulator for testing and development.

Sonic Pi

With Sonic Pi, you can learn to code creatively by composing or performing music.

Sonic Pi is a coding environment originally developed by Sam Aaron for Raspberry Pi but now available for any platform (Windows, Mac, Linux). The great thing about Sonic Pi is that it’s easy to get started and it’s a ‘Live Coding Music Synth’ so you can learn to code while creating music using samples, different instruments, beats and loops. Super cool.

There’s even an in-built tutorial to help you on your way to coding your own music.

GameMaker Studio

The way Scratch uses sprites and backdrops is a good introduction to game creation that can be useful when shifting to more advanced game creation software such as Yoyo Games’ Game Maker. There’s a free version of GameMaker Studio available though it’s only compatible with Windows computers.

Within the programme there are a range of Demo or Tutorials.available for different categories of games.There are also some introductory videos available to help get started with GameMaker and a whole range of community resources available on YouTube.

You can create games either through using the drag and drop interface or code games using the GML (GameMake Language) so it’s good for all levels of experience.

While GameMaker studio is great for teens, there are other options out there for younger kids interested in creating games.

LearntoMod

Minecraft fans might be interested in LearntoMod, which teaches coding via Minecraft modding. The software is available either at $US 29.99/year or for free via some educational organisations. It’s designed for all users, including beginners and uses both a block programming language similar to Scratch as well as Javascript for more advanced users.

Thimble

Thimble is part of the Mozilla Webmaker suite of resources that are aimed at those wanting to teach or learn website creation. It’s a web editor that supports HTML, CSS and Javascript and you can also discover and remix existing projects as well as sharing your own

There are loads of learning resources in the WebMaker community too.

Check out the Remixable projects like the Keep Calm Poster or the Current Events Comic.

Honourable mentions …

These resources are also worth checking out.

Hackety Hack is a downloadable program to teach kids the ruby programming language.

Codemonster is a nice, though short, introduction to javascript that is useful for one-off lessons or demos

Minecraft Pi is another good option for Minecraft fans if you’ve got access to Raspberry Pis. Minecraft Pi was developed as an educational tool and you can make modifications using the Python interface.

But what about the Micro:bit

Hmm… I’m still on the fence about the Microbit, produced by the BBC (with about a gazillion partner organisations), as an effective learning resource but I’ve only been playing with it for a week or two.

It comes with the choice of 4 programming environments, none of which really complete with the above options – though it falls more on the physical computing side of things and so is a decent alternative to the PicoBoard (which works with Scratch). It’s still in beta so one to watch as it develops.