Coding in Key Stage 2: What should children be learning, and what do they actually learn?


In 2014 in the UK, Computing entered the National Curriculum as a new subject, replacing ICT. This new subject covers computing broadly and includes coding as part of the subject. In this post, I'll look at what's in the curriculum for coding for Key Stage 2.


This blog is part of a series that will look at Coding and the Key Stages of the National Curriculum.


What's in the Key Stage 2 Coding Curriculum?


The Computing pages in the National Curriculum are rather brief and only give a very general overview of what's required, leaving schools with the task of deciding how to interpret it.


In Key Stage 2 in particular, coding is restricted to three bullet points. The first requires students to be able to design, write and debug programs, and decompose problems into smaller parts. This is pretty much the definition of what coding is. It applies equally to very simple programs as well as complex ones.

The second bullet point refers to some of the most basic topics in coding, such as variables, using input and output, using sequences and selection, and using loops.


The third and final bullet point mentions detection of errors and using logical reasoning to understand simple algorithms.


The authors of the curriculum had very little choice other than to keep to a very general description of basic coding concepts. The challenge with delivering coding in the curriculum was always going to be the lack of resources available in schools to deliver it. Coding is a difficult subject to teach, even at a basic level, and requires experienced programmers to be able to deliver it in an interesting and engaging way.


What Do Kids Actually Learn in School


The way coding is taught in schools in Key Stage 2 is very variable. The curriculum doesn't make any reference to programming languages for this Key Stage. Scratch is a very popular platform used to cover what's needed in the curriculum. Scratch is a block-based software where students can drag blocks that perform certain functions in the correct order to write an algorithm.


Although Scratch is classified as a coding language, most professional programmers would struggle to define it as one. Its popularity stems from the fact that it can be taught by non-programmers.


However, kids in Key Stage 2 are ready to start learning to code using an actual coding language such as Python. This approach enables students to learn coding in more detail, in a way that is much closer to how coding looks like in the real world.


Unfortunately, the resources needed to teach coding in this manner are simply not available. A few schools do start teaching coding in Python towards the end of Key Stage 2, although the level of Python coding taught is often very basic.


There are no easy solutions to this issue. For the foreseeable future, the children-specific platforms such as Scratch will remain the main way to cover the coding-related parts of the National Curriculum for Key Stage 2.