Some of my earliest memories of computer programming are of going to the school library, finding a book which had 50 games you could program and going upstairs to the IT Suite and creating some of them using BASIC on the BBC Master computers that we had there. In not too much time I was pestering my mum for a computer of my own at home to tinker with and eventually she gave in, bought me an Atari ST, and I could continue to program to my heart’s desire at the weekends too.
Doing things like this have fostered a love of programming and computers in general in me. Something that has followed me throughout my life. I find my passion translates into the programming lessons that I teach and children then get that same ‘spark’ of enthusiasm.
All this is very well said and done, but why should people learn to program? Why should children be taught how to do it?
I believe there are a number of reasons why every child should learn how to do at least some basic computer programming:
1: You become adaptable
Today’s children are tomorrow’s adults. We need to teach them skills that can be used with technologies that haven’t even been developed yet. Computer programming teaches you to be adaptable and helps you to understand how technology works. I believe that in the future, if you don’t understand how a computer processes information and how basic programs work, you will be at a disadvantage to those that do.
An analogy would be that of a car mechanic. I have no idea how to fix an engine. If I have a problem, I need to go to a garage where the mechanic could tell me anything they wanted and present me with a large bill. If I had more knowledge about the intricacies of a car engine, I would be less likely to accept this.
I can see a future where people who don’t understand how computer programs work will be unable to get many of the jobs that are available.
2: It teaches amazing problem solving skills!
Every computer programmer has to solve problems. To write good programs you need to be able to ‘decompose’ a problem into its relevant parts. Break it down into smaller chunks. They solve each of these problems in turn and then (hopefully) produce a full solution for the original problem.
There are not many disciplines that teach these skills in the same way (apart from maybe Maths).
Computational thinking is a fantastic way to solve problems in other areas even where computers aren’t involved. Can the problem that is being approached be broken down into smaller problems? Can methods be devised to solve each of the problems that are being attempted?
I have seen myself how children learn how to solve problems in a structured way through Computer Science and then apply these same skills in other subjects such as Maths and Science and even the humanities.
3: It makes you more resilient
Every child needs to learn how to deal with failing to achieve something. Rather than just failing and then giving up, it is far better to keep going until they have achieved.
Imagine a situation where a 100m runner is training for the Olympics and the first race they have they come last. If they give up at that first stumbling block they will never achieve what they are dreaming of.
Errors in code (called ‘bugs’) can occur in even the simplest of computer programs. Programmers have to learn how to search through their code, find these errors and then fix them. This can sometimes be a long-winded process with a lot of trial and error. As children (and adults) become better at finding these, they become better, more confident programmers. This idea of never giving up is useful in every area of our lives.
When programming you learn how to pick yourself up after a problem occurs, dust yourself off and have another go!
4: It teaches you how to learn
Even good programmers don’t know every solution to every programming problem. You have to go and research solutions to problems. This can take the form of searching online (oh how I wish I’d had access to the Web when I was younger!), asking others, working in groups or even reading books.
Teachers have often been accused of ‘spoon feeding’ children. If programming skills are taught properly, children should be able to go and find information out for themselves with less input from teachers. They will go and ‘play’ away from lessons, teaching themselves how to become better programmers in the process.
I often see this after lessons introducing a new programming tool to children – they go away and download it themselves at home. They then tell me the next time I see them, what they have been doing with it. They are proud of their accomplishments.
5: It’s fun!
Lastly – it’s fun. Like anything which includes an element of challenge, there is a reward for solving a problem. I have often heard squeals of excitement and exclamations as children have managed to make something work. The effort of trying to make a program do something you want is very quickly forgotten when it does what you want it to do.
It appeals to both the logical thinkers and the creatives. It allows you to fashion something from nothing. It allows you to ‘play’ in a playground creating new things and producing tools that might be useful to others.
So in short, I believe that an understanding of computer programming and experience of it is something that all children should have, no matter what their future career may be. This can be done using a variety of tools and using a variety of methods, but ultimately it’s a worthwhile pursuit that will support future learning in any field and provide them with skills that are useful both now and in the future.
Written by Gareth Griffiths, Curriculum Consultant, hi-impact consultancy