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

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

Binary, Decimal and Hexadecimal Converter

Very often in Computer Science GCSE and A Level 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 […]

Node Class for a Linked List with Object Oriented Python

When you come to study Data Structures such as Stacks, Queues, Linked Lists and Binary Trees for A Level Computer Science, you will often make use of Object Oriented Programming. That is a bit of a double whammy if you are not yet very confident with OOP, and it can seem a bit overwhelming. I’ve […]

Counting Letters Using a Python Dictionary

Some Python developers would say that there are two fundamental constructs which form the basis of the language: lists and dictionaries. Whether or not that is true, they are both certainly very important. All the GCSE Computer Science specifications mention arrays, and although there are technical distinctions, for many purposes the notion that lists are […]

Conversion from Decimal to Hexadecimal

I want to share a little trick which some of you may not know for converting from Decimal to Hexadecimal as required for Computer Science GCSE and A Level. To use this trick, you will need to be able to convert from decimal to binary, which will be covered in another article. When working with […]