Yes, we can (understand a computer deeply)
Many students leave secondary school after completing computing courses of various flavours but would display a mystified look if asked to explain how a computer actually works. Having participated in deliberations for various draft computing syllabus discussions over the years, I am astonished at how little emphasis or interest this receives from teachers of computing and curriculum designers. Perhaps this is because they themselves have never truly understood the processes involved.
A deep-seated human desire to understand
Yet when I conduct lessons with students, explaining the various components of the CPU and the way in which they work together, explain logic gates, build and test corresponding logic circuits and ensure they truly understand binary numbers, I discover they are deeply appreciative of the effort and express surprise that it wasn’t explained to them before. There is a deep-seated and very human desire in each of us to understand. Students seem to acquire a conviction that computers are so complex, it is pointless to attempt to really understand any of this. The extent of their understanding appears to be that computers use binary code which they hold in millions of tiny transistor gates and manipulate to produce output. That’s as far as it goes.
A paper computer by IBM
The first time I addressed this issue in my teaching was back in 1994 when I constructed a ‘paper computer’ using a backboard and a paper flap which pushed through slots to indicate how the various registers filled and manipulated data and addresses. I was inspired by a kit IBM once offered through the press and which I had long since lost - even IBM media enquiries in the US could not locate any sign of it. I scripted a ‘machine cycle drama’ to accompany it, where students filled various roles and read to the class the action being performed at each step of adding two integers 2 and 3 together.
David Ecks' book
Later I encountered a most wondrous book by David Ecks “The Most Complex Machine” (recommended!) with accompanying programs called xTuring, xLogic, xSort, xSearch and most wonderfully xComputer. This latter had its own assembly language and a GUI which bringing it all to life. It was now possible for me to simulate the reality of the cycle step by step on a computer screen. For years I could not understand why more attention had not been given to the machine cycle/ fetch execute cycle and why no one seemed to have invested in creating a genuine simulator to allow students to explore and appreciate it all.
Meeting the B4 Computer Processor
Quite by accident this year I came across Karsten Schulz's B4 and immediately ordered one. Here was the interactive modular CPU exploratory tool I wish I had years ago! Although extremely versatile and accompanied by a manual with many different explorations, I embraced my regular "go-to” for my students, to illustrate the way each component of a CPU works together in the simple addition of two integers. I was excited enough to take it along when I recently delivered a workshop of ideas for teachers at the 2018 ACCE Conference in Sydney. My delight when we I met its inventor at this Conference was matched by his delight as we shared our mutual conviction that computing students really do want to understand how computers work…and not just in a half-baked way. Really understand!
About the author:
David Grover has been Head Teacher of Computing at Chatswood High School, New South Wales and is the author of a number of texts and resources in secondary computing.