My son has just started a course in Computer Science at A-level (the exam we take at the end of year 13 in the UK, typically at 17 years old, after two years of study). Owing to my advanced age this was not an option for me when I was at school so I had to teach myself how to write software from the limited information in the rudimentary manuals that came with the rudimentary computers I had access to (starting with the Science of Cambridge MK14), and a scant few books written by people who had done basically the same thing. Things have moved on a lot since then of course, and the advent of the internet has made it possible for me to keep up with and contribute to the development of best practice, which has moved apace across a rapidly growing industry that hardly existed at all when I started down this path. Thus I am very interested to see what is taught at this introductory level and how it compares to what I do in my daily work life.

To set some context, I have been writing software since the late 1970s and commercially since 1982. I am now what is popularly known as a “full stack” developer, writing and maintaining software providing services over the web. I am well aware that the AQA A-Level course is intended only to teach the fundamental principles of how computers and software work, which is only a very small part of what goes into making commercial software today. My son did not take the lower-level GCSE course (the exam which is taken in year 11, after two years of lighter study). His experience of programming is limited to what he has taught himself in Minecraft, where he has created quite complex systems using redstone, command blocks and, more recently, data packs and function files, all of which I know little to nothing about except in the most basic terms.

Given that I will certainly be discussing my son’s various assignments with him as the course progresses, I hope I will gain some insight into the knowledge he is expected to acquire and how this compares to the knowledge I apply to my daily work. These assignments are (so far) set in Python, a language of which I have only a passing knowledge and in which I have not previously written any code. I will therefore have a go at some of these myself in order to learn enough Python to be able to offer advice to my son when he wants it. It will be interesting to see how the code he and his peers come up with differs from what I come up with, and how they converge and/or diverge over time.


Merlyn Kline
October 2021