Lets bring “Computer Science Unplugged” back online!
Who said computer science was an ass-to-bench-study? Who said it would involve a computer? CS Unplugged is contrary to that and has been that since 1998.
Basically CS Unplugged seeks to teach how computers work? How do they think? And how can we make them go faster and better? This is done through activities that involves movement and letting students try it on them selves – becoming computers. CS Unplugged describes the use of computers in education more as a distraction than a useful tool.
The activities are mathematic-based and communication-based. The only thing that I miss about CS Unplugged, is the lack of coherence with everyday technology. In my opinion, an unplugged activity should be followed up by letting the students try the “plugged” technology. This would be a great way to help them connect the pieces and understand the complex systems in a real context.
Therefore I have selected a bunch of CS Unplugged activities and provided them with the best equivalent modern technologies.
Computer Science Unplugged is licensed under Creative Commons, meaning that everything is open and free for download and contribution. That’s what 2.0 and computer science is all about.
Lets start out with this good CS Unplugged activity: Programming Languages. This is about trying to communicate and navigate as literal as computer programming languages. From CS Unplugged instructionbook:
Computers follow instructions—millions of instructions every second. To tell a computer what to do, all you have to do is give it the right instructions. But that’s not as easy as it sounds!
When we are given instructions we use common sense to interpret what is meant. If someone says “go through that door,” they don’t mean to actually smash through the door—they mean go through the doorway, if necessary opening the door first! Computers are different. Indeed, when they are attached to mobile robots you need to be careful to take safety precautions to avoid them causing damage and danger by interpreting instructions literally—like trying to go through doors. Dealing with something that obeys instructions exactly, without “thinking,” takes some getting used to.
The two activities in this section give us some idea of what it is like to communicate to literal-minded machines using a fixed set of instructions.
The first will teach us about a “machine” that computers use to recognise words, numbers or strings of symbols that the computer can work with. These “machines” are called finite-state automata.
The second activity introduces us to how we can communicate with computers. A good programmer has to learn how to tell the computer what to do using a fixed set of instructions that are interpreted literally. The list of instructions is the program. There are lots of different programming languages a programmer can choose to write these instructions in, but we will be using a simple language that can be used without a computer.
You can imagine what interesting routes they will take. Read the details about the activity here.
After this activity, I would introduce the class to LOGO (or one of the many free similar coding-programs like LOGO). LOGO is a drawing program that uses single commands, but you have to be specific, before you can draw what you intended to do.
With a kinesthetic learning philosophy, CS Unplugged believe that you learn when you touch. The same goes for the constructionistic learning philosophy that Seymour Papert represent, saying that cognitive learning must involve “doing things” with your hands or body. More about Seymour Papert here and here.
I have a bunch of more favorite CS Unplugged activities. Here they come in chronologic order as I would present them for my students:
The CS Unplugged instruction book says about binary numbers:
Data is the raw material, the numbers that computers work with. A computer converts its data into information (words, numbers and pictures) that you and I can understand.
In this section we will learn about binary numbers, how computers draw pictures, how fax machines work, what is the most efficient way to store lots of data, how we can prevent errors from happening and how we measure the amount of information we are trying to store.
Email and modems
Computers connected to the internet through a modem also use the binary system to send messages. The only difference is that they use beeps. A high-pitched beep is used for a one and a low-pitched beep is used for a zero. These tones go very fast—so fast, in fact, that all we can hear is a horrible continuous screeching sound. If you have never heard it, listen to a modem connecting to the Internet, or try calling a fax machine—fax machines also use modems to send information.
Using the same code that Tom used in the department store, try sending an e-mail message to your friend. Make it easy for yourself and your friend though—you don’t have to be as fast as a real modem!
To parallelize this into everyday technology, it would be obvious to work with QR-codes. But also try the “transfer-data-via-audio”-app Chirp, that lets users transfer data such as pictures, notes and links between iPhones using small birdsong-alike sounds. The sounds are an expansion of the modem “101000101011100110100111111100”-sounds, but with a few more tones. This is really brand new thinking, and gives some new perspectives on data, such as massive data distribution via radio or podcasts. Twitter no longer has exclusive rights to social media birdsongs . Event though both meanings of this ambiguous term has to do with micro distribution of social data.
Now they might be ready for the Can you say that again-activity about trimming code. The “rulebook” says about this:
Many computer users are familiar with compressed formats such as zip, gzip, or gif images. These are based on a method called Ziv-Lempel coding, which turns out to be an interesting exercise in finding patterns in text.
Children’s rhymes and stories are good examples for text compression, because they often involve repeated words and sequences.
After this, it would make sense to play some Light Bot or even better Coding Pirates (though the game is still in beta). These games are about creating the most efficient route to the goal by using symbol-based drag’n’drop tiles. They are both very intuitive Visual Programming Languages (VPL) and useful for even preschool kids. I have written more about the use of VPL’s in schools, and made this very useful infograph.
Image representation is also about using binary codes, but in a creative way. In CS Unplugged:
Computers store drawings, photographs and other pictures using only numbers. The following activity demonstrates how they can do this. Computer screens are divided up into a grid of small dots called pixels (picture elements).
In a black and white picture, each pixel is either black or white.
The letter “a” has been magnified above to show the pixels. When a computer stores a picture, all that it needs to store is which dots are black and which are white.
Then they should try out Harold the robot. The activity isn’t in the CS Unplugged book, but only available here. More about the activity:
In this activity children simply give directions to a “robot” (either an adult or
another child) and find out which instructions the robot is able to follow, and
how their instructions are taken literally.
1. Place a small collection of blocks or similar objects on the bench.
2. One person (perhaps the teacher or other adult for a start) plays the role of
Harold the Robot. Harold can only respond to particular commands. These
commands are not given to the children, and can be made up on the fly.
3. Have a child talk Harold through making a tower out of the blocks using
instructions such as “Move your hand to the left”, “Pick up the block beside
your hand” and so on. If the child gives an instruction that is too complex or
otherwise not in Harold’s vocabulary (e.g. “put the three blocks on top of each
other”) then Harold expresses confusions by shaking his head or burying his
head in his hands.
4. The task is completed when the tower is built. At this point, discuss with
the children about which commands it would be reasonable for the robot to
respond to, which wouldn’t make sense. Does a small vocabulary limit what
can be done, or does it simply make more instructions necessary?
To make the students more interested in how computers and robots understands a message, I would recommend a conversation with cleverbot. This “robot” will actually answer your questions, based on artificial intelligence.
Watch this video, with two cleverbots having a hilarious conversation
Algorithms and networks
My final recommendation would be: Sorting networks.
After this kind of activity, playing games like Creeper World, The Space Game or Desktop Tower Defence would actually be quite meaningful since they require a lot of logistic overview, maintaining supply lines, networks and bottleneck-solving talent, all skills relating to “Sorting Networks”.
But to understand how networks work faster, one great activity would be to let the students do something 2.0’ish. Let them contribute, by anwering one or more questions on stackoverflow.com – and ask one as well. Or let them cooperate and build opensource software in the Visual Programming Language Scratch. The latest version supports multiple inputs at the same time, and it is even called Scratch 2.0 !
Go and pay CS Unplugged a visit http://CSUnplugged.org and try out the many activities and videos in your class. but don’t forget to add your own updated technologies.