In the UK right now there is an interesting debate about whether schools should teach programming instead of having kids do boring things in office software. I think the answer is a resounding yes. Not only because, as some say, “coding is the new latin”, but because there is something else here that I think is extremely valuable: the way of thinking that coding teaches.
Computer science, to me, is interesting not chiefly because it is about computers. It is because it is actually a new kind of science. The way you are taught to think about the world in computer science, the way you are taught to approach problems and challenges, all of that is what to me makes it clear that teaching coding in school is teaching rationality in motion.
The Economist, as usual first on the ball, realized this early on and wrote in a 2006 article about a Microsoft project that Computer Science is changing science:
That claim is not being made lightly. Some 34 of the world’s leading biologists, physicists, chemists, Earth scientists and computer scientists, led by Stephen Emmott, of Microsoft Research in Cambridge, Britain, have spent the past eight months trying to understand how future developments in computing science might influence science as a whole. They have concluded, in a report called “Towards 2020 Science”, that computing no longer merely helps scientists with their work. Instead, its concepts, tools and theorems have become integrated into the fabric of science itself. Indeed, computer science produces “an orderly, formal framework and exploratory apparatus for other sciences,” according to George Djorgovski, an astrophysicist at the California Institute of Technology.
Couldn’t we just teach math, then? Math is all good and fine, but programming is taking math and ensuring that you use it to do things. The kick you get out of completing your first program is amazing. I still remember the canned-response AI-wanna-be program I wrote on my first Swedish computer, and ABC 80. It was, um, horrible, but I learned so much from that experience. And this is where coding is a way of doing science. I discovered a lot by trying to build an intelligent program, about both computers and humans. From the basic insight that humans obviously do not have canned responses (well, some might, but you know what I mean), to why it is really hard to construct software that can answer questions and how little needs to change in an input string for the conditional IF-test not to work…the things that exercise taught me was about programming, sure, but it was also a great way to understand the problem I wanted to solve. I discovered and understood things about the world through trying to code models of them.
Computer science offers a new way to understand the world, to think about it as algorithms and data structures and data sets. That is extremely powerful. So should we teach kids coding instead of teaching them to cut and paste in word processing software? It does not seem to be a very hard question does it?
Now, this requires that teachers know coding, or that people who know coding want to teach. And it requires that coding is taught in teachers’ seminars. It requires rethinking computer science, and not classifying it as science about computers, but a new kind of problem solving with new kind of tools.
But it is definitely worth it. The last paragraph in a column in the Guardian today brought that home to me:
That’s why software is like magic: all you need is ability. And some children, for reasons that are totally and wonderfully mysterious, have an extraordinary aptitude for programming – just as some have a musical, mathematical or artistic gift. If the government excludes computer science from the national curriculum then it will be effectively slamming the door to the future.
Opening up for kids who are algorithmic learners, say, who understand the world as data structures and algorithms, seems to be equally important as adapting to visual and auditory learners.
In Sweden today we start learning English at a young age. That is great. Let’s add learning coding from the third grade. Imagine a world where no kid leaves school in Sweden without six years of coding – six years of discovering what the world looks like through the lense of computer science…that would be interesting, now, wouldn’t it?