Relay Programming

Lesson time: 20 Minutes         Basic lesson time includes activity only. Introductory and Wrap-Up suggestions can be used to delve deeper when time allows.

Lesson Overview

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 create a program, one instruction at a time.

Teaching Summary

Getting Started - 15 minutes

1) Review
2) Vocabulary
3) Refresh Graph Paper Programming

Activity: Relay Programming - 20 minutes

4) Relay Programming

Wrap-up - 10 minutes

5) Flash Chat: What did we learn?
6) Vocab Shmocab

Assessment - 10 minutes

7) Relay Programming Assessment:Debugging

Lesson Objectives

Students will:

Teaching Guide

Materials, Resources and Prep

For the Student

For the Teacher

Getting Started (15 min)

1) Review

This is a great time to review the last lesson that you went through with your class. You can do this as one large group or have students discuss with an elbow partner.

Here are some questions that you can ask in review:

  • What did we do last time?

  • What do you wish we had had a chance to do?

  • Did you think of any questions after the lesson that you want to ask?

  • What was your favorite part of the last lesson?

Lesson Tip

Finishing the review by asking about the students' favorite things helps to leave a positive impression of the previous exercise, increasing excitement for the activity that you are about to introduce.

2) Vocabulary

This lesson has one new and important word:

Debugging - Say it with me: De-bugg-ing
Finding and fixing problems in your algorithm or program

3) Refresh Graph Paper Programming

Recall that in "Graph Paper Programming" we guided our teammates' Automatic Realization Machine (ARM) using arrows. Take a moment to do a refresher Graph Paper Programming image -- either one that you have already covered or an entirely new one.

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.

Activity: Relay Programming (20 min)

4) Relay Programming

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 an image) but now we're going to do it in relay teams, one symbol at a time.

The rules of this game are simple:

  1. Divide students into groups of 3-5.
  2. Have each group queue up relay-style.
  3. Place an identical image at the other side of the room/gym/field from each team.
  4. 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.
  5. The first student then runs back and tags the next person in line, then goes to the back of the queue.
  6. 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.
  7. That student then dashes back to tag the next person, and the process continues until one group has finished their program.
  8. First group to finish is the winner!

Play through this several times, with images of increasing difficulty.


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, they must also cross out the rest of the program after that. This counts as their entire turn. The next player is allowed to continue from the last correct instruction.

Wrap-up (10 min)

5) Flash Chat: What did we learn?

  • What did we learn today?
  • What if we were each able 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?
  • 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?

6) Vocab Shmocab

You can choose to do these as a class, or have the students discuss with an elbow partner and share.

  • Which one of these definitions did we learn a word for today?

    "To rub or scrape out letters or characters"
    "Doing something repeatedly in a similar way"
    "Finding and fixing problems in your algorithm or program"

    ...and what is the word that we learned?

  • Which of these things could you debug?

    *The wrong answer to a math problem
    *A tunafish sandwich
    *Two baskets of pine cones

    Explain why you chose your answer.

Assessment (10 min)

7) Relay Programming Assessment: Debugging

Extended Learning

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.

Debugging Together

  • As the teacher, 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.
      • How many students had the same program?
      • Anyone have something different?

Connections and Background Information

ISTE Standards (formerly NETS)

  • 1.a - Apply existing knowledge to generate new ideas, products, or processes.
  • 1.c - Use models and simulation to explore complex systems and issues.
  • 2.d - Contribute to project teams to solve problems.
  • 4.b - Plan and manage activities to develop a solution or complete a project.
  • 4.d - Use multiple processes and diverse perspectives to explore alternative solutions.
  • 6.a - Understand and use technology systems.

CSTA K-12 Computer Science Standards

  • CT.L1:3-01. Use technology resources (e.g., puzzles, logical thinking programs) to solve age appropriate problems.
  • CT.L1:3-03. Understand how to arrange information into useful order without using a computer.
  • CT.L1:6-01. Understand and use the basic steps in algorithmic problem-solving.
  • CT.L1:6-02. Develop a simple understanding of an algorithm using computer-free exercise.
  • CT.L1:6-05. Make a list of sub-problems to consider while addressing a larger problem.
  • CT.L2-01. Use the basic steps in algorithmic problem solving to design solutions.
  • CT.L2-03. Define an algorithm as a sequence of instructions that can be processed by a computer.
  • CT.L2-06. Describe and analyze a sequence of instructions being followed.
  • CT.L2-07. Represent data in a variety of ways: text, sounds, pictures, numbers.
  • CT.L2-08. Use visual representations of problem states, structures, and data.
  • CT.L2-12. Use abstraction to decompose a problem into sub-problems.
  • CPP.L1.3-04. Construct a set of statements to be acted out to accomplish a simple task.
  • CPP.L1:6-05. Construct a program as a set of step-by-step instructions to be acted out.

NGSS Science and Engineering Practices

  • K-2-PS3-2. Use tools and materials provided to design and build a device that solves a specific problem or a solution to a specific problem.
  • K-2-ETS1-1 - Ask questions, make observations, and gather information about a situation people want to change to define a simple problem that can be solved through the development of a new or improved object or tool.
  • 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.

Common Core Mathematical Practices

  • 1. Make sense of problems and persevere in solving them.
  • 2. Reason abstractly and quantitatively.
  • 3. Construct viable arguments and critique the reasoning of others.
  • 6. Attend to precision.
  • 7. Look for and make use of structure.
  • 8. Look for and express regularity in repeated reasoning.

Common Core Language Arts Standards

  • SL.1.1 - Participate in collaborative conversations with diverse partners about grade 1 topics and texts with peers and adults in small and larger groups
  • SL.1.2 - Ask and answer questions about key details in a text read aloud or information presented orally or through other media.
  • L.1.6 - Use words and phrases acquired through conversations, reading and being read to, and responding to texts, including using frequently occurring conjunctions to signal simple relationships (e.g., because).
  • SL.2.1 - Participate in collaborative conversations with diverse partners about grade 2 topics and texts with peers and adults in small and larger groups.
  • SL.2.2 - Recount or describe key ideas or details from a text read aloud or information presented orally or through other media.
  • L.2.6 - Use words and phrases acquired through conversations, reading and being read to, and responding to texts, including using adjectives and adverbs to describe.
  • SL.3.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.
  • SL.3.3 - Ask and answer questions about information from a speaker, offering appropriate elaboration and detail.
  • L.3.6 - Acquire and use accurately grade-appropriate conversational, general academic, and domain-specific words and phrases, including those that signal spatial and temporal relationships.