Generalise!

It's that time of year when people start to think about the content of GCSE courses. The exams are taking place and we're seeing which topics the students find difficult. In addition, the DfE has just opened its consultation on proposed changes to the GCSE content.

The main proposal is that "visual" programming languages should be allowed (which seems strange when text-based languages are required at KS3 and A level). If I were to make a change it would be to remove topics that mostly rely on declarative knowledge - e.g. the difference between routers and switches, the names of registers, etc. - as GCSE is about giving students a flavour of a subject, not diving into the minutiae. I think that the GCSE could be slightly broader with a more generalised approach to the maths, particularly the approach to the "combination" of values and number bases.

On this year's OCR GCSE paper 1 there was a question about hexadecimal that attracted comments because it asked about the method for conversion, rather than requiring students to convert a specific value.

I've always thought it strange that students only need to know about two-digit hexadecimal numbers for GCSE, so I was moved to find out my old school notes from 1983. Here's the very first thing that I wrote about binary.

Binary Notes

On the next page it goes into octal and hexadecimal, and the first hexadecimal number I converted was 12A16. Each section started with the same explanation of the column headings as powers of the base number using x and then switched to concrete examples in the actual base.

There have been past GCSE questions containing programs that divide a number by 16 to find the first digit of a hexadecimal number and then use the remainder for the second digit. If that's the method you use, then you haven't generalised your approach to number bases. What happens if you need to convert a number that's larger than 256?

In his book Range: How Generalists Triumph in a Specialized World, David Epstein reports that:

"Psychologist Barry Schwartz demonstrated a... learned inflexibility among experienced practitioners when he gave college students a logic puzzle that involved hitting switches to turn light bulbs on and off in sequence, and that they could play over and over. It could be solved in seventy different ways, with a tiny money reward for each success. The students were not given any rules, and so had to proceed by trial and error. If a student found a solution, they repeated it over and over to get more money, even if they had no idea why it worked. Later on, new students were added, and all were now asked to discover the general rule of all solutions. Incredibly, every student who was brand-new to the puzzle discovered the rule for all seventy solutions, while only one of the students who had been getting rewarded for a single solution did. The subtitle of Schwartz's paper: 'How Not to Teach People to Discover Rules' - that is, by providing rewards for repetitive short-term success with a narrow range of solutions."

Isn't teaching students to divide a number by 16 for the first hexadecimal digit and then use the remainder for the second essentially the same as rewarding the students for finding one specific solution?

When I introduce the programming topic to my students, I suggest that they start any task with these three thoughts:

Adding octal, binary fractions and larger numbers to your scheme of work might actually make the GCSE easier for students - it would give them additional practice and application of the generalised skills of using place value and help them to develop a greater understanding.

In her research on "making connections", Lindsey Richland said that, often, "Students do not view mathematics as a system, they view it as just a set of procedures." and therefore struggle to see its uses outside the classroom.

I might therefore also add half- or full-adders and bitwise logic to the GCSE course to make the mathematics more coherent. Binary and Boolean logic are already in the specification, so bitwise logic is really just revising and merging the two, and binary addition, logic circuits and the ALU are also included, so it wouldn't really be any extra work to join those up as well.

This blog was originally written in May 2024.