The CS Unplugged handbook contains an interesting collection of computer science games, suitable for children and young people. The games are constructed for players to explore different solutions and come up with answers by themselves. After the game is played, answers are discussed in group and linked to computer science theory. Suprisingly, you don't even need a computer for these activities!
Image representation and transfer
One of the chapters, Colour by numbers, in the CS Unplugged handbook handles about image representation and links it to fax machine technology. Recently, as an introduction game in the CErrobotics project we adapted this a little bit and let the students design their own image representation and transfer protocols! The first tryout went very well!
- 11 and up, they should have had an introduction to binary numbers
Each group will need:
- two blank grids of size 20 x 16
- two pencils
- 3 to 7 kids
Ask the group who likes to draw and select these kids to draw something on the blank grid by filling the squares. These kids are the artists. Let them sit next to eachother on one side of the room. Next, ask more kids who like drawing and ask them to sit on the opposite of the room, face-to-face to the artists. These kids are the printers. Now, ask the group for assistents who should help the artists and the printers. We call them modulators and demodulators. The modulators take place behind the artists, and the demodulators take place behind the printers. Tell the rest of the kids that they are representing the transmission line. Each pair of artist/modulator and printer/demodulator should have at least two kids for passing messages. The room should look like this:
Now ask the teams to come together and tell them that they should agree on a protocol such that the content of the drawing can be passed over the transmission line from the artists/modulator to the printer/demodulator by passing numbers. It is important to tell the kids that there is one important constraint: the kids who are responsible for transmitting can only pass one integer number at the time, i.e., not spell the digits of the integer.
When all of them have found a protocol tell them to take their places (see the above sketch). Additionally, take the drawings, swap them and distribute them again to the artists/modulators. In this way, the printers/demodulators cannot just copy their own drawing.
Our first tryout with a group of 21 one kids aged between 11 and 18 year went very well. We made three groups of 7 persons as described above. In the end, one group managed to transfer the entire image without errors to the other side, while all the groups had thought successfully of a working protocol.
These are the protocols the students found in our first tryout.
Group 1 For each black dot in a row they transmitted a number from 1 to 16, in order to switch from one row to another they transmitted a 0. Group 2 This group build a number of four digits for each black dot, the first two digits encoded the column, the last two digits encode the row. Note that this group cheated a little bit because they send a zero in front if the column < 10 causing them to spell the 0 and then the three-digit number. To avoid this situation, we now clearly say that they cannot spell the digits of the integer. Group 3 Each row was represented by one number by concatenating the filled positions. This group had it very difficult because of the huge numbers they end up with. Additionally, they experienced a lot of decoding problems.
Based on the found protocols, we decided to state more clearly that they cannot spell the digits of the integer. Additionally, one might suggest to them, if they need a little bit of help, that they only should use numbers smaller than 16.
Overall conclusion, in our experience, even young students are able to come up with plausable image representation and transmission protocols!
Just as for any CS Unplugged game, the discussion afterwards is really important. As said earlier, the game can be linked to image representation, transferring data, noise, bandwith and compression. Some interesting questions that can be handled in group are:
- How would you change your protocol if the size of the grid is unknown?
- How many numbers do you need to send for a white picture, an entire black one and on average?
- How would you reduce the amount of numbers that you transmit?
- What is the effect on the drawing if a number is transmitted incorrectly?