Posts tagged interactive learning

Posted 6 months ago

Count on it

I want to write books that teach kids how computers work at their most fundamental level.

Perhaps the most fundamental concept in computing is how integers are represented and used as a code for the processor. Before somebody can understand that they need to be familiar with the concept of numerical place value in binary. Generally K-12 curricula don’t convey enough about why binary (and hexadecimal) are so useful and fundamental to our digital world. That’s why I have a plan to improve how kids are educated about numbers.

Pretend you’re a young child who doesn’t yet understand much about numbers. Now imagine you’re sitting at a desk. A rectangular area on the desk’s surface in front of you and you see a pile of blocks outside the taped area. You also notice some speakers and a monitor which prominently displays 0000.

You move several of the smallest blocks into the taped area. Suddenly the monitor changes to 0004 and you hear the speakers say “four”.

Surprised by the change you decide to move the blocks back out of the taped area.

“Wow, it’s back to 0000 again! And it said ‘zero’.”

You add the blocks you just removed. In response the monitor goes back to 0004 and you again hear “four”.

You repeat the process a few times and decide the monitor and speakers reflect something about the blocks inside the taped area. But what exactly?

The taped area has no blocks and 0000 illuminates from the monitor. Unsure what to think you decide to move small blocks into the taped area one at a time.

0001 (one)
0002 (two)
0003 (three)
0004 (four)

Your memory stirs. “Oh, that’s the one I saw before.”

0005 (five)

You recall your parents saying the same words as they touch each of your fingers.

0006 (six)

“That symbol changes every time I move a block. Will it change if I take away some blocks?”

0005 (five)

“Five, yeah, I just saw that one!”

0004 (four)

“I remember four too.”

After more experimentation it would be clear that these symbols and sounds map to the real world concept of quantity. Even better, the relationship between the three is continuously reinforced.

Now suppose all the blocks are taken away and replaced with rods.

0040 (forty)
0000 (zero)
0040 (forty)
0000 (zero)
0010 (ten)
0020 (twenty)
0030 (thirty)
0040 (forty)
0050 (fifty)
0060 (sixty)
0050 (fifty)
0040 (forty)

Doing the same thing with the rods results in different sounds, but the symbol changes are remarkably similar. In fact, they’re the same changes except that the position of the symbol that changes is different.

You’re given a rod’s length of unitary blocks back. Soon you realize that either adding all those unitary blocks or adding a single rod results in the same feedback from the monitor and speakers. From what you can tell this is true regardless of how many rods are already in the taped area. Eventually you conclude that a rod and ten unitary blocks represent the same quantity.

Place value in the base 10 numbers would become intuitive with enough experimentation. This system is flexible enough to work with other bases, including binary.

Going from that point to explaining how a 32-bit ‘word’ gets processed by a CPU isn’t that hard.