Reaching into the jar of peanut butter, he scoops out a lump of light-brown mush with his fingers, then smears it onto two of the slices scattered about the work surface. Next he firmly claps the two pieces of bread together, but they fail to stick because the filling has ended up on the outside, most of it deposited on his palms in any case. As sandwiches go, it’s a gruesome prospect – more of a sandwhy.
No, this isn’t a five-year-old’s first attempt at self-catering. It’s actually a man in his twenties – a Harvard University student no less, who helps kids learn coding – and he’s on stage in a lecture theatre, following a set of sandwich-making instructions jotted down by a fellow student in the audience. The fact that he is failing so catastrophically is thanks to one crucial proviso given by the lecturer: ‘Interpret each step as a computer would’…
It’s an entertaining way to demonstrate how computational thinking usually doesn’t come into our more everyday habits of thought. It also highlights a couple of points that are perhaps not widely understood about algorithms – that is, the step-by-step sequences of simple operations that lie at the heart of computer programs. First, when approaching problems, computers don’t make assumptions like humans do; if you don’t equip your program with instructions that are precise and relevant to the task at hand, your algorithm might omit vital actions that we take for granted (for example, ‘Pick up knife,’ or ‘Only squidge together surfaces on which peanut butter has been applied’). Second, much like toddlers and preschoolers, computers take instructions very, very literally. In order to direct them to carry out even the simplest jobs you have to alter your outlook to grasp the world the way they do.
The clip above comes from the 2014 edition of Harvard’s renowned ‘CS50’ course, whose mission is to teach computer science to undergraduates from a non-technical or non-scientific background. Following its inception in 2007 it’s become the most popular course by far at Harvard, as well as at Yale since it expanded to the rival campus in 2015 (it’s also free to everyone with a browser as an amazing open resource – you’ll be creating your own Sudoku boards using programming language C within weeks!).
This kind of crossover success reflects not just a trend in American Ivy League universities but the increasing recognition that teaching children computer science is a core component of education at all levels, with as foundational a status as basic literacy and numeracy. In some countries – notably the UK, the USA and Finland – it’s now requisite for pupils as young as five. And within this trend, the branch of computer science known as computational thinking (CT) has come to the fore, as the essential gateway skill in teaching kids coding. In the decade or so since computational thinking was first formulated as a discipline in its own right by then Carnegie Mellon professor Jeannette Wing, it has forged a reputation as a powerful universal problem-solving technique: not just in prepping five-year-olds for coding class, but also in helping them navigate the world at large.
So what exactly is computational thinking?
‘A high-quality computing education equips pupils to use computational thinking and creativity to understand and change the world.’ So say the UK government’s National Curriculum guidelines on the new subject of ‘computing’, which in September 2014 was introduced to much excitement in classrooms nationwide from Key Stage 1 (ages five to six) onwards. But what’s the difference between computational thinking and coding? The first, and probably most important, is that you don’t need a computer in order to think like a computer scientist.
Stephen Wolfram, inventor of the plain-English-based Wolfram programming language and an advocate of early-years computer science, defines computational thinking as being ‘about formulating things with enough clarity, and in a systematic enough way, that one can tell a computer how to do them.’ In other words, once you have used CT to recast your problem in the right way, programming then becomes the next step: telling the computer what to do in order to solve it.
In the UK pupils are taught to use computational thinking to tackle problems by employing a set of general concepts that together add up to a comprehensively logical and analytical approach. These include breaking down complex problems into smaller, more manageable chunks; looking for patterns in the puzzles (have any of the issues we’ve encountered in the past had solutions that could apply here?); a process of abstraction – identifying those details that are relevant to solving the problem and ignoring the ones that aren’t, to make solutions as generalised as possible; and ultimately formulating algorithms: setting out the steps and rules any human or computer would have to follow in order to achieve the desired outcome every time.
In the UK computing curriculum, CT is taught with the explicit aim of getting kids coding sooner rather than later, and features in lessons alongside entry-level programming languages such as Scratch and Kodu. But in Finland, whose education system has long been seen as a model for other countries to follow, teachers are taking a more holistic approach: as of autumn 2016, computational thinking has been incorporated as a core element into all subjects – arts and humanities as well as sciences – from age seven onwards. In PE lessons, for example, children may be instructed to act out their own algorithms in a repeated series of dance steps, while in art class they may learn about the coding concept of a loop through knitting – a process in which long sequences repeat with slight variations according to an overall pattern (and, as helpful illustration, literally creating loops in the fabric as they go). Or in geography, they might use CT techniques to plot a path on a map – much like preschoolers programming a route for Cubetto’s journey across the playroom floor.
For Finnish children’s author and programmer Linda Liukas, this cross-sectional approach for CT is an ambitious and exciting step forward. ‘It puts a lot of pressure on the teacher because all of a sudden they need to think about these very cross-disciplinary points in a subject that they don’t necessarily know that well,’ she says, ‘but I think that it’s going to be very, very interesting to see how it’s going to play out.’ And, she adds, how the Finnish system will compare with the more programming-oriented approach in British schools. She points to other countries such as Japan and Korea, which have committed to a similar emphasis on computer science but are yet to implement it in classrooms: ‘They’re coming to Finland and they’re coming to the UK and asking for advice… Brave countries that decide to experiment and learn as they go. Go us!’
But why should we care about computational thinking?
As the UK association for technology in education, NAACE, puts it in their guide to computing for primary school teachers: ‘“Computational thinking” is a skill children must be taught if they are to be ready for the workplace and able to participate effectively in this digital world.’
And the turn towards computer science in education is coming not a moment too soon, if a report presented to the World Economic Forum at Davos in January 2016 is anywhere near the mark. The report estimated that 5 million jobs would be lost to automation worldwide by 2020, prompting WEF chairman Klaus Schwab to declare in October that ‘Society is facing the new unknown.’ In the same month, World Bank president Jim Yong Kim said in a speech that he believed automation to be threatening 69 per cent of jobs in India and 77 per cent in China. By way of illustration, in September the Seattle-based tech company Sewbo got a robot to successfully stitch a T-shirt from scratch, achieving, it said, ‘the long-sought goal of automation for garment production.’
Evidence seems to be mounting that employment opportunities in the decades to come are likely to be heavily concentrated in the digital and engineering spheres. Topping the list of the WEF’s essential skills for joining the workforce in what it calls the ‘Fourth Industrial Revolution’ is ‘complex problem solving.’
As our economies and workplaces – not to mention our social lives, culture and entertainment – come to rely more and more on an ever-evolving software infrastructure, problems-solving using computational thinking could prove the ultimate transferable skill. But it’s an invaluable competence for children to develop whatever their futures hold. In September 2014, Sophie Deen, head of the teacher training organisation Code Club Pro, told the Guardian: ‘At primary level, it helps children to be articulate and think logically: when they start breaking down what’s happening, they can start predicting what’s going to happen. It’s about looking around you almost like an engineer at how things are constructed.’
And as Jeannette Wing outlined in 2006, in her original call to make computational thinking as fundamental to education as reading, writing and arithmetic, ‘Computational thinking is a way humans solve problems; it is not trying to get humans to think like computers. Computers are dull and boring; humans are clever and imaginative. We humans make computers exciting.’ Which, of course, is true: without the aid of our astute and creative computational thinking, they can’t even make a decent peanut butter sandwich.
So far Chris Bourn has spent most of the 21st century writing and editing material on popular culture for print magazines – including The Face, Time Out London and Delayed Gratification. Latterly he has also been a proponent of digital journalism, as head of content for more than 30 of Time Out’s international editions and as editor of the sustainability-focused website Collectively (now known as Vice Impact). He is currently working as a freelance writer and editor between his other commitments (mainly school runs and changing nappies).