Computer Science Subject Knowledge Enhancement
Computer Science Subject Knowledge Enhancement

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.

learn.withcode.uk 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 learn.withcode.uk 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.

Continue ReadingFree computer science subject knowledge enhancement resources for teachers

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.

Continue ReadingCPU Fetch Decode Execute simulator for OCR A Level

Pseudocode, Python, VB.NET Quick Reference for GCSE Computer Science

Pseudocode, Python, VB.NET Quick Reference
Pseudocode, Python, VB.NET Quick Reference

To help staff and students quickly find useful code snippets in VB.NET, Python or pseudocode (for GCSE Computer Science with OCR, AQA, Edexcel or Eduqas) I’ve been putting together this website.

It aims to be a pseudocode, Python, VB.NET quick reference guide so you can quickly find definitions of key terms, a simple explanation of how key programming concepts work alongside code snippets that you can adapt and re-use as you learn.

VB.NET and Python are both programming languages designed to be understood and followed by computers. Pseudocode is not a programming language: it’s written to be understood by humans so that they can turn it into any programming language.

In the UK, each exam board has published a document saying how they’ll use pseudocode to describe algorithms in their exams. The whole idea of syntax (a set of rules) for pseudocode is silly – it’s not designed to be a programming language that is run by a computer. With this in mind, all exam boards state that you don’t have to follow the syntax for ‘their’ version of pseudocode when you write out your own algorithms, but you should be able to understand their version of pseudocode when reading an algorithm in an exam.

The idea is to give a really quick at-a-glance guide to explain some of the key concepts of programming that you need for GCSE Computer Science, alongside code snippets in Python and / or VB.NET as well as pseudocode for whichever exam board your school is using.

This searchable reference guide is designed for teachers and students preparing either for a Non-Examined-Assessment (NEA) or revising for a theory exam.

Please note:

Students are not allowed to access the Internet and are not allowed to have access to code snippets matched to pseudocode like this during their actual NEA sessions. This resource is designed for students to access for support outside of those NEA sessions.

Code snippets are split into 8 categories:

I hope they’re useful. Let me know if you spot a mistake or think of something that’s missing that you’d find useful.

Continue ReadingPseudocode, Python, VB.NET Quick Reference for GCSE Computer Science