Coding is not a new subject. It has been around for many decades, ever since the very first computers were around. However, for most of its history, it's been a very niche subject that only a small group of people did and understood. This led to the subject being perceived as obscure by the majority.
In the past decade or two, there has been a significant shift away from the status quo. More and more professions started to use and rely on computer programming, not just the few who had relied on coding for a long a time. And most countries in the world started teaching coding to children in schools.
However, coding remains a subject that's not very well understood. Many parents have a challenge as they want to support and help their children with learning this 'subject of the future', but they don't really understand what the subject is. A parents' guide to coding includes explaining what the subject is and what it is not, and the skills that children gain when they learn to code.
Coding in Schools
Schools have also found the challenge of teaching coding hard as the majority of schools don't have any member of staff who's proficient in coding. And many school leaders are in the same position as most parents and don't fully understand what coding is, which makes coding a challenging subject for schools.
In order to address the problem of lack of coding expertise in schools, many tools have cropped up in recent years that allow teachers to teach certain basic aspects of coding without the need to use pure coding. Scratch is a very popular children's platform that's used to fulfil the requirements of the curriculum. However, no professional programmer would recognise Scratch as a coding language. Kids like it at first, as it's not too different from playing an educational game, although we find that many do start to get bored with Scratch when it's overused, as is often the case.
Robots and Other Coding Toys
Another area that has expanded a lot in recent years is that of coding toys and games. Whether it's robots or Minecraft, these tools are useful to increase engagement with some students who might otherwise shun coding.
However, they're only a small part of coding and they have their drawbacks. Let's take robots, for example. Every robot comes with code written by the manufactures to drive the robot. Yes, you can access this code with other code in languages such as Python, for example, but a lot of the hard work has already been done by the robot manufacturers. This can give the wrong impression to children as they may misunderstand what coding really is. Using robots is closer to using a finished product than it is to develop a brand new computer program from scratch.
The best way to learn coding thoroughly and in a broad manner is to learn pure coding. What do I mean by this? Pure coding is when computer programs are written using a proper programming language without using many toys and software platforms. You can think of this as coding from first principles, rather than using ready made tools.
IKEA vs Carpentry, Coding Toys vs Pure Coding
A good analogy to understand how robots and minecraft relate to coding is the following. You need a new wardrobe and you buy a flatpacked one from IKEA (other furniture stores also available!) which you then assemble using Allen keys and screwdrivers once you get home. Assembling the wardrobe will help you understand some of the basics of carpentry, but it won't make you a carpenter. Someone else has done most of the hard work for you already. All you can do is build that one wardrobe and you're not in a position to go in a carpenter's workshop and start building your own furniture.
Teaching pure coding is harder than teaching kids to use the coding toys, however if our aim is to teach children how to code, there's no other way. Coding from first principles allows students to be creative as they're not limited by the functionality of the robot or software they're using.
And pure coding only needs a computer and free software. Using robots can be fun and engaging, but kids will then go home and they won't be able to carry on practising and learning independently without the same hardware. However, with pure coding using a real-world language such as Python, not only are there no barriers for students to carry on coding at home, but there are also plenty of resources available.