In this activity, youβll get to know some of your classmates in the first portion of the worksheet. You will then start to explore the idea of error-correcting codes in the second portion.
In your group of 3 or 4 students, assign the following roles. If you have fewer than 4 students in your group, one person can be both the Timekeeper and Spokesperson.
Facilitator. The facilitatorβs role is to get the group started, keep it on task, and involve all members in discussion.
Scribe. The scribeβs role is to keep a record of what the group does, both for the group members to take home for notes and also for the spokesperson to reference when sharing with the wider class.
Each person in your group should share the following about themselves: name they go by, major, year in school, and something they are good at doing. Record their name and something they are good at below.
Now discuss as a group: how did you each get good at the thing you mentioned? Write down some of your groupβs ideas below. Pay attention to similarities and differences in your stories.
In the next part of this activity, you will begin to explore the idea of error-correcting codes. An error-correcting code is a way of encoding information so that if some of it gets lost or changed, you can still recover the original information. To get started, consider the following simple example. Suppose you want to send a message consisting of four bits (0s and 1s) to a friend.
Can you come up with a scheme to encode the message so that if any one of the bits gets flipped (from 0 to 1 or from 1 to 0) during transmission, your friend can still figure out what the original four bits were? Most likely, you will need to add some extra bits to the message to make this work. Write down your encoding scheme below.
Try out your scheme! Have one person in your group choose a random 4-bit message and encode it using your scheme. Then, have another person in your group flip one of the bits in the encoded message (you can choose which bit to flip). Finally, have a third person in your group try to decode the corrupted message and figure out what the original 4-bit message was. Were they able to do it? If so, how? If not, why not?
Think about the efficiency of your code. How many extra bits did you have to add to the original 4-bit message in order to be able to correct any single-bit error? Do you think itβs possible to come up with a more efficient code that uses fewer extra bits?
Can you come up with a scheme using less extra bits if you only want to be able to detect (but not necessarily correct) if one of the bits gets flipped during transmission? Write down your encoding scheme below.
Here is a more complicated scheme. To send a 4-bit message, you first create three additional bits as follows:
The 5th bit is a parity bit for the last three bits (it is 0 if there are an even number of 1s among the last three bits, and 1 if there are an odd number of 1s).
Then you send all seven bits to your friend. Try playing around with various 4-bit messages and see how this scheme works. Do you think this scheme will always allow your friend to recover the original 4-bit message if any one of the seven bits gets flipped during transmission? Why or why not?