Skip navigation

Monthly Archives: January 2009

As usual, other projects are pulling my time away from working on the MMO version of Subsume.  What I can take a little time to discuss right now is why I think there is educational potential in the concepts the game explores.  In particular, the use of binary to simplify things.

Many people find math to be a difficult subject.  Part of the reason, I think, is that the common decimal (base 10) system is just outside the range of normal short-term memory.  You can even see this reflected in some of the most ancient tools used for math, like the abacus, where the number of beads used in a line for “working memory” was within the lower range of 7±2.  So while we can use our hands to count to ten, it seems like our minds would prefer to deal with smaller units.

Enter binary, where the units can’t even get any smaller.  You either have a unit (1) or you don’t (0).  From that simple ability to draw a boundary — between up/down, left/right, in/out, yes/no, true/false, on/off — comes the incredible calculating capabilities of modern computers.  Is there a way to bring that simplicity into the classroom, and at the same time bring children who might otherwise have problem with decimal math into the modern digital age?

Let’s start with a simple thought experiment.

1 → 2 → 3 → 4 → 5 → 6 → 7 → 8 → 9 → 10

If you have a 2-4 year old child, they know how to count to ten like that.  What is also interesting is that such a sequence is completely arbitrary.  That is to say, even a younger child could “count” if they were provided a chart with any sequence of symbols.

Δ → Θ → Π → Ψ → ∀ → ∞ → ♠ → ♣ → ♥ → ♦

All that is important is that they can determine what comes “next”, and that is all a computer has to do, too.  I could ask you to try to memorize that symbol sequence, the same way a child is asked to count from 1 to 10, but part of this thought experiment is to show you that math can be done by simply using the chart itself.

OK, so the chart lets us count from Δ to ♦, but how does that yield simple math, like addition and subtraction?  Because a sequence implicitly represents a difference of one, simply using a chart to refer to another chart allows arithemetic!  For example, what is Ψ + Θ?

Δ → Θ → Π → Ψ → ∀ → ∞ → ♠ → ♣ → ♥ → ♦
  Δ → Θ → Π → Ψ → ∀ → ∞ → ♠ → ♣ → ♥ → ♦

We have, in effect, created a very simple slide rule that we can use to do a calculation, without knowing any math at all, by following a simple procedure:

Move the second chart to start after the first symbol given, then find the second symbol on it, and the symbol that matches it on the first chart is the answer.

So our solution is ∞.  In the same way, a chart going in the reverse would allow basic subtraction.  It’s not an earth-shattering concept, but as a teaching tool it gives children a more concrete feel for math than does rote memorization.

Other than there being a chart one/two listing a previous/next value that you refer back/forth to, there is another dimension that binary can make useful.  To be more straightforward, lets get back to using numbers instead of symbols for this next thought experiment.

Let’s say I have two bags full of numbered blocks.  From the first bag I pull two blocks: 4 and 0.  From the second bag I pull four blocks: 2, 1, 5, and 0.  Now I ask you to follow this simple procedure:

Put all the blocks in one pile.  If there are two blocks that have the same number, remove both and replace them with a single block that has the next higher number on it.  Repeat this until all the blocks have different numbers.

So for the particular example given, and I’ll sort and group the digits to make it easier to follow, it would work out thusly:

5421(00) → 542(11) → 54(22) → 543

Did that feel like math to you?  Probably not, but what actually happened is that you worked out the solution to 17 + 39 using binary!  The block’s digits all represent the powers of 2 that make up the numbers (e.g., 17 = 2^4 + 2^0).  So the 543 result corresponds to the traditional binary representation 111000, which is 56.

While that might seem a little confusing to you if you had a traditional education in decimal math, it was in reality something so simple a computer can do it billions of times a second.  Everything was done by directly manipulating the blocks you had immediately in front of you (and the sequence chart, if you happen to be unable to count) instead of dealing with abstractions.

Now it gets really heady: multiplication.  Let’s take the same numbers used above, so we want to calculate 17 * 39.  Using binary we can fairly easily implement it on top of the addition we just learned above by first following this simple procedure:

For each block from the first bag, add its number to each block from the second bag, and place a block numbered with that sum in the pile.  Then follow the same pile procedure as before.

Let’s step through that for our example.  We start with an empty pile and the two bag’s blocks

(4, 0) * (5, 2, 1, 0)

for the first block additions, we get

4 + (5, 2, 1,0) → 9, 6, 5, 4

and the second block results in

0 + (5, 2, 1, 0) → 5, 2, 1, 0

making the full pile

9, 6, 5, 4, 5, 2, 1, 0

Sorting and grouping like we did before gives us:

96(55)4210 → 9(66)4210 → 974210 = 1010010111 = 663

Again, that may seem complex at first blush, but is is something a child could easily accomplish by direct manipulation of blocks.  While it might not be practical for everyday calculations, it is an interesting alternative to forgettable multiplication tables.  And who knows?  Maybe a child struggling with decimal math is a genius in binary.