Why kids should learn to program computers

I believe that children should be taught computer programming at school and they should be taught it early on. There are arguments against this. Who needs to program a computer, anyway? When will the average person ever need to do that? That’s technical stuff. No normal person is interested in that. It’s for nerds.

Or is it?

Modern civilisation lives on knowledge. Information. Information is everywhere, in everything that we do. We learn, we write down what we have learnt; we create art, and store it, copy it, distribute it. We do newsworthy things and we broadcast news. This is the information age, and it runs on Information Technology.

In this information age it is vital that we can all produce, modify and access information and that means using computers. There are not all that many jobs that do not involve a computer in some way. Few people would disagree that using a computer to access the internet, produce documents and so on should be taught at school but I think it should go further than that. I think that children should be taught to write computer code; the lists of instructions that tell the computer how to do everything from adding up the numbers in your spreadsheet to moving an alien across your screen. (Not such different tasks as you might think!)

There is logic to my thinking. To the average person, a computer is a mystical object. It has, they think, a mind of its own. Computers DO things without reason or maybe just to spite them. Except that is not true, but without knowledge of what goes on inside the computer it seems like it.

Programming isn’t creating the computer, it’s operating it. It’s like driving the car rather than building it or being a passenger. Creating a computer program gives the programmer an understanding of what computers really do. Once it is understood how a list of instructions can add two numbers together or draw a picture on the screen it starts to become easier to work out why the computer always pops up that incomprehensible message when you try to do something that it doesn’t like. It is not just that learning programming makes it easier to understand computers either. Britain was – is – very good at creating computer software. When manufacturing has all moved to countries with cheaper labour, creating new computer software and games might be one of the few areas where people can make a living. Like all languages, learning to speak to computers is best done at a young age and those that do so find it easier to write software later in life. Then there is the joy of actually creating something yourself, and the convenience of creating something that works the way you want it to instead of the way that some distant programmer wants it to. There are plenty of jobs where it would be useful to be able to tell the computer what to do instead of waiting for someone else to tell it. Scientists need to store and analyse data from their observations and experiments. Sales managers need to be able to extract meaningful information from customer databases. Both of these situations could be speeded up by knowing what the computer can do and how to do it quickly.

A BBC computerSo if programming should be taught to enable people to make the most of the information age, how should it be done? In the eighties every school had a BBC microcomputer. Homes had Sinclair Spectrums, Ataris, BBCs and C64s. The important thing about those computers is that the first thing we saw when we turned them on was an empty screen waiting for computer code to be typed in. Sure, the first thing many people would do is type LOAD “” to fetch a game from cassette tape, but everyone would eventually get around to typing 10 PRINT “Steve is great” / 20 GOTO 10 and from there people would often become curious about what else they could tell this computer to do. The current batch of programmers in their thirties and forties are good at what they do because of early exposure to simple computers that practically demanded that the end-user programmed them. Modern computers just don’t present the same opportunity to program them. To program a modern computer you have to realise that you want to program the computer, and then find out what you need to install to help you do that before you can even get started. Free software is available on the internet to get people started but hardly anyone knows that it is there.

This is why I think that programming should be taught very early at school. Children can sit down at a computer that already has what they need to program it and can be guided through the steps. Some children might not enjoy it but they will at least have encountered the basic ideas that make a computer function, and have some understanding of why things work the way they do. Other children will discover a talent for programming that they might otherwise never realise, and they can go on to produce great things.

As well as teaching programming early on, I also believe that concepts like web browsing and word processing should be taught at a young age. These things aren’t optional, they are used in nearly every other subject at school. As using a computer is a fundemental skill to be taught to everyone anyway, I think that the IT GCSE must allow thost that are interested to go a lot further than that. A GCSE in IT should teach advanced programming and computer science, not things that everyone should already have been taught like how to make a Powerpoint presentation.

I realise that there are other demands on time in schools and also that many people will not be interested in computer programming. I should point out that there are plenty of things that people might not be interested in but should still learn the basics, for example, cooking. I’m not calling for years of lessons on the subject of programming. What I would like to see is just a few lessons somewhere between the ages of 7 and 14 (preferably nearer 7) which take children through creating a simple game. Just enough to capture the imagination and explain simple concepts. Children at that age would hopefully still be curious enough to be interested.

Apart from teaching programming in schools, there should also be more opportunities to learn at home. One intriguing project that might help with this is the Raspberry Pi project. Raspberry Pi is a tiny computer the size of a credit card which will connect to a TV just like those eighties computers and will have all the tools necessary to learn programming already on board. It should be a case of plug in and start writing code. The best bit, though, is that the Raspberry Pi is expected to cost about £15. These things should become ubiquitous and everyone should have the chance to program a computer.