Sunday, December 9, 2012

30 Minute - My Robotic Friends (K-12)


Description:

Using a pre-defined "Robot Vocabulary" your students will figure out how to guide each other to accomplish specific tasks without discussing them first. This segment teaches children the connection between symbols and actions, as well as the invaluable skill of debugging.
Note:  This works best as an entire group activity for younger children (K-2) and a small group activity (3-5 students) in the older grades.

Supplies:
6 Paper or Plastic Cups/Group
1 Robotic Instruction Packet/Group
1 Blank sheet of paper/Group



Outline:

As the instructor, you will begin by thanking the class for letting you come visit. It is very important that the instructor be pleasant and up-beat.

Start by covering the importance of Thinkersmith's three pillars of responsible computing. From there, you will want to ask the class if anyone has ever heard of robotics.  Has anyone seen a robot or touched one?  Does a robot really "hear" you speak?  Does it really "understand" what you say?  The answer is: "Not the same way that we do."

Teach them that, when it all comes down to it, robots operate off of "instructions", a specific set of things that they have been pre-programmed to do.  In order to accomplish a task, a robot needs to have a series of instructions (called an algorithm) that it can run.  Today, we are going to learn what it takes to make that happen.

Here is a list of symbols that our "robot friends" are able to do.

A more simple way of writing the
symbols in order to speed up "programming".
(Do these for them as you read each one.  Make sure you've practiced in advance so that you don't lock them in to an action that's too limited.  Use as much of a liberal definition as you believe is appropriate for your age group.)
Make sure you have your plastic cups in a stack on a nearby table.

1.) Pick up cup - Show them what this looks like
2.) Put down cup - Put your cup back down
3.) Turn Right - Turn the cup clockwise
4.) Turn Left - Turn the cup counterclockwise
5.) Step Forward - Move the cup one "step" to the right
6.) Step Backward - Move the cup one "step" to the left

It can be helpful to specify that one "step" for the robot is actually one half width of a cup. So, in order to set one cup down beside another, you will need to move it two "steps" before you put it down.  Remember to "step backward" all the way to the cup stack before you ask them to pick up a new cup!

If your student asks about rules that haven't been defined, you can either define them according to your exercise, or ask them to define that rule within their group.

Now it's time to go over an example with them.  I will usually have them help me come up with an algorithm to make the first structure shown in the Robotic Instruction Packet using just three cups.  I'll use that time to make sure the rules are completely clear and that they understand what the job of the group is and what the job of the "robot" is.  It helps if you require them to write their algorithms out before they tell it to their "robot".

This is where we need to get creative.  Once you have handed out a "secret card" (in the form of a picture of the cup stack that they will be making) you cannot let the "robot" see it!  It becomes necessary to have the robots away from their groups.  I will usually make a "robot library" at a separate table, where the robots can all stand with me and practice the steps while they're waiting for their group to come "check them out".  Once the group has a decent algorithm written, they can come show it to me and I will allow their robot to go back to their group area to try it out.  They are welcome to revise non-working algorithms either with the robot around, or after "checking the robot back in" to the library.

After a successful stack, I have begun to gather the groups back together to ask about the complexity of indicating that a cup has to move 6 steps, or 8 steps, or more.  I point out that often, the instructions for

  • Pick Up Cup
  • Move Forward x Steps
  • Put Down Cup
  • Move Backward x Steps
are packaged together.  We then work to create a new symbol that can stick these all together, removing some of the monotony of programming.  The symbol that I chose usually looks something like this:
Where the number indicates how many steps you move before you put the cup down.  The teams are usually *extremely* relieved to have this new "function" as we proceed with more difficult stacks. 

Be sure to identify what we just did as creating a "function" to replace code that appears multiple times in our program.  If the class is particularly enthralled, you can also identify the number portion as the "parameter" or "input" to the function.

It's time to send a new robot to the library and work on algorithms for more difficult stacks!

This can continue until everyone has had the chance to be a robot, or until time runs out.