One of the more interesting aspects of working on the Cambridge Maths framework is the opportunity to fall down the rabbit hole and see where it leads. The "Quantity" chapter in "On the Shoulders of Giants" threw up a reference to "Computing & Mathematics", a book published in 1984. Ellen, our fabulous research officer, quickly sourced a copy from its home in the British Library. Scanning the slightly yellowed pages, it was clear that conversation about the impact of computing on the study of mathematics has barely moved on since the early 80s. Many of our discussions at Cambridge Maths concern how the affordances of technology in support of conceptual understanding can be balanced with the need to ensure procedural fluency in mathematical techniques. It is absolutely vital that our framework encapsulates the advantages that the "black box" of software can provide, without throwing the numerical baby out with the bathwater.
Back to the rabbit hole, a paragraph in "Computing and Mathematics" identified a course developed in the late 1960s by the "Colorado Schools Computing Science Group" entitled "Second Course in Algebra and Trigonometry with Computer Programming", which can now be found on the web here:
https://archive.org/details/ERIC_ED041746
The course begins with very basic procedural design using flowcharts, introduces some basic BASIC commands, and proceeds to develop programs exploring simple ideas such as subsets, sequences and tests for divisibility.
The language used is now obsolete and many of the later mathematical ideas explored have fallen out of favour in modern curricula, but the core of the idea contained within this course seems more relevant now than ever. Recent government reform has seen a big push towards developing coding ability in students. The adoption of the Python language by many educational providers and its inclusion in computing GCSE, and even some mathematics A-level units, mean that in the next few years students will be better coders than ever before.
As a teacher, I often fiddled around the edges of coding in mathematics, teaching a series of lessons to KS3 students using "Gamemaker" to produce mini games such as "shoot the prime number". These were always a lot of fun, but suffered from the barrier that in order to explore the mathematical ideas, the programming and software had to be taught from scratch (there is an accidental pun in this sentence for those who know!). In an era where students are gaining experience in the use of Python, now seems like an ideal time to revisit the concept of a course in mathematics using programming, in which ICT departments and maths departments (often already sharing staff) can work together to deliver lessons in which the coding challenges set in ICT are given purpose and reinforce mathematical ideas, and mathematics exercises can explore structural concepts either by writing code or by translating examples of code into mathematical processes.
The rabbit hole beckoned once more - my curiosity was piqued and I decided to explore how easy it would be to create a program that would find the Highest Common Factor of two numbers. The slight fly in the ointment was that I had absolutely no idea how to use Python, nor even how to get started. A brief google located a beginner's guide at https://automatetheboringstuff.com/ and after half an hour of scan reading, trial and error, and absolutely no swearing at all, I managed to produce the following code.
Amazingly and very satisfyingly - it works! It got me thinking, how much of the maths that we cover with students at KS3 and KS4 could be explored using this approach? And if a comprehensive guide existed, would it be a useful and beneficial tool in a teacher's toolkit?