eGFI - Dream Up the Future Sign-up for The Newsletter  For Teachers Online Store Contact us Search
Read the Magazine
What's New?
Explore eGFI
Engineer your Path About eGFI
Overview Lesson Plans Class Activities Outreach Programs Web Resources Special Features K-12 Education News
  • Tag Cloud

  • What’s New?

  • Pages


  • RSS Comments

  • Archives

  • Meta

Program a Friend


Activity courtesy of the Oregon Museum of Science and Industry’s Vernier Technology Lab

Time: 10 – 30 minutes

Grade level: 1 – 8


Working in pairs, students learn basic computer programming and software engineering concepts by building an obstacle course, then steering a blindfolded friend through it by using a series of commands. They re-run the maze to improve on the “program.”

Learning objectives

After doing this activity, students should be able to:

  • Recognize that computer programs boil down to a series of yes/no commands.
  • Break a task or process into little steps.
  • Understand that making errors and correcting them is part of the iterative design process.
  • Improve on a product or process based on observations and field testing.


National Science Education Standards

  • Use technology and mathematics to improve investigations and communications. The use of computers for the collection, analysis, and display of data is also a part of this standard.

International Technology Education Association Standards

  • H. Information and communication systems allow information to be transferred from human to human, human to machine, and machine to human. [Grades 6 – 12]
  • The Designed World. Standard 17: Students will develop an understanding of and be able to select and use information and communications technologies.

Common Core State Mathematics Standards

  • Numbers and Operations in Base 10; Understand place value [grades 1- 5].

Next Generation Science Standards

  • Practices: Asking questions and defining problems; communicating solutions.
  • Defining and delimiting engineering problems; develop a model to generate data for iterative testing and modification of a proposed object, tool, or process to achieve optimal design.


It is easy to make mistakes when writing programs for robots. Programmers write a program, and then test it to find mistakes. If a bad instruction is found, they fix the problem and retest the program until it works correctly. This is called iterative testing and it lies at the heart of the engineering design process.


  • Large room
  • Supplies to use as obstacles: pillows, chairs, etc.
  • Blindfold
  • Pencil/Pen
  • Paper


  1. Clear a space of all items in a room.
  2. Build a maze in the space with the items you have gathered.
  3. Blindfold your friend. Using step-by-step instructions, guide your friend through the maze. Try not to hit any obstacles. You can make corrections as your friend moves.
  4. Write down each step it would take for your friend to move through the maze.
  5. Give your instructions to your friend, and have her navigate the maze again. Did she hit an obstacle? If so, change the instructions and try again. Keep repeating this process until she makes it all the way through the maze without hitting anything.

Extensionsorting network

Beat the Clock. Have students do another maze activity to learn about sorting networks, or parallel computing, which speeds processing times by breaking a job into pieces and having several computers work on it at the same time. [A 10 – 30 minute activity for upper elementary students from Computer Science Unplugged.]


Bits & Binary. eGFI Teachers’ activity to teach binary numbers.

Computer Science, Unplugged. Activities and videos to teach computer science without computers, using string, games, paper, and other inexpensive materials.

eGFI’s roster of computer science and software engineering resources for teachers.

Submit a Comment

By clicking the "Submit" button you agree to the eGFI Privacy Policy.