Lesson 1: Programming Unplugged: My Robotic Friends Relay
This activity will begin with a short review of "My Robotic Friends," then will quickly move to a race against the clock, as students break into teams and work together to write a program one instruction at a time.
There are many important components to this lesson. Students will be able to run around and get their wiggles out while building teamwork, programming, and debugging skills. Teamwork is very important in computer science. While Pair Programming - Student Video is common, it is more common for computer scientists to work in teams. These teams write and debug code as a group rather than individuals. In this lesson, students will learn to work together while being as efficient as possible.
This activity also provides a sense of urgency that will teach them to balance their time carefully and avoid mistakes, but not to fall too far behind.
Main Activity (15 min)
Wrap Up (15 min)
Students will be able to:
- Practice communicating ideas through code and symbols.
- Use teamwork to complete a task.
- Verify the work done by teammates to ensure a successful outcome.
- Read My Robotic Friends - Teacher Prep Guide.
- Locate a wide open space for this activity, such as the gym or outdoor field.
- Print out one My Robotic Friends - Symbol Key per group. This is "code" to be used.
- Paper Trapezoid Template - Manipulatives are provided if your class is not going to use cups.
- Print out one set of Stacking Cup Ideas - Manipulatives per group.
- Make sure each student has a Think Spot Journal - Reflection Journal.
For the Teacher
- My Robotic Friends - Teacher Prep Guide
For the Students
- My Robotic Friends - Symbol Key
- Stacking Cup Ideas - Manipulatives
- Paper Trapezoid Template - Manipulatives
- Think Spot Journal - Reflection Journal
- Algorithm - A list of steps to finish a task.
- Bug - Part of a program that does not work correctly.
- Debugging - Finding and fixing problems in an algorithm or program.
Recall that in "My Robotic Friends" we guided our teammate's Automatic Realization Machine (ARM) using arrows. Take a moment to go through a quick "My Robotic Friends" example as a reminder. It can either be one that you have already covered or one that is new.
We are going to do the same kind of thing today, but instead of controlling each other, we are going to work together to create a program one symbol at a time.
Main Activity (15 min)
Relay Programming Activity
The practice lesson was easy enough; let's add some action! We're going to do the same type of thing (create a program describing how the cups are stacked) but now we're going to do it in relay teams, one symbol at a time.
Here are some clarifications that need to be shared from time to time:
- Only one person from each group can be at the image at one time.
- It is okay to discuss algorithms with the rest of the group in line, even up to the point of planning who is going to write what when they get to the cups.
- When a student debugs a program by crossing out an incorrect instruction (or a grouping of incorrect instructions) this counts as their entire turn. The next player will need to figure out how to correct the removed item.
The rules of this game are simple:
- Divide students into groups of 3-5.
- Have each group queue up relay-style.
- Place an identical stack of cups at the other side of the room/gym/field from each team.
- Have the first student in line dash over to the cups, review it, and write down the first symbol in the program to reproduce that stack.
- The first student then runs back and tags the next person in line, then goes to the back of the queue.
- The next person in line dashes to the stack of cups, reviews the stack, reviews the program that has already been written, then either debugs the program by crossing out an incorrect symbol, or adds a new one. That student then dashes back to tag the next person, and the process continues until one group has finished their program.
First group to finish with a program that matches the stack of cups is the winner! Play through this several times, with images of increasing difficulty.
Wrap Up (15 min)
Flash Chat: What did we learn?
- What did we learn today?
- What if we were each able to do five symbols at a time?
- How important would it be to debug our own work and the work of the programmer before us?
- How about with 10 symbols?
- 10,000? Would it be more or less important?
- Is it easier or harder to have multiple people working on the same program?
- Do you think people make more or fewer mistakes when they're in a hurry?
- If you find a mistake, do you have to throw out the entire program and start over?
Having students write about what they learned, why it’s useful, and how they feel about it can help solidify any knowledge they obtained today and build a review sheet for them to look to in the future.
- What was today's lesson about?
- How did you feel during today's lesson?
- How did teamwork play a role in the success of writing today's program?
- How did you use your debugging skills in today's lesson?
Use these activities to enhance student learning. They can be used as outside of class activities or other enrichment.
Pass the paper
- If you don't have the time or room for a relay, you can have students pass the paper around their desk grouping, each writing one arrow before they move the paper along.
Fill It, Move It
- As the teacher, create a stack of cups with as many cups as children in each group.
- Have the students write as many symbols in the program as it takes to get to the next cup (including putting the cup down) before passing to the next person.
Create a stack of cups at the front of the room. Have each student create a program for the stack. Ask students to trade with their elbow partner and debug each other's code.
- Circle the first incorrect step, then pass it back.
- Give the students another chance to review and debug their own work.
- Ask for a volunteer to share their program.
Ask the class:
- How many students had the same program?
- Anyone have something different?
CSTA K-12 Computer Science Standards (2017)
AP - Algorithms & Programming
- 1B-AP-11 - Decompose (break down) problems into smaller, manageable subproblems to facilitate the program development process.
- 1B-AP-12 - Modify, remix or incorporate portions of an existing program into one's own work, to develop something new or add more advanced features.
- 1B-AP-15 - Test and debug (identify and fix errors) a program or algorithm to ensure it runs as intended.