GCSE Computer Science - Reducing the Load
Can we reframe the GCSE content to make it easier to deliver?
I recently saw an on-line discussion about whether there was an issue in education upon which we all agreed, and someone suggested it might be that there's too much content in GCSEs. It wasn't a discussion in a Computing forum, but it's something that's often said about GCSE Computer Science.
I actually find lessons getting a bit repetitive after Christmas in year 11, so I started to think about why some people think that there's too much content in the GCSE and some people think that there's too little. Is there a way to reframe the way we think about the specification and reduce the load of delivering it?
Two key things that can help you to reduce the size of the task are:
- refine your KS3 course to cover the National Curriculum and signpost GCSE content
- take a top down approach to the GCSE content and "prioritise connections" rather than seeing the specification as 120-odd separate things to cover
Key Stage 3
I created our KS3 scheme of work before I'd seen a GCSE specification. As soon as Michael Gove announced the demise of ICT, I was off - even before the draft Computing curriculum appeared.
When I first saw a GCSE Computing (as it was called back then) specification, I thought it must be missing some pages - it didn't really contain much that wasn't in KS3.
Most of our students take the OCR GCSE, so I'm going to focus mainly on that, but the GCSEs from other boards are pretty similar. The following topics from OCR's J277 specification are explicitly mentioned in the KS3 National Curriculum:
- the fetch-execute cycle
- types of storage
- the concept of bits
- converting between binary and denary
- binary addition
- representation of text, images and sound
- security threats and vulnerabilities
- types of software
- ethical, legal, cultural issues
- abstraction
- algorithmic thinking
- searching and sorting algorithms
- programming constructs
- data structures
- functions and procedures
- Boolean logic: AND, OR and NOT
I think you could also make a case for the following things being implied by the National Curriculum:
- embedded systems
- units for storage, e.g. bytes
- binary shifts
- testing programs (as part of "developing" them)
You can also deliver KS3 topics in such as way that the GCSE topics are just an extension, e.g. if you teach a more generalised approach to number bases, focussing on place value and similarities to denary, then hexadecimal is just "the same but with 16".
Even if you leave out some detail at KS3, such as metadata in audio and image files, there'll still be less to do in years 10 and 11 than if you were starting from scratch.
So what does that leave to cover for the GCSE? If you take a bottom-up approach and look at individual points in the specification then your list will look something like this:
- naming of CPU components and registers
- impact of clock speed, cache size and number of cores
- virtual memory
- storage technologies - optical, magnetic, solid state
- calculation of data capacity requirements
- hexadecimal
- metadata
- impact of bit-depth/sample size
- networking detail - IP/MAC addresses, protocols and layers
- more detailed understanding of legislation, e.g. names of acts
- flowcharts
- SQL
- defensive design
- compilers and interpreters
- features of IDEs
That's not an awful lot to cover in two years (yet alone three).
Prioritise Connections
Studies show that the most successful students in mathematics are those that see maths as a complete "system", rather than as a series of individual topics to me mastered for their own sake. If you take a "bottom-up" approach of reading through the specification it might well look like there's loads of content in a GCSE. Last time I counted there were 120 points in the OCR course. However, if you take a "top-down" view, you'll see that there's a smaller number of common themes running through those points.
I touched on the idea of "prioritising connections" in a previous blog, Less Is More.
I've since refined my thinking and, on reflection, there might only be three fundamental ideas that you need to understand in relation to GCSE Computer Science concepts:
- representation
- combinations
- algorithms
Even if these don't cover the entire GCSE, they certainly cover the vast majority of it - the rest is mainly declarative knowledge (i.e. facts to learn) or not really Computer Science.
Representation
I've said before that representation links the whole of computing. It's probably the most important idea in Computer Science at this level because it's fundamental to understanding how storage and transmission works, and it demystifies the processing of data - how can you manipulate an image if you don't know how an image is stored?
Understanding representation is about appreciating that to be able to store a new type of information in a file, or to input, process or output it, we need to find something that can be measured and stored as a number.
We can apply these ideas to things that aren't in the course. Earlier in the year my wife was reading the newspaper and announced "There's a new type of screen that allows you to taste what it's displaying!" After hoping that it was a personal device, my second thought was "Does it work by generating combinations of sweet, sour, bitter, salty and umami?" "Yes", she said, "how did you know?" Well, that's just representation - it's the same idea as representing colours by mixing red, green and blue.
We could even expand this topic slightly, looking at things such as "truthiness" (i.e. alternative ways of representing True and False).
Combinations
In the Less Is More blog I described how I'd realised that three topics I'd taught in the same week were actually just the same idea in different contexts - colour depth, the number of rows required in a truth table, and the number of addresses that you can specify with MARs of different sizes.
If students are familiar with the idea of sample spaces from GCSE maths - e.g. how many outcomes there are if you roll one die and flip one coin - then all of these ideas from Computing are essentially the same:
- the number of values (and maximum value) that can be stored in n bits
- colour depth in images
- bit depth/sample size in sound recordings
- the size of text, image and audio files
- the need to move from IPv4 to IPv6
- addressing memory with different sizes of MAR
- the number of rows in a truth table
- brute force (as both a security attack and way of finding a solution)
- password strength
- nested loops
For GCSE students, I combined these into the Combinations presentation.
Algorithms
You can describe key sorting and searching algorithms to students, and get them to practise the processes. I've created "games" for bubble, insertion and merge sorts, and also the binary search. These are really just things that you can learn by rote.
Programming skills, on the other hand, require a bit more work. There's no substitute for practice. We have a dedicated programming lesson every week, in which we undertake a new practice task each lesson, discussing alternative approaches and issues such as testing and efficiency. We also often use programming (or even spreadsheets) to reinforce the theory content, e.g. to convert between number bases. We can challenge the keener students and maintain their interest by showing them techniques such as object-oriented programming and recursion.
The practice tasks we use are probably more varied, and at a slightly higher level, than the questions that appear on GCSE programming papers, but it doesn't hurt to overlearn. In recent years many of our students have performed better on the programming paper than on the theory paper, which seems to be unusual for OCR candidates.
Obviously we have to teach everything in the GCSE specification, but reframing the content into bigger themes by combining, rather than splitting, topics, could be a good place to make it seem less daunting.
If you'd rather watch some of these ideas as a video then I've also made a YouTube playlist on prioritising connections.
This blog was originally written in September 2024.