**Codes and computers (lesson plan
for Cub Scouts)**

**Created by Lincoln Cushing, for Berkeley Cub Scout Pack 30,
1/10/2000, Binary and ACSII**

Codes are a helpful method for helping to transmit information clearly across distances. Morse code and semaphore are examples scouts are familiar with.

Morse code only requires the use of two items (or *states*) of
information, a dot and a dash. As long as we can let the receiver know
when one letter ends and another begins, the entire alphabet can be
transmitted.

Computers are also based on information that is entirely broken up
into two items of information, zeroes and ones (0 and 1). This is
called **binary**. Humans use a mathematical system called
decimal which uses “base 10”, where all numbers can be made up using 10
digits (0 through 9). Binary is “base 2”, where all numbers are
made up only using *two* digits, 0 and 1. Here’s how it’s done:

position | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 |

value | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |

Just like decimal numbers, you add digits to the left to build bigger numbers. Position and value are everything. Let's build some numbers:

The first placeholder (position 1) either has a value of 0 or 1.

The second placeholder (position 2) either has a value of 2 or 0. So, the number “10” in binary means a number with 0 in the first position and 2 in the second position, so it really represents the number “2”. To represent the number "3", you need to fill both first and second positions with value, so in binary it would be "11".

Here are the first several numbers in decimal and binary:

decimal | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |

binary | 1 | 10 | 11 | 100 | 101 | 110 | 111 | 1000 |

In computer language, binary items of information (0’s and 1’s) are
called **bits**. These are grouped into bundles of 8 to form
a **byte**. So, every ninth bit the information starts over, and
means a new letter or number, just like the spaces in Morse Code mean
the start of a new letter.

Modern data uses a coding system called ASCII (pronounced “ask-ee”), for American Standard Code for Information Interchange. ASCII uses the numbers in a byte to set up a universal language to represent letters and numbers. For example, ASCII 97 is the lower case letter “a”. ASCII 98 is “b”. This goes on up to ASCII 122, “z”.

So, if we are using a byte per letter, ASCII 97 in binary looks like 01100001; going from left to right, that’s 0 plus 64 plus 32 plus (0,0,0,0) plus 1, for a total of 97.

Here’s the lower-case alphabet in ASCII, with the binary equivalent:

a | 97 | 01100001 |

b | 98 | 01100010 |

c | 99 | 01100011 |

d | 100 | 01100100 |

e | 101 | 01100101 |

f | 102 | 01100110 |

g | 103 | 01100111 |

h | 104 | 01101000 |

i | 105 | 01101001 |

j | 106 | 01101010 |

k | 107 | 01101011 |

l | 108 | 01101100 |

m | 109 | 01101101 |

n | 110 | 01101110 |

o | 111 | 01101111 |

p | 112 | 01110000 |

q | 113 | 01110001 |

r | 114 | 01110010 |

s | 115 | 01110011 |

t | 116 | 01110100 |

u | 117 | 01110101 |

v | 118 | 01110110 |

w | 119 | 01110111 |

x | 120 | 01111000 |

y | 121 | 01111001 |

z | 122 | 01111010 |

A **space** (such as one you would use to separate words) is
represented by ASCII 32, or 00100000.

Here’s a sample word in ASCII/binary; what is it in English?

01100010 _ 01100101_01100001_01110010

**Den 3 challenge:**

1. Divide into two groups.

2. Agree on a 15-word (including spaces) sentence you want to send to a friend, and write it out in ASCII/binary.

3. When both groups done, exchange coded messages and see who can
decode the sentence first.

**TOP SECRET**

SECURITY CLEARANCE REQUIRED

1___ ___ ___ ___ ___ ___ ___ ___** = __**

2___ ___ ___ ___ ___ ___ ___ ___** = __**

3___ ___ ___ ___ ___ ___ ___ ___** = __**

4___ ___ ___ ___ ___ ___ ___ ___** = __**

5___ ___
___ ___ ___ ___ ___ ___** = __**

6___ ___
___ ___ ___ ___ ___ ___** = __**

7___ ___
___ ___ ___ ___ ___ ___** = __**

8___ ___
___ ___ ___ ___ ___ ___** = __**

9___ ___
___ ___ ___ ___ ___ ___** = __**

10___ ___ ___ ___ ___ ___ ___ ___** = __**

11___ ___ ___ ___ ___ ___ ___ ___** = __**

12___ ___ ___ ___ ___ ___ ___ ___** = __**

13___ ___ ___ ___ ___ ___ ___ ___** = __**

14___ ___ ___ ___ ___ ___ ___ ___** = __**

15___ ___ ___ ___ ___ ___ ___ ___** = __**