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 […]

Running Python Scripts from a Command Line

There are many ways to run Python code. Many learners begin with IDLE which comes bundled with the standard Python installation. You can go a long way with IDLE but eventually you will want to progress onto different environments. A very common setup for small Python projects is the use of a text editor such […]

Exploring Random Walks with Python Turtle Graphics

In this post we will be looking at an idea from mathematics called a random walk. In a random walk, each step in a process is determined randomly and we are interested in the state of the process after a given number of steps. There are examples of this phenomenon happening all around us. For […]

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 GCSE and A Level Computer Science

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 GCSE and A Level Computer Science

Why do I Need Nested Loops? Nested loops are a very important concept in Python programming and GCSE and A Level Computer Science, 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 […]

Binary, Decimal and Hexadecimal Converter

Very often in GCSE and A Level Computer Science you are going to want to convert between different number bases such as binary, decimal and hexadecimal. Of course, you need to know how to do this manually, but it’s also very helpful sometimes to use a calculator – either to check your work or when […]

Ultimate Guide to Free Python Resources for Beginners

Learning to program with Python is both fun and challenging. For some, it could mark the beginning of a life-long journey of discovery and creation. In many professions a knowledge of Python will give you a distinct advantage. We have covered some of the advantages of studying Computer Science in a previous article. Many of […]

2-Dimensional Arrays in Python for GCSE and A Level Computer Science

2-dimensional arrays are extremely important data structures in programming, and you need to understand them for GCSE and A Level Computer Science. They can be very confusing to begin with, and you should make sure you are confident and competent with 1-dimensional arrays before learning about them. For the purposes of GCSE and A-Level Computer […]