Activities/Abacus

From Sugar Labs
Jump to navigation Jump to search

Abacus.jpg

Where to get Abacus

Activity | Source

About Abacus

Abacus-icon.png


Abacus lets the learner explore different representations of numbers using different mechanical counting systems developed by the ancient Romans and Chinese. There are several different variants available for exploration: a suanpan, the traditional Chinese abacus with 2 beads on top and 5 beads below; a soroban, the traditional Japanese abacus with 1 bead on top and 4 beads below; the schety, the traditional Russian abacus, with 10 beads per column, with the exception of one column with just 4 beads used for counting in fourths; and the nepohualtzintzin, a Mayan abacus, 3 beads on top and 4 beads below (base 20). There is also a binary abacus, a hexadecimal abacus, and an abacus that lets you calculate with common fractions: 1/2, 1/3, 1/4, 1/5, 1/6, 1/8, 1/9, 1/10, and 1/12. As of Version 9, there is a customization toolbar that lets you design your own abacus.

The toolbars

Abacus-main-toolbar.png

From left to right:

  • project-toolbar button
  • saupan button (Chinese abacus)
  • soroban button (Japanese abacus)
  • schety button (Russian abacus)
  • nepohualtzintzin button (Mayan abacus)
  • binary button (binary abacus)
  • hexadecimal button (hexadecimal abacus)
  • fraction button (fraction abacus)
  • customization-toolbar button
  • stop button not shown
Abacus-custom-toolbar.png

From left to right:

  • select the number of rods
  • select the number of beads on the top of the frame
  • select the number of beads on the bottom of the frame
  • select the multiplication factor of top beads (e.g., on the Chinese abacus, each top bead counts as 5× the value of a bottom bead on the same rod)
  • select the base to determine the value of bottom beads across rods; this is 10 on most conventional abacuses, but 20 on the Mayan abacus, 16 on the hexadecimal abacus, and 2 on the binary abacus.
  • new-abacus button (you must push this button to activate the selections you've made)

How to use an abacus

Clear the abacus

Before you start an arithmetic operation, you need to "clear" the abacus. The upper beads should be positioned against the top of the frame and the lower beads should be positioned against the bottom of the frame. This is the default position for the abacus when you launch the activity. (Note that some of the abacuses (e.g., the schety) do not have any upper beads. In such cases, all of the beads should start in the down position.)

Reading the abacus

In each column, the bottom beads represent 1s and the top beads represent 5s. (The exception is the column in the schety with only 4 beads. These are 1/4 each.) So for each bead you raise up from the bottom in a column add 1 and for each bead you lower from the top in the same column, add 5.

The columns themselves represent decimal positions from right to left, e.g., 1s, 10s, 100s, 1000s, etc. (There are two exceptions: (1) the nepohualtzintzin uses base 20, e.g., 1s, 20s, 400s, 8000s, etc.; and (2) on the schety, the beads to the right of the column with just four beads are 0.1s, 0.01s, 0.001s, and 0.0001s.)

The current value is always displayed on the frame. Experiment and you will quickly learn to write and read numbers.

Examples: In the gallery below, several simple examples are shown. In the gallery of images above, the number 54321 is shown on each of the different abaci.

Note: The display always assumes a fixed unit column, but you can override this choice.

Addition

To add, simply move in more beads to represent the number you are adding. There are two rules to follow: (1) whenever you have a total of 5 units or more on the bottom of a column, cancel out the 5 by sliding the beads back down and add a five to to the top; and (2) whenever you have a total of 10 units or more in a column, cancel out the 10 and add one unit to the column immediately to the left. (With the nepohualtzintzin, you work with 20 rather than 10.)

Example: 4+3+5+19+24=55

Subtraction

Subtraction is the inverse of addition. Move out beads that correspond to the number you are subtracting. You can "borrow" from the column immediately to the left: subtracting one unit and adding 10 to the current column.

Example: 26–2–4–6–10=4

Multiplication

There are several strategies for doing multiplication on an abacus. In the method used in the example below, the multiplier is stored on the far left of the abacus and the multiplicand is offset to the left by the number of digits in the multiplier. The red indicator is used to help keep track of where we are in the process.

Division

Simple division (by a single-digit number) is the inverse of multiplication. In the example below, the dividend is put on the left (leaving one column vacant for the quotient) and the divisor on the right.


TODO: Add instructions for long division.

Fractions

The fraction abacus lets you add and subtract common fractions: 1/2, 1/3, 1/4, 1/5, 1/6, 1/8, 1/9, 1/10, and 1/12, The fractional value is determined by the number of black beads on a rod, e.g., to work with thirds, use the rod with three beads, to work with fifths, use the rod with five beads.

The rods with white beads are whole numbers in base 10; from left to right 100000, 10000, 1000, 100, 10, and 1.

Modifying Abacus

Turtle Art is under the MIT license. You are free to use it and learn with it. You are also encourage to modify it to suit your needs or just for a further opportunity to learn.

Much of the motivation behind the Version 0.83 refactoring of the code was to make it easier for you to make changes. Most changes can be confined to two modules: taconstants.py and talogo.py. The former defines the blocks and palettes; the latter defines what code is executed by a block.

taconstants.py contains the constants that by-in-large determine the behavior of Turtle Art. Notably, the block palettes are defined below. If you want to add a new block to Turtle Art, it is generally a matter of modifying some tables below and then adding the primitive to talogo.py. For example, if we want to add a new turtle command, 'uturn', we'd make the following changes:

(1) We'd add 'uturn' to the PALETTES list of lists:

PALETTES = [['forward', 'back', 'clean', 'left', 'right', 'show', 
             'seth', 'setxy', 'heading', 'xcor', 'ycor', 'setscale',
             'arc', 'scale', 'left', 'top', 'right', 'bottom', 'uturn'],
            ['penup','pendown', 'setpensize', 'fillscreen', 'pensize',...

(2) Then we'd add it to one of the block-style definitions. Since it takes no arguments, we'd add it here:

BASIC_STYLE = ['clean', 'penup', 'pendown', 'stack1', 'stack2', 'vspace',
   'hideblocks', 'showblocks', 'clearheap', 'printheap', 'kbinput', 'uturn']

(3) Then we give it a name (Note the syntax _('string to be translated') used by the language-internationalization system; also note that the name is an array, as some blocks contain multiple strings.):

BLOCK_NAMES = {
...
   'uturn':[_('u-turn')],
...
             }

(4) and a help-menu entry:

HELP_STRINGS = {
...
   'uturn':_('change the heading of the turtle 180 degrees'),
...
              }

(5) Next, we need to define it as a primitive for the Logo command parser (generally just the same name):

Discussion

It would be interesting to discuss various lesson plans for using an abacus here. Also, it would be interesting to explore the use of color. What if, for example, the more recent a bead is moved, the more colorful it is? (implemented in v5). This would perhaps make it more clear what the order of operations is on a calculation. Also, what it we extend the idea of the schety to include more fractional components, e.g., 3rd, 5ths, 6ths, etc. and perhaps have a mode where we can automate the consolidation of the fractional parts (implemented in v6).

Might be good to have some of the above information in Help, eg addition, subtraction, multiplication division. Just the text, no graphics?

It was proposed in IRC last night that a fun collaborative mode might be to have a number randomly generated and each sharer work independently to post it on the abacus of their choice first. There could be a tally of beads awarded for each correct answer. Maybe something to add to v10.

I wonder, should the beads on the fraction abacus vary in size? The halves should be five-bead heights each, for example?

As of v10, the beads are labeled.