A Key Distinction for Better Understanding of Computer Science GCSE and A Level

Do you mean the thing or the container for the thing? In this article I want to discuss a key distinction which crops up again and again throughout Computer Science GCSE and A Level. It is a distinction which might sound trivial or obvious, but many years of teaching have shown me that getting ultra-clear […]

Python Sets and a River Crossing Puzzle

Have you heard of the puzzle about the farmer, the wolf, the goat and the cabbage? You can play it here (click the “run” button to start): There are many different ways to implement the logic, but here I chose to use Python Sets. My goal here is to teach about Python programming. If you […]

We Need to Talk About Pseudocode

Pseudocode for Computer Science GCSE and A Level Pseudocode for Computer Science GCSE and A Level is supposed to provide a way of describing algorithms which is simple, clear, unambiguous and language-agnostic. However, we have a language which meets 3 of these criteria already – Python!! As for the fourth, Python syntax is so clear […]

Learning Bubble Sort for Computer Science GCSE and A Level

They say a picture is worth a thousand words, and that is probably true, IF you are ready to understand the picture! When this is the case, we often experience those wonderful aha moments where understanding happens almost instantaneously, as if someone has switched on a light in our mind. However, there is usually a […]

Eight Queens Puzzle in Python

Click me to play The Eight Queens Puzzle is a classic problem whose goal is to place 8 queens on an 8×8 chessboard in such a way that none of the queens share a row, column or diagonal. The version discussed here allows exploration of not just an 8×8 but an arbitrary size nxn board, […]

A Puzzle About Socks

Here’s a puzzle to help practice your computational thinking skills. Don’t forget to take it slowly and think through your answer carefully before committing. A sock drawer contains ten pairs of black socks and ten pairs of white socks. If you are only allowed to take one sock from the drawer at a time and […]

Generating Random Graphs in Python

Random Graphs in Python for A Level Computer Science and Beyond The jupyter notebook below shows an implementation of an algorithm for generating a random undirected, unweighted graph. The algorithm uses the Erdős–Rényi model, but you don’t need to know about that to understand how it works – the pseudo code makes is quite clear, […]

So You Want to Teach Computer Science?

Computer Science is an exciting and important subject where the demand for competent teachers outweighs the supply. This makes it an appealing option for many considering choosing it as a subject for initial teacher training or as a new subject within an existing teaching career. In this article we will look at some points to […]

Better Typing for Computer Science GCSE and A Level

How good is your typing? This thing with typing is, if you type badly, you will get a lot of practice at typing badly, whereas if you learn to type properly, you will practice typing well every time you do it. The difficulty comes in making the transition from being a bad typist to a […]

Python Nested FOR Loops for Computer Science GCSE and A Level

Why do I Need Nested Loops? Nested loops are a very important concept in Python programming and Computer Science GCSE and A Level, and are used in many algorithms. For example sorting algorithms such as Bubble Sort and Selection Sort rely on them, as does iterating through a 2D list. Sometimes while loops are used […]