If you have been on the internet lately, you may not have been able to avoid the clamour: “Teach kids to code”, “geographers should learn to code”, “everyone should learn to code”.
Muted since the 80s, computer programming is back on the English schools curriculum agenda, pushed by those concerned at the UK’s widening science skills gap. The latest undertaking is Hour Of Code, an initiative to expose schoolchildren to coding in one hour.
All of these programmes are well-meaning. Growing the UK’s developer base could move it ahead in the technology economy. But much of the “learn to code” movement is pitched way ahead of where it needs to be to meet that goal.
One step at a time
The problem is, to be blunt, its bluntness. Whether they be policymakers or programmers, adults, when they imagine “coding”, envisage folk building websites using Javascript at a trendy Silicon Roundabout loft, or profiting from mobile apps made using Objective-C.
We need to walk before we can run. These are abstract concepts, far in advance of what can be conceived by the children we hope may one day be developers.
To turn kids on to developing, you have to reach them young and be radically more simple. To stand the best chance of producing some highly-skilled young programmers, we must first ensure everyone develops, as a platform, a basic understanding of logical cause and effect.
Algorithms make up the underpinning of logic. But kids don’t need to touch a digital device to learn algorithmic construction. In fact, if you are sitting your three-year-old down in front of such an interface, you may be hampering, not helping, their path to programming.
Wooden toys
Children learn through tactility, as anyone who played with coloured wooden blocks will attest. And that learning is solidified when their efforts are rewarded. This is why we created Primo, a simple game that rewards young children for inserting wooden blocks in the correct sequence, by moving a small wooden character along the floor to his destination.
Sure, under the hood Primo is powered by an Arduino microcontroller that relays logic signals to the robot using advanced wireless protocols. But our users, young children, don’t need to know that – this is a fun learning game, not BSc (Hons) Computer Science.
Most “learn to code” energy is spent reaching elder children of secondary school age. But you can’t put a 12-year-old in front of a command line prompt if they don’t understand what programming really is at the most basic level.
Those who want to create the next generation of programming genius must first create solid foundations. And that should start with mystifying the world a little so that kids can discover its inner magic.
Which programming lesson is more likely to become embedded with children – the one where moving objects on a screen moves another object on a screen, or the one where touching and placing real items makes something magical and tangible happen on their living room floor?