Coding is not new, it has been around ever since computers have been around. What is new is coding as a subject taught to children; you only need to go back a few years and you would have struggled to find any signs of it in schools. Now however every school is expected to teach programming (a better name for coding) to its pupils, starting from primary school.
This rapid introduction of coding in schools is on the one hand needed since the world we live in is changing at a rapid pace and programming is likely to be a necessary skill for many in the future. On the other hand schools have been dropped at the deep end and they have to teach a brand new technical subject but having no member of staff (in most cases) with coding expertise. Children-specific platforms have come to the rescue, or so it may seem. I have written elsewhere on the pitfalls of using and over-using Scratch et al. so I won’t go further here.
Just as important as learning how to code, children need to learn what coding is for. I often ask this question at the start of a course and the most common answers are 'making games' and 'building websites.' The former is indeed a good way of learning the fundamentals of programming (the latter not so much). But there is more, a lot more, to coding.
Indeed the motivation to teach coding to children should not be because we will need many software developers in the future (that too) but because programming will be central to many things we do, even in professions not associated with software development.
Of all the great uses of programming, I’ll focus on one in particular: Science (including Maths). Disclaimer: I have an obvious bias here as I have trained as a scientist and worked in academic research for many years, using programming as a key tool in my scientific research work.
Just as programming and science go hand in hand in many real world scientific environments, we should also teach them in combination with each other. Coding can be taught in the context of specific Maths and Science topics and this in turn helps the pupils in their understanding of those topics.
Here are two examples focussing on two different age groups:
Grids and Coordinates: writing 2D animations and games is a great way of exploring grids and coordinates and getting the pupils to practise using them. The default coordinate system in the turtle package in Python that we often use for animations and games is the same as the standard one in Maths, with (0, 0) at the centre of the image. Placing objects around the window while setting up a game or during the game itself as things move requires pupils to manipulate x- and y- coordinates. Determining when a moving object goes off the screen (to make it bounce or 'teleport' to the other side, for example) also requires them to understand the positioning of objects in terms of their x- and y- positions.
Waves in Physics: Looking at the other end of the school age, programming lends itself very well to many Physics topics at GCSE and A’ Level (and beyond). Here is an example of how scientific programming can be combined with the study of waves. Indeed just as in real science, programming can be used to get an insight to physical phenomena that cannot be observed easily in the real world.
Let us help children understand coding in the wider context rather than just moving robots and flashing lights on a circuit board. We should not take the fun out of coding, but let us still make sure it is treated like the serious subject it is.
Join us on a coding course, click the link below to learn more.
Stephen Gruppetta has a PhD in Physics and an undergraduate degree in Maths and Physics. Throughout his career as research scientist and University academic he used programming as a key tool in his scientific research, from analysing data from laboratory experiments to simulating physical process as part of developing new theoretical models and designing new experiments.