My life as a tech teacher, part 9: Planning for phase 2

A journalist attempts to teach programming to primary school children in rural New Zealand

It's the Easter school break, but there's no rest for the wicked. I've been thinking what to teach the children next term.

It's not that we're reaching the limits of Scratch. Far from it. It's quite possible to create complex computer games using Scratch, with multiple levels of interaction and various sprites, backgrounds, sounds and visual effects. It's not actually coding, though. Not really.

Scratch is great for building logical thought processes and for mental 'chunking' - breaking down larger goals into smaller steps. For that reason alone I'm reluctant to leave it behind. But coding to me – and to pretty much every programmer around the world – means typing in code. It means writing programmatic structures, defining and calling subroutines, testing, refining, fixing and testing again. It's about words.

I'm a reasonably good programmer, but not in modern programming languages. If I were to write my programming CV it would include references to building a powerful multi-user content management system in Perl in the early 2000s, to modifying and compiling Linux kernel modules and programs in C, loads of HTML/CSS/JS and... some BASIC. These days I mostly dabble in *nix shell scripts, though they can reach a few thousand lines and are riddled with reg-exps. A useful skill set for me, probably less so for the children I'm teaching.

I don't know much about Java, Ruby, Python, C++, etc. Which is a shame, as they're all popular languages. I won't let my ignorance prevent me teaching them at a later date. I've no qualms about learning alongside the children I'm teaching. In some respects that might even be a better way to teach, since I'll understand their sticking points and be able to work around them.

But for now I'm looking for a programming language that will involve actual writing, be instantly gratifying in terms of visual results, and not be too complicated.

A glance at CoderDojo (which is a disappointingly badly designed website for such a great project) told me this: "commonly Dojos cover Scratch, an introduction to programming for young people and website development using HTML, CSS and PHP. Dojos also work with JavaScript, Python, Ruby and Node.js, work on game development, Minecraft mods and experiment with hardware and robotics such as Raspberry Pis, Arduino boards and Intel Galileos."

Interesting. A little more digging around in my memory led me to Codecademy and in particular this page.

That will do nicely. Just like Scratch, there's nothing to download and install. It runs in the browser, presumably as a JavaScript app, and having done the first few lessons myself I was pleased to discover that although it dumbs down HTML coding, it does so in a sensible, logical way that's exactly the way I'd have chosen to do it myself. The later lessons may or may not be too complex for the 8-10-year-old children I'm teaching, but we'll cross that bridge when we come to it.

Technically it's still not programming, I know. It's mark-up and scripting. But it will provide some useful skills, such as syntax checking, structural planning and user interaction. It'll also provide a platform for JavaScript and PHP if we go down that route later.

So, job done. We'll still do Scratch, but we'll do it alongside HTML and CSS development. Then the children will not only be able to write games, they'll be able to create their own websites to host them too.