How I'd Update the GCSE in Computer Science
This is how I'd improve the GCSE in Computer Science - why not produce your own list?
It's a common question in Computing - how would you change the curriculum? There's recently been some suggestion that there should be a new GCSE, called Computing, which is more similar to the KS3 National Curriculum. A common criticism is that the current GCSE is not "relevant" and doesn't contain enough ICT, but I would argue that it might be better to go the other way - that making it further removed from the computer would make it more relevant.
Overview
My view is that school is for education, rather than vocational training or exam preparation, and no-one has ever suggested that students will need knowledge of polders in the Zuider Zee or the Cold War in their future employment. Equally, not everyone uses a "standard" set of applications (e.g. word processing, spreadsheet and presentation software) in their work. Not everyone requires knowledge of the fetch-execute cycle in their work either, but most people might need to sort, search and organise things efficiently in a variety of contexts.
I'd aim to make it more obvious that a GCSE in Computer Science is not just preparation for working in the software industry, but is about being efficient and organised in your approach to "life", with examples of how computer science approaches are used elsewhere (as we used to do with "ICT in Medicine", "ICT in Education", etc., in the old ICT GCSE).
Questions in GCSE Maths, for example, attempt to link abstract concepts to "real life" scenarios, using recipes, special offers and school trips. Could we not do the same with Computer Science? John needs to sort the books in the library, but how is he going to do it without getting them all off the shelves?
Not everyone will use everything from the GCSE - just as not everyone uses all of maths - but you don't know what you'll need or when. A common question in Maths lessons is apparently "When will I need algebra?", even though it's something that people use all of the time, without realising - e.g. to compare deals in the supermarket.
We need a more coherent, more "relevant" GCSE that moves students on from KS3. In many ways they are currently standing still - programming, representation, binary and Booolean logic are all covered at KS3, for example - and in some ways they're moving backwards because students are required to use two programming languages at KS3 and only one for GCSE. I've always thought that it was better to master one language, but some exposure to other languages - especially ones that include things like arrays - wouldn't hurt.
I'd say that there are three big areas in the current GCSE:
- representation
- maths for computing (including permutations and combinations)
- algorithms and programming
I would keep and expand these and focus on links between them, so although my proposal might look like more content, it could be fewer explicit concepts.
What I'd Remove
Each generation has its share of declarative knowledge that is neither useful nor interesting. For my cohort in the 80s it was the relative merits of daisy-wheel and chain printers.
I think that, for current students, it's still mostly hardware detail:
- routers and switches
- IP and MAC addresses
- name of registers
- the relative merits of different amounts of cache
- the distinction between ROM and secondary storage (which is possibly less clear in mobile devices with "firmware")
- differentiating LANs and WANs
- protocols and layers
- utility software (with which you could become familiar by using it)
I'd make the point that GCSEs are for the flavour of a subject and A level is for the detail. A more important point is that just because something isn't in the specification, it doesn't mean that you can't teach it anyway.
What I'd Add or Expand
I'd rearrange the remaining content into themes as described above, i.e. representation, mathematical logic and algorithms/programming.
In order to make it clearer that computer science isn't only about computers, but thinking about processes so that we can get computers to do them, I would expand the current sections and emphasise connections between them to make their relevance clearer.
Topic | To Include... |
Representation and Storage |
|
Maths for Computing |
|
Algorithms and Programming |
|
This blog was originally written in October 2024.