Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Group games to teach computer programming (either functional or imperative)

(See end for summary of updated question.)

I want to convey to groups of people (kids or adults) how a computer program written in a high-level language works, and what the relationship is of that program to the computer as a consumer device as they know it (a TV-like box that "does" typing and "internet").

I want to do it without computers. Not because I don't have them, but because I want a fun, physical activity that involves people the way acting, dance, music, sports, and capture-the-flag are fun.

I have read Teaching beginner programming, without computers here on stackoverflow; its reference to Computer Science Unplugged comes closest, but most of the activities there are either too complex, require too many props, or focus on specific computer science concepts.

I have also read Games that teach Programming Fundamentals but almost nothing matched my description in my first paragraph above.

And just for good measure, I have read Should functional programming be taught before imperative programming? so I am open to activities to teach either of those.

Keep in mind these requirements, some of which are subjective:

  • physical
  • no props (or very few)
  • fun
  • involves as many of the senses as possible
  • simulates the experience of writing a program and running it on a computer
  • no computers anywhere in the picture
  • is a game (competitive or cooperative)

It occurs to me that one source of material might be those team-building games that companies send you on. But those are designed for team-building, not teaching what writing and running a computer program is. But maybe you get the idea. Another way of looking at this question is to suggest what search terms I should use to find more answers -- though I usually can pick good search terms, an implicit "or" of "computers" and "games" will not find what I want because that combination is reserved for something totally different.

Update:

  • Thanks for responses so far!
  • I have now clarified that I'm interested in simulating the operation of a high-level-language program rather than either how the machine operates (1's and 0's) or specific concepts
  • With that clarification, you will be able to say specifically whether your game suggestion or game found teaches about functional or about imperative programming
  • With that clarification, please also respond to the part about games to teach the relationship of a computer program to the computer. What needs to be taught is that other consumer devices that physically look similar do not have "programs" -- why?
  • Your direct answers are much appreciated; if you can also find more ready-to-use sources beyond Computer Science Unplugged that will be great too
  • See my comments on answers so far, all of which are made in the spirit of thanks for what you've written, and not meant to be critical in any way.
like image 743
talkaboutquality Avatar asked Sep 30 '09 21:09

talkaboutquality


2 Answers

Fundamentally, computers only do a few, very simple things:

  1. They can do basic math,
  2. They can move data from one place to another,
  3. They can loop, and
  4. They can make simple decisions.

The power of computers lies in the fact that they can do these simple things millions of times per second.

At the physical game level, I believe this is about all you can teach. Beyond that, I believe computer simulations and/or multimedia presentations are required (or, at the very least, a whiteboard).

like image 165
Robert Harvey Avatar answered Jan 04 '23 04:01

Robert Harvey


1. Human Bubble Sort

Just test the Human Bubble Sort => ask a group of people - I'd recommend from min. 4 to max. infinite :-) - to sort themselves on the Bubble Sort principle, based on the alphabetical order of their family name.

Example : https://www.youtube.com/watch?v=8QD-R_MfDsQ

Works for kids and grownups.

2. Human Frenzy Robot

With physical people, paper sheets, and arrows + symbols written on them, reproduce the principle of the Frenzy Robot in real life. Look for "lightbot" on Google - I cannot post more than two links yet. I've just created my account to answer here :-)

3. Primo

For very young kids (after 4 years old), I really like Primo, a programmable small toy you put in motion on a grid => http://www.primotoys.com/

like image 34
Erwan Kezzar Avatar answered Jan 04 '23 04:01

Erwan Kezzar