Computer Programming for the Home Educated
a guest post by Jon Winterburn
As a child I went to state school in an inner city London school which, like so many of its kind, let me and many of my fellow students down in practically every subject. One particular subject was the then-called “computer studies” which is now known as ICT (Information and Communications Technology). Just like the state-schooled children of today, the only “computer studies” we were introduced to was a basic understanding of how to use a word processor and very simple spreadsheet management.
Therefore, you would probably be surprised to learn that for the last 13 years I have been working in IT with several professional IT qualifications under my belt and am a member of the British Computer Society. Despite failing at school, I used online resources to teach myself the fundamentals of network engineering, computer programming and web design. If I can do it (and I’m not the sharpest tool in the box!), then anyone can! For the last 7 years I’ve worked in a dual-role in central London; managing a network that supports over 2,500 London black taxis as well as programming Web applications providing tens of thousands of customers with access to their taxi bookings.
Why am I blabbering on about all this, you might ask. Well, yesterday in the news you may have heard that Education Secretary Michael Gove announced radical new changes to the national curriculum with regards to ICT.
Finally, the government has listened to the IT industry and realised what we’ve been saying for years: the next generation needs to be tech-savvy. Britain needs to lead the way in state-of-the-art computer programming. This covers a vast range of technologies ranging from consumer-level software (smartphone “apps”, Websites, video games, special effects in movies and TV), to industry-level software (medical equipment, transportation, infrastructure, architecture). Do we want to be behind the rest of the world in technology? Do we want all the exciting possibilities for the nation’s children to be outsourced to some remote country on the other side of the world? No!
So, as an ex-state-schooled kid, I was so pleased to hear that the garbage the national curriculum calls ICT (using proprietary software – Microsoft Office – to learn basic clerical skills) is to be scrapped in favour of real computer science. I don’t blame the schools for implementing this gross waste of time and money, for they have had their hands forced by previous backward, outdated governments who wouldn’t know an iPhone from igloo. This is scandalous, because whilst our economy will always need administrators and clerical workers, we also need software developers, computer engineers and video game designers.
Whilst the state-schooled children are obtaining a better education in computer science (one can only hope that the bureaucrats get it right!), we in the home education community (my wife and I home educate our 9 year old son) don’t want to be left behind. I say this for a number of reasons. First of all, we need our children to be armed with the skills they need to compete against their state-schooled counterparts. Secondly, we need to be prepared for the inevitable declarations from the LEA that our children are missing out on these new-fangled skills now that the schools are doing what many of us already do! And finally, you will be surprised just how much fun it is (and how easy it is) for children to learn computer science. Computer programming is the perfect way to bring to life all that boring maths your kids are learning!
If this article interests you, I hope to be able to help you unravel the mysteries of computer programming (aka coding) and give your children (and you too if you’re interested!) a head-start in not just understanding how computers work, but how to make them do what you want them to do. There are a number of free, user-friendly resources, courses and tools now available to allow anyone from 6 to 60 to become an accomplished programmer – with little or no former experience! Before I list a few of these, let me clarify something about computer programming:
Learning to program is not hard. There, I said it! It really isn’t hard to learn. What is difficult is mastering it. Just like almost everything else in life, learning to program is easy to learn. Admittedly, mastering a programming language takes a lot of hard work as well as much trial and error. But there is a lot of free support out there on the Internet and the benefits are rewarding. If you think computers are too clever for you or your child/children to ever be able to program them, you’re wrong. Computers are stupid! Think about it. If you’d never made a cucumber sandwich, and I asked you to make me one, I’d probably give you instructions like so:
“Get two slices of bread from the bag, use a knife to spread the butter evenly. Cut up the cucumber, put it one one slice and push the two bits of bread together and put it on a plate”. Simple!
Now imagine telling a computer how to do this using any programming language. You’d have to give instructions a bit like:
“If bread is available in the bread bin (which is in the kitchen on the worktop), take out two slices – a slice is approximately 150mm x 150mm. Lay both slices flat on the worktop and obtain a butter knife from the drawer. This will be in the left hand compartment. You will need to hold the knife by the handle. Now obtain the butter from the fridge (top right shelf, yellow container), remove the lid from the container and insert the knife at a 30 degree angle…” and so on – as you can see, this is a far more lengthy process because the computer really has no intelligence. However, you are intelligent, and you can utilise your vastly superior intelligence to instruct the computer to do what you want it to do. Remember: the computer is the slave, and you are its master – not the other way round!
The next resource is designed primarily for children but of course is suitable for anyone wanting to learn to program. The language of choice is Ruby (an object-orientated open-source language developed in Japan by someone who wanted to provide people with an easier, more human-understandable language). The colourful and fun website www.kidsruby.com provides kids and parents with free software that’ll have your little ones building computer games in Ruby in no time at all. Building computer games is a great and exciting way for children to put to use the maths and science they learn in school and they learn to program without realising it!
Up next is www.hackety.com – another colourful and fun website which helps absolute beginners and kids learn to program quickly, also in Ruby. You can quickly develop graphical interfaces and several lessons and example programs are provided, showing you how to make all kinds of fun things!
One more similar resource is the website http://scratch.mit.edu – a kid-friendly website which provides free software and starter kits that’ll get your kids developing in a simple programming language called Scratch (designed by MIT).
Of course there are far more resources and programming languages out there which you can easily find through Google. However, if you’re an absolute beginner or want to get your kids interested in coding, then the above websites are a great starting point.
Posted by Alternicity