Free computer science subject knowledge enhancement resources for teachers

Free computer science subject knowledge enhancement resources for teachers

A few years ago I worked on a subject knowledge enhancement tool for Ebor Teaching Schools Alliance to support new teacher trainees pick up the necessary skills and understanding as they train. Since then, I’ve been working on ways to make that sort of support available to existing teachers as well as new trainees.

In preparation for a CPD session at STEM Learning in York for new and aspiring subject leaders of Computing today, I’ve made a free tool available to any teacher who wants access to free resources to support and develop their teaching and and learning of computing. now contains a Computer Science Subject Knowledge Enhancement course that you can use to rate your confidence in each aspect of the recommended subject knowledge requirements.

The subject knowledge enhancement tool will recommend a personalised target based on your confidence ratings in each area before directing you to a range of suitable free resources to help you develop your teaching and learning skills in that area.

Signing up for an account is free – just go to and click on Computer Science Subject knowledge enhancement.

Let me know if you have any comments or suggestions on how to make it more useful.

CPU Fetch Decode Execute simulator for OCR A Level

CPUs work by following the fetch decode execute cycle.

Von Neumann CPU Simulator showing the fetch decode execute cycle
Von Neumann CPU Simulator showing the fetch decode execute cycle

At Key Stage 3, students in the UK need to have a good idea of the process as a whole:

The fetch decode execute cycle is the loop that CPUs constantly follow in order to get, understand and do each instruction in a program.

At Key Stage 3, students need to understand the role of different parts of a CPU in the Von Neumann model.

A Von Neumann CPU has one memory store (RAM) which stores both data (variables) and instructions (program code).

Registers are fast but small memory locations that can store one item of data or one instruction.

The Little Man Computer model is popular at both Key Stage 3 and Key Stage 4 because it simplifies what happens inside a CPU down to just three registers: an instruction register, an accumulator and a program counter with a very limited instruction set.

For A Level, some additional components have to be understood which makes the Little Man Computer model appear too limited to be used to explain all of the necessary theory. Students also need to be able to explain the purpose and function of:

  • The Memory Address Register (MAR) and Memory Data Register (MDR)
  • The Address Bus, The Control Bus and the Data Bus.

To help fill those gaps, I’ve built a CPU simulator based on the diagram shown in the Craig’n’Dave video below:

The simulator lets you enter in any values into the memory store (as binary, denary or hex) and then either run the whole code or step through each stage in the fetch decode execute cycle.

You can try the simulator here or download the source here.

This tool is designed as a teaching aid to allow teachers and students to step through each line in a binary computer program with an explanation of what each register and bus is doing at every stage.

I hope it’s useful. Let me know if you spot any mistakes or ideas for improvement.

Python wordpress plugin: easily embed and run python code in your website

Python wordpress plugin: easily embed and run python code in your website python wordpress plugin python wordpress plugin is designed to allow anyone to write, run, debug and share python code that runs in your browser. It’s designed primarily for use in schools to allow teachers to quickly share code with students that they can adapt, debug and use.

Here’s an example python program that asks you for your name then says hello. Press Ctrl + Enter (or click on the green plus at the bottom of the code screen) to run the code.

When you save some python code on (press Ctrl+S or click on the share button) you get an option to copy and paste some HTML code that can be embedded into any website. e.g:

<iframe frameborder="0" width="100%" height="400px" src=""><a target="_blank" href=""></a></iframe>

To make it even easier to embed your python projects into your blog or website, I’ve shared a plugin for wordpress that lets you quickly add python code using a wordpress shortcode.

This makes sharing your python projects much simpler:

  1. Write your code on

    You don’t need an account – just type in your python code into the browser & test it with either Ctrl + Enter to run the whole project or Ctrl + .  to run it one line at a time

  2. Save your code

    Press Ctrl + S  or click on the share button. This make your code available to anyone with the link.

    Share your code

    The URL will be something like

    Note the letters and numbers at the end of the URL ( ra  in the above example)

    Find the ID

  3. Add your code to any post or page in your wordpress blog using a shortcode:

    Use a shortcode that contains the letters and numbers from the previous step:

    Add a shortcode
    This will display the python source code in your blog page or post. People viewing your website will be able to view, run and debug your code.

  4. If you want your code to run by default rather than show the source code:

    Adapt the shortcode to change the mode to “run”:

    Shortcode to run

Wordpress python plugin
Python wordpress plugin

Click here to download the wordpress plugin or to find out more.

Like, the wordpress plugin is free and open source.