The World is Made of Algorithms.
Updated: Aug 9, 2019
Teaching children to code is like making them eat carrots - there seems to be general agreement that we should do it, but not a lot of consensus around the reasons why.
If you're reading this right now you're using hundreds of digital algorithms - instructions someone wrote to operate within a digital system. Algorithms are controlling the text size and layout, determining the screen brightness, optimising your battery life, managing your data connection, and so on.
Coding (the process of creating digital algorithms) is a buzzword in education at the moment. A problem that is not often addressed directly, though, is that teaching children to code is like making them eat carrots - there seems to be general agreement that kids should do it, but not a lot of consensus around the reasons why.
This lack of clarity doesn't support adoption. The curriculum plate is already full, so some of us will be inclined to leave the "carrots" off the menu. We may teach coding with a lack of conviction or vision, simply because the syllabus dictates it. Or we may go to the other extreme, wasting time and money chasing every new initiative that promises to make our students future fit. But what are we trying to achieve? Are we trying to produce an army of software engineers to be deployed to meet the predicted shortage in the future workplace?
There are already engines like Unity and Unreal that enable you to produce commercial quality software without needing to write any code. Also, AI systems will become increasingly adept at constructing algorithms. Even if our students, at some point in their future careers, find that they need to write custom code, someone on Upwork will be more than happy to bash it up for $15 an hour.
So why teach a skill that the vast majority of our students will probably never need to use?
Here are two compelling reasons for teaching coding. Firstly, power is rapidly transferring towards the digitally literate. Big players like Tencent, Facebook and Google have used digital skills to empower themselves and exert influence at a global level. It's probably too late in the game to win back any chips from these whales but if our students understand how digital systems work there's a greater chance they can improve outcomes, at least for themselves. We're all either slaves or masters of digital technologies. Digitally empowered people will be in a better position to attain a greater level of freedom.
Another reason to teach coding is that digital algorithms are modeled on systems in the natural world - you can read all about that here. Natural systems are built on conditional (if, then) statements. For instance, if the temperature reaches between 7 and 30 degrees celsius, then a carrot seed will germinate (provided a bunch of other conditional statements are true, e.g. correct pH level, depth in soil, moisture content, etc). So learning coding helps children understand how the world actually works.
Carrots can improve your eyesight but eating too many can make your skin turn orange so go easy. Similarly, teaching coding is about balance. Fortunately, most kids are probably more enthusiastic about learning coding than they are about eating carrots. Hopefully we can keep them engaged long enough to get excited about the options an understanding of algorithms will open up for them.