A few weeks ago, William told me he wanted to make his own computer game. So I installed Scratch on his laptop and told him to see what he could do. It turns out he can do quite a lot.
Scratch is a visual programming language. While it has all the features you would expect, the programming itself is done by dragging and dropping blocks rather than typing text. This makes for a very intuitive interface which allows you to get up to speed very quickly. Well, William did.
After a couple of pointers from me about loops and variables, he was off and now has a working game in which teleporting monkey has to collect various objects.
He then discovered that there is an online editor and a collection of tutorials and, after two weeks, he’s probably a better Scratch programmer than I will ever be. If he carries on like this, it’s not going to be long before he has a better handle on event-driven programming than I do.
As someone who makes a living as a developer, I’m not sure whether I should be proud or embarrassed.
Either way, Scratch itself is proving a very effective way of enabling kids to not only build their own applications, but also understand the underlying principles. The visual interface allows them to focus on developing applications, rather than having to worry about syntax, and the development environment provides instant feedback which encourages them to try things out and see what happens.
I am very impressed.