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.
Machine learning is a hot topic. It is a subset of artificial intelligence and is about teaching a computer, rather than programming it. One of the approaches in machine learning are artificial neural networks (ANNs) that mimic the function of our brains. Though much simpler than their biological counterparts, they are impressive in what they can do, especially when it comes to image processing.
I recently had a conversation with my year 8 twins about learning strategies. I tried to explain to them how their brains learn and why, therefore, breaks are important to give the brain time to 'digest' new information (aka to consolidate the molecular updates that regulate the exchange of information between the neurons). So I drew a couple of neurons on a sheet of paper, interconnected them and showed how a brain learns and thinks.
A neuron (artist impression).
I thought I could do better than this. I wanted my boys to look inside and experiment with an actual neural network. If you followed some of my earlier work with the B4 computer processor kit, you would have guessed that I am the kind of person that likes to open windows into things that are otherwise hidden. I have previous experiences with ANNs which gave me a head start. I tweaked an ANN that I made previously and created the UI to look inside.
Here is a screenshot of an experiment where the ANN has been trained and is able to recognise the letters A .. J.
A trained ANN recognises the letter B.
On the left, the eye sees a pattern in a 5x7 grid. It forwards the bits via the optical nerve to the brain that consists of three layers (input/hidden/output). On the right, a nerve cell (perceptron) fires. The network has recognised the B.
We can play with the information that the eye sees. Clicking into the grid, we can set and unset pixels. As we gradually modify the B, the ANN will be less sure about this being a B. Is it perhaps a D?
B or a D? Bit of both!
Changing the pattern one bit further towards the D, the ANN gets much more confident that this is a D.
More B than D.
So neural networks are great at dealing with information that is not quite ideal. This is often the case in the real world, especially when it comes to image processing. Imagine a self-driving car. The ANN produces a probability value, the more black a box, the more certain it is.
From the perspective of an ANN, anything is a pattern. So we let it loose on a couple of emojis:
Our ANN recognises emojis.
But what about more complex patterns? Could our simple ANN convert decimal numbers into binary? Yes, it can:
ANN recognising the number 5 and converting it into binary.
This educational ANN has three special features:
The learning process is short, animated and is entertaining to look at.
The line colours change subtly as the network learns. You can observe the network learning and the learning is in the network. Each network has its own fingerprint.
You can observe the perceptrons (nerve cells) firing as the network processes information.
The network has been programmed with different learning strategies. It can also forget information. Your students will see why revision is important and understand why they sometimes forget things they have learned (see experiments 6 and 7).
The website mycomputerbrain.net hosts the ANN. Your primary and secondary students can experiment with it. I have prepared a couple of experiments (with instructions suitable for school kids), and more might follow. Any ideas?
I think the ANN would be of interest to teachers of Digital Technologies or Biology, but generally to anyone who teachers growth mindset and learning techniques.
Enjoy. Let me know how you go via the contact form, or just on Twitter. Twitter @DigTecInstitute #ai
Karsten
I have been teaching the WACE Computer Science course for many years, and each year I have struggled to come up with a way to teach the Systems Architecture component that is engaging for the students. Yes, I have lots of old components like motherboards, RAM chips etc. that the students can touch and see, but ultimately when it comes to them understanding processes like the Fetch-Execute cycle and how the CPU interacts with RAM, the best I have been able to do is find some animations on the internet to make it more interesting.
Well, that was before I found the B4’s! I first encountered them at the 2017 ECAWA Conference and I was absolutely blown away not only at the simplicity of the design, but by the genius of how it brings alive to the students’ concepts that were dull and boring before.
For the Year 11 students, the B4 makes learning Binary numbers a breeze. For the Year 12 students, they now GET what really happens inside their computer, because they can see it happening in front of them!
I started the lesson with instructions about connecting the different wires to the modules, then stepped the students through the first couple of experiments from the handbook. Once they had gained confidence in using the B4’s, I let them loose to experiment by themselves. I have never had such a quiet classroom! – the students were all fully engaged in what they were doing and didn’t want to stop when the lesson time ended.
For the next lesson I got the students to read back through the Systems Architecture notes, we discussed different things that the students encountered when they were experimenting with the B4’s and for the few things that they still were unsure of, we got the B4 kits out again and went through the concepts again.
Feedback from the students has been very positive – they love the fact that they now have something concrete to hang their learning on. We are about to start the Programming unit of the course, and I can’t wait to incorporate the B4’s into my programming lessons.