This workshop has kids split into teams and work on tasks that require synchronization between them. It is a great team building and leadership exercise. Thanks to German Nudelman for the idea.
Preparation
The idea is to have kids create N number of things altogether as fast as they can. For very small kids it can be as simple as drawing 5 circles or putting 5 stickers on a paper. For older kids it may be writing N words, drawing N houses, etc. Start with one person doing the whole job, create a little bit of boredom experience - it takes sooo long to do the job. Then ask kids how is it possible to do it faster and if they don't come up with an answer, suggest using many kids. This may be a good idea to do some math - if it takes 1 minute for one person to do the job, how long would it take for 2 people, 3 people ...
Then have kids under impression that once they work as a team this job will be done very fast and have them do it. Initially I thought that there should be some "punishment" for incorrectly done task (that is the number of things done is not what was requested), for example, if 7 circles are drawn instead of 5, tear the paper. This should make kids really keen on completing the task correctly. However during the presentation it caused some frustration and even tears, so I am not sure what's the best way.
The first time kids do it as a team they are not likely to get it right - everybody is doing for themselves, counting their own circles, so the total number is always larger than what was expected.
Then once the paper is torn kids start to look at others. After several tries they should start succeeding, but it may take much longer to synchronize and re-count circles than it takes for one person to do the whole job. For example, for 2-3 kids it took 30 seconds to draw almost 60 circles, with synchronization it took them almost 3 minutes to draw 20 circles. The way they synchronized was constantly stopping and re-counting the total number of circles.
Now it's the time to suggest different ideas for synchronization:
1. Controller: one person oversees the activity of the others and tells them to stop. You should probably ignore the edge cases unless the kids are ready for it*. The controller idea is very valuable for leadership skills - the child is responsible for the work, but he can not do it all himself, he needs to make sure that the work is done by other people. He needs to stop the kids when it's time, meaning the other kids need to listen to him. It's interesting to see how there are leaders and not-so-much among 5 year olds already.
2. Event based: The person yells the next number. Whoever draws the first house yells "one", whoever draws the second house yells "two", etc.
3. Split the work: use math and split the work in advance. So far I haven't seen 5 year olds kids come up with this idea. It may not work very well if the "CPU speed" of the kids is really different.
*There are issues with edge-cases which you should ignore for young kids, for example, if you require the kids to have exactly 5 houses drawn and nothing else, two kids may start drawing the 5-th house, so there will be leftovers. It's fun to ask kids to come up with a solution for it (come up with a lock idea)
Have kids try different ways of synchronization, time them, analyze, let them compete against each other.
Success is very important, make sure that every team can successfully do the job at least once.
Resources
Decide what kids are going to do. Drawing / writing is simplest - all you need is lots of blank and preferably color paper, large sheets preferred; pencils/pens for every child., but there is a lot of room for imagination: putting stickers on paper, making people with clay, building shapes with magnetix.
Presentation
This presentation I led for the group of about 20 kids, 4-6 y.o.
1. Introduction
Today we'll look into how people decided that using more than one computer is much faster than using one computer. We'll see what problems they had to deal with. These problems are called "Synchronization". So, what can computer do?
get some answers from kids.
Computer can do anything, and it has to be fast. Let's imagine that we are computers.
2. Single processor
find a volunteer who can write a word "cat" and ask him to write it 10 times. Time him. Other kids will have to wait, create a sense of slowness. While he writes tell the kids a story.
Once people asked a computer: write the word cat million times! Computer started writing. He was writing, and writing, and writing, and writing. And it was doing it for so long that people decided that they have to do something about it. What can we do to write 10 words faster? (by that time the volunteer should finish)
(Somebody suggested typing -- good idea :)
This is what people came up with - let's have more computers do the job!
3. First attempts at synchronization
pick 4 people, give them a sheet of paper and have them write 8 words "cat" together. Time them. Help them finish with the right number of words.
You see, while it seems that writing 10 words by one person should be slower, it takes almost the same time to do for 4 people! Why is that? Because you need to synchronize with each other
Now pick up several sheets of paper, split the group into teams of 4. The rest are QA - quality assurance. Have them sit and wait for instructions.
Here is what you have to do: When I say start, your team will have to write 8 words "cat" ALL TOGETHER, as fast as you can. Once you are done raise your hands. The QA will count the number of words, and if it is not 8, they will tear the paper. Start!
don't help kids here, have them get confused or get incorrect answers.
(In my presentation only one group succeeded - it had people who were good at writing and a great leader (Lauren?) who controlled the situation. Somebody wanted to write the words by himself, I explained that writing words singlehandedly is easy, but it's not the point. Also some kids did the trick of writing "C" many times, then "A", then "T". That screwed up the count since they got lots of half words)
once the kids are done, have QA do the job. Then go another round
(Lauren switched teams and still got it right)
4. Choosing a leader
So you see, it's very hard to synchronize. Let's ask the team who was successful, what is your secret?
("When it's 8, I say "That's it")
Great! That's the secret - you need to say "That's it" when it's time. So let's do it this way: We'll have one controller in each group, who doesn't draw, he only counts the number of words, and when it's 8, he stops the others.
assign controllers, don't ask the kids who wants to be one, otherwise it's going to be a lot of conflicts. Also if you have only few people, have each one of them try to be a leader and make sure they all succeed
(This time leaders took it much more to the heart when their paper was torn by the QA, my son burst into tears, so I am not sure that tearing the paper is the right thing to do)
let them try one more time if you have time, switch the leaders
5. Split the work
Now, I'll tell you the secret how to write 8 words by 4 people even easier. You need to split the work! If there are 8 words all together, how many words does each one have to write?
(Surprisingly nobody answered, one person said "1", I picked it up, and we counted that that would be 4 words altogether, not 8, we tried 2, and it worked out)
So now, every person needs to write only two words, and your team will have 8 words all together
have them do it.
(Even that turned out to be very difficult, only half of the teams got it right)
make sure they all succeed, help them if necessary, have them experience success
(I wish I did this, I suspect in my presentation I left some kids confused or frustrated)
6. Different processor speeds
In reality splitting the work equally does not always produce the best result. Some processors run faster, some are slower. Let's try it: in each team two people will write with their left hands and two will write with their right hands. This way some are much slower than the other ones. Now try to see how you can do the job as fast as you can!
7. Conclusion
Let's talk about what we did here. First we found out that writing everything alone is slow. So we decided to write words in teams, to make it faster. However it turned out much harder to get the right answer than we thought because you needed to synchronize with each other. So we chose one person in a team who would control the situation and tell others to stop. That was a little better. Then we figured we can just split the work in advance and write 2 words each, that worked even better and much faster than if you were doing it alone.
Computer science also deals with synchronizing computers, because having one computer do the whole job is very slow. To do it, they chose one computer who will be in charge, who will know when to stop the other computers. Or, as an alternative, the work is split between the computers in advance, and it works much faster.
8. Advanced: Limited resources
I haven't tried it yet. Have teams of 4 color 4 pictures using 4 different colors. At first kids will try to fight for the colors and wait for the desired color. Then they can figure out that they can split the work - each person does a job with a specific color. As an alternative, have each person in one team color only his picture, and have each person in another team use only one color and apply it to all 4 pictures.