Recently I’ve been “teaching” to many different sorts of human specimen. Ph-D’s. Master students. High-school teachers…. And children! Which is so much fun. I put quotes around “teaching” because I’ve been learning so much from all these experiences.
Each and every kids impresses his fingers onto the screens of digital technologies. But how many of them know what hides behind the screen of their phone, tablet or device? In this laboratory we will use legoes and dominoes to build the most rudimentary of mechanical calculators.
The inspiration comes from the adding machines explained here. Dominoes can be used to construct logical gates.
First I introduce the binary representation of numbers, which is a bit tricky, for two reasons: because unfortunately we use the same two symbols, “0” and “1” as for decimal numbers, which contributes to confusion; and because the “carrying over” is done very early, and one does not appreciate that it’s exactly the same as in decimal accounting, but with less resources. So it’s a good idea to pass through another basis, so I would ask the children to think what would happen if I only had seven fingers to start with, and would count numbers by the names of the seven dwarfs Doc, Dop, Bash, Slee, Grum, Snee, Hap. You will soon find yourself with funny composite names like Bashgrumdop etc. With this intermediate passage it’s more intuitive to get to e.g. a False/True representation of binary numbers.
Second step is to understand that False/True can be different states of stuff. So, “Fallen/Standing” for a domino, or “Left/Right” for a simple lego bit.
Third, I show the children the technologies at our disposal (dominoes, legoes and marbles), and I ask them to make a project of a machine that can compute a 2-bit sum, or of several logical gates (in the pictures above you can recognize a few OR and XOR gates, and an AND gate I built myself). Though I help the children through the process, giving them some insights, it is absolutely crucial that they manage by themselves to figure out how to compose the pieces into a solution to the logical puzzle I posed them. I don’t give the kids and special recipe to follow, and they eventually found solutions I would not expect.
Fourth, I take the pieces together and explain how, in principle, by composing the technologies they have being producing, they could scale them up and obtain real computers that actually perform operations. To this end, the composability of both technologies allows for easy inferences. For example: once one has four 2-bit adders, it’s easy to compose them into an 8-bit adder. But while the resources are scaling linearly, computational ability of this thing is scaling exponentially! Which opens up the whole question what is exponential growth, and how it sustained the industry…
– – –
One thing I realized, and that could be of inspiration for a project I have in mind, is that legoes and dominoes are of crucial difference with respect to computation in several respects. The one that most interests me is that, while the lego adding machine implements a lego bit to code information, and a substantially different process signals information (the marble), the dominoes are a more uniform technology: the transport and the processing of information (through the topology of their configuration) is the exact same physical process (and it would be interesting to extend this to memory as well…). Also, while the state of a lego bit is a static state, the “falling/standing” nature of the dominoes has nothing to do about how a particular domino is up or down, but what’s happening along one line or another. On the other hand, dominoes are a tragically irreversible technology, they can only be used once (making for an extreme disposable computer), and while this might be fixed, the thermodynamic cost of this operation might be conspicuous.
Somehow, certain fundamental research in the foundations of computation is moving precisely in the direction of understanding how information transmission, processing, and storage can be made more uniform, and my personal take on this is that it can only happen if every variable is made dynamical. Then, we will have to work out with diligence what’s the thermodynamic cost of all this…