How-To: Program a person

ProgramAPerson.jpg

When introducing kids to programming, it's helpful to get them into the mindset of programming. Having this experience will help them to get the concept that they are in charge of what the code does. They should also see that there is a lot of programmed behavior in the devices and systems in our lives.

Supplies:
People
Paper
Pens/pencils
A space to work in, tiled floors can be handy for calibrating moves

Tools
None

Concepts
Programming
Communications systems
Iterative or Design process

Time frame
This takes at least 20 minutes to explain and do. After that, you could use it as a filler activity, where you use it to illustrate a concept in the language that you are learning.

Mastery Objective
Students or participants will know how to create a very simple programming language so that they can command another person to perform simple tasks and explain where programming is present in other parts of their lives.

Process
Have participants get together in groups of twos or threes. Big groups don't work as well.
Each group will need a piece of paper and a pen or pencil
Each group creates their own code of simple commands.
Their commands will be written on the piece of paper and then spoken to the programmed person.
The programmed person should not have to read the code, it should be transmitted to that person verbally, or on slips of paper in a sequence.
The programmed person will then carry out the written code as accurately as possible.
Students and participants should use the iterative process, where they try their program and refine it as they go. If they don't test out the program, it may not do what they want, their may be miscommunications or sloppy code that the programmed person does not follow well.
Have each of the groups or pairs demonstrate to the rest of the group what they have programmed.
Each group in turn has a person who calls out the code, and another person who executes the code.
Each person should think of several objects or systems that use programming techniques in their daily life.

Keep it simple
Make a code of at least five lines of code, one command on each line.
They should avoid words like: "and," "next" and "then," which will have the effect of making commands more complex. Implied in the system is that the next line of code or simple command is "next" or "then."

Don't make it impossible
Keep the commands realistic for your situation.
If you are limited on time, they should not repeat movements or events dozens or hundreds of time.
If you are limited on space, they shouldn't have commands like "run for twenty seconds" or "jump eight feet"
If you have regular human beings, they shouldn't have commands like "jump up three feet" or "lift the maple table top"

Extensions
You could have them create a common syntax for their code, making it more consistent.
Create objects of groups of participants, that could all be commanded by one person acting as the transmitter of the code.

If you try this out, please let us know how it goes in the comments. Send in some photos and video to the MAKE Flickr pool and tag it with ProgramAPerson.


Recent Entries

Comments

Oldest comments listed first.

Posted by: AndyL on September 5, 2009 at 4:23 PM

"Sit in nearest chair"?

Wow, that's a pretty high-level language. Is the chair-finding algorithm documented?

Is there a mechanism for overriding it with a customized chair-finding algorithm?


Posted by: Chris Connors on September 5, 2009 at 6:57 PM

Actually, after seeing that come up in class, I strengthened the requirement for simple language. "sit in nearest chair" is an example of language that is more complex than the project called for. The picture was taken after trying the project just once with a group new to programming.

While working with this group, I did catch some language that was too complex, or too specific, some of which resulted in the crossed off sections in the picture. The "take off glasses" statement came from a group that only had one person wearing glasses. I thought it should be a bit more universal than that.

It would be a separate session where IF THEN statements would be explored. I think it would be fun to instantiate a group of objects in this project and have them all do something.


Posted by: Anonymous on September 5, 2009 at 9:33 PM

Nice job Chris. Thank you! I've bookmarked this and forwarded it to our education staff.


Posted by: Anonymous on September 5, 2009 at 9:34 PM

AndyL = wanker


Posted by: Lukas Steiblys on September 6, 2009 at 6:54 AM

Sounds sort of like Logo and turtle graphics.


Leave a comment


Subscribe to MAKE!Subscribe to MAKE Magazine!

Subscribe today, save 42% and get web access to MAKE free. MAKE Digital Edition is available only to subscribers.

$34.95 / 1 year
(4 Quarterly Issues)

Subscribe now


Void your warranty, violate a user agreement, fry a circuit, blow a fuse, poke an eye out. Make: The risk-takers, the doers, the makers of things... Welcome to Make: Online!


CRAFT Maker Shed Maker Faire MAKE television
Holiday Gift Guides from MAKE
Gifts for Dads
Science and Chemistry
Gifts Under $20
More guides: Santa Claus Machines, Geek Toys for Grown Up Girls & Boys


Check out all of the episodes of Make: television

Alex Rider Dream Gadget Contest
Make: Science Room

Connect with MAKE

Be a MAKE fan on Facebook MAKE on Facebook
Visit our Facebook page and become a fan of MAKE!
MAKE on Twitter MAKE on Twitter
Follow our MAKE tweets!
MAKE Flickr Pool MAKE on Flickr
Join our MAKE Flickr Pool!
    make_tips on Twitter




    Maker SHED

    Advertise here with FM.

    Why advertise on MAKE?
    Read what folks are saying about us!

    Click here to advertise on MAKE!



    Subscribe to MAKE Magazine!

    Make: Online authors!

    Gareth BranwynGareth Branwyn
    Senior Editor


    Phillip TorronePhillip Torrone
    Senior Editor
    | AIM | Twitter


    Becky SternBecky Stern
    Associate Editor
    | AIM | Twitter


    Marc de VinckMarc de Vinck
    Contributing Writer
    | AIM | Twitter


    John ParkJohn Park
    Contributing Writer
    | Twitter


    Sean RaganSean Ragan
    Contributing Writer
    | Twitter


    Matt MetsMatt Mets
    Contributing Writer
    | AIM | Twitter


    Dale DoughertyDale Dougherty
    Editor & Publisher
    | Twitter


    Shawn ConnallyShawn Connally
    Managing Editor
    | Twitter


    Goli MohammadiGoli Mohammadi
    Associate Managing Editor

    Kip KayKip Kay
    Weekend Projects
    | AIM | Twitter


    Collin CunninghamCollin Cunningham
    Contributing Writer
    | AIM | Twitter

    Adam FlahertyAdam Flaherty
    Contributing Writer
    | AIM | Twitter



    More contributors: Mark Frauenfelder (Editor-in-Chief, MAKE magazine), Kipp Bradford (Technical Consultant/Writer), Chris Connors (Education), Diana Eng (Guest Author), Peter Horvath (Intern), Brian Jepson (O'Reilly Media), Robert Bruce Thompson (Science Room)

    Suggest a Site!

    Current Podcast

    itunesdl.gif Weekend Project: Beetlebot Simple robot from your parts bin that avoids obstacles. Thanks go to Jerome Demers for the original article in MAKE, Volume 12. To download the Beetlebot video, click here or subscribe in iTunes. Check out the complete Beetlebot article... More...

    Get the Make: Online sent via email
    Enter your email to receive Make: Online each day:



    MAKE Fascination video series brought to you by Dow

    Make: Education
    MAKE: en EspaƱol MAKE: Japan
    Important please read


    Subscribe to MAKE Magazine!

    Recent Posts from the Craft: Blog