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___ ___ ___ ___ ___ ___ ___ ___ = __