Computational thinking and coding are best taught hand in hand. Imagine teaching the principles of chemistry without doing experiments – or doing experiments without covering the underlying principles. Whilst programming is an important part of the curriculum for computing, it would be wrong to see it as an end in itself. Rather, it’s through the practical experience of programming that the insights of computational thinking can best be developed. Computational thinking has wide applications across various disciplines, but it’s most obviously apparent – and probably most effectively learned – in the rigorous, creative processes of writing code.
One of the aims of the national curriculum for computing is that pupils can analyse problems in computational terms, and gain repeated practical experience of writing computer programs in order to solve problems. Many programming languages are more complex than necessary for those just getting started, but there are plenty of languages which can be used very effectively in the Primary classroom. The language type can progress from being device-specific in Early Years (e.g. Bee-Bot, Roamer-Too), through limited-instruction in Key Stage 1 (e.g. ScratchJr, Lightbot), to game-programming, block-based and text-based in Key Stage 2 (e.g. Kodu, Scratch Logo, TouchDevelop). Here are some points to consider when choosing a programming language:
- Not all programming languages run on all computer systems.
- Choose a language that’s readily accessible to your pupils.
- Choose a language well-supported by good learning resources and online communities.
- It’s beneficial if pupils can continue working in the language on home PCs.
- It’s even better if pupils can access a school project from home via the internet.

A selection of programming languages: Bee-Bot (device-specific), SratchJr, Kodu, Scratch and Logo.