Is teaching coding in schools pointless?
Soon after his Year 7 pupils start secondary school, Paul Powell gets them to write a simple adventure game. They have to make up their own story complete with a series of choices for their character.
If they like, they can also include features such as picking up items that can be used later in the game. By the time they get to Year 9, the more advanced students are given the task of writing a platform game from scratch, including making all their own graphics and animations. On the way, they learn how to think logically and break down problems.
“The biggest thing for me is that whatever they write, they understand,” Powell says. “It is really important to me that they can predict what each line of code will do and that they can extend examples we give them and use their imagination to make something they want.”
But all this could be pointless, according to one of the most influential voices in international education. Andreas Schleicher, director of education at the Organisation for Economic Cooperation and Development and the man who invented the Pisa tests (Programme for International Student Assessment), says teaching children to code is largely a waste of time.
“In a way, coding is just one technique of our times,” he said in February. “You teach it to three-year-olds, and by the time they graduate, they will ask you, ‘Remind me, what was coding?’ That tool will be outdated very soon.”
For computing teachers like Powell who have spent the past five years teaching programming skills - which, in some cases, meant having to first learn programming themselves - being told that it is all pointless could feel like a massive kick in the teeth.
So where does this leave them? What should you do if someone as influential as Schleicher suggests you are wasting your time on something that remains a compulsory element of the national curriculum?
Powell believes teachers should stick with it. He is not convinced by Schleicher’s view on the transience of the topic. “I don’t think [coding] is going away any time soon,” says the curriculum lead for computing at George Mitchell School, a 3-16 community school in Leyton, East London. “There are more lines of code being written now than at any time in history.”
Powell distinguishes between coding - the ability to translate a given set of instructions into a given programming language - and programming, the broader skill of being able to come up with a set of instructions that solves a problem. Even if a particular programming language becomes defunct, he does not believe that means time spent learning it has been wasted.
“In schools these days, Python is the big language, and maybe Python will die a death and another language will rise in its place,” says Powell. “But it’s almost like if you speak really good Italian, when you go to Portugal you are going to be able to pick up some bits. There is a similarity in syntax and the way you break things down.”
Schleicher may have a point if teaching coding doesn’t go beyond asking children to copy down code, which is why Powell puts so much emphasis on making sure his students understand what they are writing.
“It is very easy to go on the internet, find an example of what you want and copy and paste it and think you are programming, but actually you are just copying what someone else has done,” he says.
“We concentrate on trying to get kids to write programs and understand how the computer recognises the code,” adds Powell, who is also a community leader for the teachers’ network Computing at School.
Getting with the program
For Peter Marshman, learning a programming language is not an end in itself, but a means to enable students to create their own programs.
“The aim is not to get them to memorise a piece of code, but to develop their computational logic,” he says. “Once they have got their core computational thinking skills then they can choose what they do with them.”
Marshman starts his Year 7 pupils on a block-based language such as Scratch, before moving to Python in Year 8. By the time they get to Year 10, they are given the option of sticking with Python or learning another language.
And while the choice of language itself may not be that important, this does not mean teaching coding is a waste of time, he argues.
“Where coding is important is where it gives [the pupils] real-time feedback,” says Marshman, head of computer science at Leighton Park School, an independent school in Reading. “There are very few subjects where students can solve a problem and get instant feedback by clicking ‘run’.”
Coding also cuts across so many other subject areas, he adds. He gets his students to turn repeated movements and patterns in a dance into an animation, while Year 7s create Islamic-style artwork out of geometric shapes.
“They’re writing code and solving problems but there is an artistic element to it,” Marshman says. And it isn’t limited to the arts. He sets his Year 9s the task of writing algorithms to enable someone with locked-in syndrome to communicate more easily.
“We always start with the ‘why’,” he says. “Coding allows students to see the bigger picture first. They’re learning how to take a problem and abstract it in a way that focuses on the key details.”
One of the apparent assumptions behind Schleicher’s comments is that schools teach coding largely for functional reasons. And while it’s true that teaching pupils to code will hopefully help ensure a steady supply of software developers in the future, this is far from its only benefit, according to Miles Berry, lecturer in computing education at the University of Roehampton in south-west London.
More than a skill
As a member of the expert panel that drafted the new curriculum, it’s no surprise that Berry is quick to defend the teaching of coding. But he says it is about much more than giving children a skill to use once they enter the workforce.
“It is a way for a child to express themselves but also gives them an interest and understanding of the world around them,” he says. “Some of them are going to get jobs as software engineers or coders, but they are also going to find themselves in a world where digital technology is likely to play a dominant role, and understanding how that works ought to be part of every child’s curriculum entitlement.”
This means spending at least some of the time teaching children how to code, he adds. And while he says copying line after line of code is of limited value, it can play a part in teaching children how to write their own.
“We teach children to read stories before we expect them to write their own, and we recognise it’s a good idea to have some element of reading other people’s code before expecting them to write their own,” he says.
Instead of coding, Schleicher argues that schools should focus on areas such as data science and computational thinking. But these rely on programming skills, Berry adds.
No one could argue that the introduction of England’s computing curriculum has gone entirely smoothly. A shortage of trained teachers, as well as access to adequate IT and software, means that some schools have found it more difficult to embrace the challenge than others.
And one result of this has been to open up a gap between what schools should be doing and what they are doing, according to Alan O’Donohoe, who spent more than 20 years in the classroom and now supports teachers to deliver the computing curriculum.
He says that some schools, lacking either the expertise or the confidence themselves, and sometimes spurred on by organisations promising to be able to teach children to code, have put too much emphasis on coding.
“It means we’re not always teaching the things that are important, we’re teaching the things that may be easier to teach,” he says. “This is fine as a short-term strategy, and the children are learning something, but is it an effective use of teachers’ time?
“There are a lot of easy solutions being marketed, such as teaching kids to code. It’s not that we shouldn’t be teaching [coding], but we’re spending too much time on it.”
However, dropping coding altogether could be just as damaging, according to Simon Peyton Jones, the first chair of the National Centre for Computing Education, which was created to try to close some of schools’ gaps in the subject. He sees coding as part of a body of skills that will help children understand the world they will grow up in.
“We need to give children an intellectual toolbox that will enable them to survive successive waves of technology and understand what is going on,” he says. “What I want is to teach children elementary computer science just as we teach elementary maths or elementary physics.”
He describes programming as computing’s equivalent of lab work. A computer science curriculum without any programming would, he says, be “a dry, eviscerated kind of thing”, like a science curriculum without lab work.
‘Very, very relevant’
“It is what resonates and brings to life and amplifies the things that you are learning,” adds Peyton Jones, who also heads Computing at School and is a principal researcher at Microsoft Research.
And while the pace of technological changes means that specific knowledge may quickly go out of date, coding is still a useful skill to learn, says Darren Travi, head of computing at the Royal Grammar School in High Wycombe, a selective state school. Travi uses a range of languages with his students, including Python, Visual Basic and JavaScript. While he may begin with getting them to copy code - “words have to be spelled correctly” - he aims to get to the stage where he writes the algorithm on the board and his students code it.
“Technology always changes, but the skills that support it don’t change. I think coding is a very, very relevant skill,” says Travi, a Computing at School master teacher. “The syntax might be different, but problem-solving, debugging, learning how to put things in sequence, learning how to break problems down - these are useful skills to know anyway.”
In the end, it may not just be these generic coding skills that persevere. Even specific language skills may have more longevity than Schleicher’s comments suggest. Powell recalls learning BBC Basic as a computer studies student in the late Eighties and early Nineties, a language that is not too far removed from some of those in common use today.
“It was a bit simpler,” he says, “but in terms of fundamental techniques of programming, I don’t think that much has changed”.
Nick Morrison is an education journalist. He tweets at @nsdmorrison
This article originally appeared in the 3 May 2019 issue under the headline “Unscrambling coding”
You need a Tes subscription to read this article
Subscribe now to read this article and get other subscriber-only content:
- Unlimited access to all Tes magazine content
- Exclusive subscriber-only stories
- Award-winning email newsletters
Already a subscriber? Log in
You need a subscription to read this article
Subscribe now to read this article and get other subscriber-only content, including:
- Unlimited access to all Tes magazine content
- Exclusive subscriber-only stories
- Award-winning email newsletters