Lesson 7: Relay Programming
Unplugged | Relay Programming | Algorithms
This activity will begin with a short review of "Graph Paper Programming," 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.
Teamwork is very important in computer science. Teams write and debug code with each other, instead of working as 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 students to balance their time carefully and avoid mistakes without falling too far behind.
Warm Up (15 min)
Main Activity (15 min)
Wrap Up (15 min)
Assessment (10 min)
Students will be able to:
- Define ideas using code and symbols.
- Verify work done by teammates.
- Locate a wide open space for this activity, such as the gym or outdoor field.
- Print out one Relay Programming Activity Packet - Activity Packet for each group.
- Supply each group with plenty of paper and pens/pencils.
- Print one Relay Programming - Assessment for each student.
- Make sure every student has a Think Spot Journal.
For the Teacher
For the Students
- Relay Programming Activity Packet - Activity Packet
- Relay Programming - Assessment
- 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.
- Program - An algorithm that has been coded into something that can be run by a machine.
Warm Up (15 min)
Recall that in "Graph Paper Programming" we guided our teammate's Automatic Realization Machine (ARM) using arrows. This warm up will bring back these ideas, which will be needed in the main activity.
Model: Take a moment to go through a quick "Graph Paper Programming" image with your class. 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)
With Graph Paper Programming in mind, it's time to split up into teams and prepare to run the activity as a relay!
Set-Up: Prepare the Relay Programming Activity Packet - Activity Packet by printing out one copy for each team of 4-5 students. Cut or fold each page along the center dotted line.
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 image.
- 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.
Go over the rules of the game with your class:
- Divide students into groups of 3-5.
- Have each group queue up relay-style.
- Place an identical image at the other side of the room/gym/field from each team.
- Have the first student in line dash over to the image, review it, and write down the first symbol in the program to reproduce that image.
- 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 image, reviews the image, 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 image is the winner! Play through this several times, with images of increasing difficulty.
Go through the game as many times as you can before time runs out or your students begin feeling exhausted.
Transition: Once the game is over, circle everyone up to share lessons learned.
Discuss: What did we learn today?
- What if each person on a team were allowed to do five arrows 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 arrows?
- 10,000? Would it be more or less important?
- Do you think a program is better or worse when more than one person has worked on it?
- 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?
Wrap Up (15 min)
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?
Assessment (10 min)
Pass around this assessment and have the students work on it independently. At the very end, you can take time to go over and discuss the answers.
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, draw an image with as many filled squares as children in each group.
- Have the students write as many arrows in the program as it takes to get to a filled-in square (including actually filling that square in) before passing to the next person.
Draw an image on the board. Have each student create a program for the image. 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.
This list represents opportunities in this lesson to support standards in other content areas.
Common Core English Language Arts Standards
L - Language
- 3.L.6 - Acquire and use accurately grade-appropriate conversational, general academic, and domain-specific words and phrases, including those that signal spatial and temporal relationships (e.g., After dinner that night we went looking for them).
SL - Speaking & Listening
- 3.SL.1 - Engage effectively in a range of collaborative discussions (one-on-one, in groups, and teacher-led) with diverse partners on grade 3 topics and texts, building on others’ ideas and expressing their own clearly.
- 3.SL.1.b - Follow agreed-upon rules for discussions (e.g., gaining the floor in respectful ways, listening to others with care, speaking one at a time about the topics and texts under discussion).
- 3.SL.3 - Ask and answer questions about information from a speaker, offering appropriate elaboration and detail.
- 3.SL.6 - Speak in complete sentences when appropriate to task and situation in order to provide requested detail or clarification.
Common Core Math Standards
MP - Math Practices
- MP.1 - Make sense of problems and persevere in solving them
- MP.2 - Reason abstractly and quantitatively
- MP.3 - Construct viable arguments and critique the reasoning of others
- MP.6 - Attend to precision
- MP.7 - Look for and make use of structure
- MP.8 - Look for and express regularity in repeated reasoning
Next Generation Science Standards
ETS - Engineering in the Sciences
ETS1 - Engineering Design
- 3-5-ETS1-2 - Generate and compare multiple possible solutions to a problem based on how well each is likely to meet the criteria and constraints of the problem.