Scratch is a graphical programming environment specifically designed for children. It comes from MIT and is free to use.
My older son is now 6.5 and ready to learn programming. I had a look into various options and decided on Scratch for getting started. That doesn't mean won't be getting him to try other tools too, I certainly will, but Scratch is a very good fit for him to use at home. My younger son is nearly 5 and already showing an interest. He's very good at controlling a mouse which is one of the key skills needed. And he doesn't like to miss out on anything his big brother is doing so I don't think it will be long until he starts coding too.
Here are the main reasons why I chose Scratch as an introduction to programming for my kids:
|Make the Beetle Wiggle|
- Scratch is now well established and there are some excellent resources for learning to program with it. We are loving Super Scratch Adventure.
- Scratch is very self-contained and easy to get started with. It's full of useful capabilities that mean kids are able to create programs that work straight away. There's no boring setup or tedious scaffolding work to do before you get to the fun stuff.
- Scratch uses graphical programming with blocks that kids drag and configure to make programs. The blocks have text on them. This is a really good balance between getting used to a program as a series of textual commands and not having to type too much or remember syntax.
- Scratch is available for Windows, Linux, Mac and Raspberry Pi.
Excellent. The kids have access to a Windows machine, I run Linux and we
a Raspberry Pi. This makes it easy to work on whatever machine is available. Scratch is also available online.
"You can get your own animal and call it your own thing"
- Scratch encourages creativity and multimedia projects. Scratch comes
with lots of fun characters (sprites) and stages (backgrounds) that
kids can use to really customize their creations and it has a simple
drawing editor built in for their own creations. My older son is very
specific in his interests and loves that he can program using stuff that
he likes. My four year old directed the program pictured in this
article - choosing the background and colors and telling me what to make
the Beetle do.
- Scratch has lots of commands focused on movement and sensors which are just the sort of thing you need to control robots which is something my kids are already showing an interest in. Scratch will give them a headstart in working with those concepts.
- Building programs in Scratch is great for developing mathematical thinking because of the use of angles and coordinates.
- Scratch is popular enough that it gets extensions for popular technologies like the Raspberry Pi input / output pins and LEGO® Mindstorms. This means that the kids will be able to make robots and other interactive projects and control them from Scratch.
- Scratch has active website and online community. As my kids get older they are likely to want to interact with other kids online. The Scratch community is a good place to do this and learn to share and collaborate with others.
- Scratch is great fun and constructive. It doesn't feel like an educational activity though kids will learn loads while they are playing and creating. While I don't mind my kids watching (selected) YouTube videos and playing games, I'd rather some of their computer time is spent doing something constructive. Because Scratch is so enjoyable it's something they choose to do.
- Scratch is very much alive and being updated and improved. Scratch 2.0 goes live on May 9th 2013. (Beta available until May 5th.)
If your kids are a bit older that mine you might be concerned that Scratch isn't a 'real' programming language. Don't worry about this too much, programmers often have to switch languages and you can learn core concepts with any language and transfer the skills to others. And you can write some very sophisticated programs using Scratch.
Scratch is an excellent introduction to programming for kids. We'll be trying out other tools as well, but I can see use spending lots of time with Scratch.
Get Started: Scratch Website