Register here for our virtual August engineering design Professional Development workshops!

# LessonHow Do You Make a Program Wait?

(0 Ratings)

### Quick Look

Time Required: 1 hours 45 minutes

(Two 50-minutes sessions)

Lesson Dependency:

Subject Areas: Computer Science, Science and Technology

NGSS Performance Expectations:

 3-5-ETS1-2 3-5-ETS1-3 MS-ETS1-2 MS-ETS1-3

### Summary

Building on the programming basics learned so far in the unit, students next learn how to program using sensors rather than by specifying exact durations. They start with an examination of algorithms and move to an understanding of conditional commands (until, then), which require the use of wait blocks. Working with the LEGO® MINDSTORMS® EV3 robots and software, they learn about wait blocks and how to use them in conjunction with move blocks set with unlimited duration. To help with comprehension and prepare them for the associated activity programming challenges, volunteer students act out a maze demo and student groups conclude by programming LEGO robots to navigate a simple maze using wait block programming. A PowerPoint® presentation, a worksheet and pre/post quizzes are provided.
This engineering curriculum aligns to Next Generation Science Standards (NGSS).

### Engineering Connection

Programming is a vital skill for most engineers as well as many other professional jobs. Almost all useful programs must be able to perform operations without knowing all of the values of operands in advance. For instance, in a program that plays chess against a human player, the computer does not know where its opponent is going to move in advance, but is programmed to be able to respond to a variety of situations. Similarly, a LEGO robot does not know exactly how far away an obstacle is, but it can be programmed to bypass the obstacle when it is sensed.

### Learning Objectives

After this lesson, students should be able to:

• Program a LEGO MINDSTORMS EV3 robot using sensors.
• Explain why it might be advantageous to program a LEGO robot without having to know exact distances it must move.

### Educational Standards Each TeachEngineering lesson or activity is correlated to one or more K-12 science, technology, engineering or math (STEM) educational standards. All 100,000+ K-12 STEM standards covered in TeachEngineering are collected, maintained and packaged by the Achievement Standards Network (ASN), a project of D2L (www.achievementstandards.org). In the ASN, standards are hierarchically structured: first by source; e.g., by state; within source by type; e.g., science or mathematics; within type by subtype, then by grade, etc.

###### NGSS: Next Generation Science Standards - Science
NGSS Performance Expectation

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. (Grades 3 - 5)

Do you agree with this alignment?

Click to view other curriculum aligned to this Performance Expectation
This lesson focuses on the following Three Dimensional Learning aspects of NGSS:
Science & Engineering Practices Disciplinary Core Ideas Crosscutting Concepts
Generate and compare multiple solutions to a problem based on how well they meet the criteria and constraints of the design problem.

Alignment agreement:

Research on a problem should be carried out before beginning to design a solution. Testing a solution involves investigating how well it performs under a range of likely conditions.

Alignment agreement:

At whatever stage, communicating with peers about proposed solutions is an important part of the design process, and shared ideas can lead to improved designs.

Alignment agreement:

Engineers improve existing technologies or develop new ones to increase their benefits, to decrease known risks, and to meet societal demands.

Alignment agreement:

NGSS Performance Expectation

3-5-ETS1-3. Plan and carry out fair tests in which variables are controlled and failure points are considered to identify aspects of a model or prototype that can be improved. (Grades 3 - 5)

Do you agree with this alignment?

Click to view other curriculum aligned to this Performance Expectation
This lesson focuses on the following Three Dimensional Learning aspects of NGSS:
Science & Engineering Practices Disciplinary Core Ideas Crosscutting Concepts
Plan and conduct an investigation collaboratively to produce data to serve as the basis for evidence, using fair tests in which variables are controlled and the number of trials considered.

Alignment agreement:

Tests are often designed to identify failure points or difficulties, which suggest the elements of the design that need to be improved.

Alignment agreement:

Different solutions need to be tested in order to determine which of them best solves the problem, given the criteria and the constraints.

Alignment agreement:

NGSS Performance Expectation

MS-ETS1-2. Evaluate competing design solutions using a systematic process to determine how well they meet the criteria and constraints of the problem. (Grades 6 - 8)

Do you agree with this alignment?

Click to view other curriculum aligned to this Performance Expectation
This lesson focuses on the following Three Dimensional Learning aspects of NGSS:
Science & Engineering Practices Disciplinary Core Ideas Crosscutting Concepts
Evaluate competing design solutions based on jointly developed and agreed-upon design criteria.

Alignment agreement:

There are systematic processes for evaluating solutions with respect to how well they meet the criteria and constraints of a problem.

Alignment agreement:

NGSS Performance Expectation

MS-ETS1-3. Analyze data from tests to determine similarities and differences among several design solutions to identify the best characteristics of each that can be combined into a new solution to better meet the criteria for success. (Grades 6 - 8)

Do you agree with this alignment?

Click to view other curriculum aligned to this Performance Expectation
This lesson focuses on the following Three Dimensional Learning aspects of NGSS:
Science & Engineering Practices Disciplinary Core Ideas Crosscutting Concepts
Analyze and interpret data to determine similarities and differences in findings.

Alignment agreement:

There are systematic processes for evaluating solutions with respect to how well they meet the criteria and constraints of a problem.

Alignment agreement:

Sometimes parts of different solutions can be combined to create a solution that is better than any of its predecessors.

Alignment agreement:

Although one design may not perform the best across all tests, identifying the characteristics of the design that performed the best in each test can provide useful information for the redesign process—that is, some of the characteristics may be incorporated into the new design.

Alignment agreement:

###### Common Core State Standards - Math
• Make sense of problems and persevere in solving them. (Grades K - 12) More Details

Do you agree with this alignment?

• Fluently add and subtract multi-digit whole numbers using the standard algorithm. (Grade 4) More Details

Do you agree with this alignment?

• Fluently multiply multi-digit whole numbers using the standard algorithm. (Grade 5) More Details

Do you agree with this alignment?

###### International Technology and Engineering Educators Association - Technology
• Test and evaluate the solutions for the design problem. (Grades 3 - 5) More Details

Do you agree with this alignment?

• Explain how various relationships can exist between technology and engineering and other content areas. (Grades 3 - 5) More Details

Do you agree with this alignment?

• Apply the technology and engineering design process. (Grades 3 - 5) More Details

Do you agree with this alignment?

• Judge technologies to determine the best one to use to complete a given task or meet a need. (Grades 3 - 5) More Details

Do you agree with this alignment?

• Develop innovative products and systems that solve problems and extend capabilities based on individual or collective needs and wants. (Grades 6 - 8) More Details

Do you agree with this alignment?

• Refine design solutions to address criteria and constraints. (Grades 6 - 8) More Details

Do you agree with this alignment?

###### Missouri - Math
• Make sense of problems and persevere in solving them. (Grades K - 12) More Details

Do you agree with this alignment?

• Fluently add and subtract multi-digit whole numbers using the standard algorithm. (Grade 4) More Details

Do you agree with this alignment?

• Fluently multiply multi-digit whole numbers using the standard algorithm. (Grade 5) More Details

Do you agree with this alignment?

###### Missouri - Science
• Describe how new technologies have helped scientists make better observations and measurements for investigations (e.g., telescopes, electronic balances, electronic microscopes, x-ray technology, computers, ultrasounds, computer probes such as thermometers) (Grade 5) More Details

Do you agree with this alignment?

Suggest an alignment not listed above

### Subscribe

Get the inside scoop on all things TeachEngineering such as new site features, curriculum updates, video releases, and more by signing up for our newsletter!
PS: We do not share personal information or emails with anyone.

### More Curriculum Like This

Upper Elementary Lesson
What Is a Program?

Using a few blindfolds and a simple taped floor maze exercise, students come to understand that computers rely completely upon instructions given in programs and thus programs must be comprehensive and thorough. Students create and test basic programs, first using just the LEGO intelligent brick, an...

Upper Elementary Lesson
How Do You Make Loops and Switches?

Students learn how to program using loops and switches. Using the LEGO® MINDSTORMS® robots, sensors and software, student pairs perform three mini programming activities using loops and switches individually, and then combined.

Upper Elementary Lesson
What Is a Motor and How Does a Rotation Sensor Work?

Students learn about electric motors and rotational sensors. They learn that motors convert electrical energy to mechanical energy and typically include rotational sensors to enable distance measuring. Students create a basic program using the LEGO® MINDSTORMS® interface to control a motor to move a...

Upper Elementary Lesson
Brain is a Computer

Students learn about the similarities between the human brain and its engineering counterpart, the computer. Since students work with computers routinely, this comparison strengthens their understanding of both how the brain works and how it parallels that of a computer.

### Pre-Req Knowledge

Completion of the first lesson in this unit (What is a Program?) so that students are ready to create their own EV3 programs.

### Introduction/Motivation

(Be ready to show students the 23-slide How Do You Make a Program Wait? Presentation, a Microsoft® PowerPoint® file, to teach the lesson. In advance, make copies of the How Do You Make a Program Wait? Pre/Post Quiz, provided as attachments and slides, and the Algorithm Worksheet. Student groups also need LEGO robot components, as described in the Background section. For Day 1, have handy a blindfold and a simple maze route near a wall in the classroom, made from tape on the floor; refer to slide 12 description. For Day 2, prepare a simple maze using wooden blocks or cardboard boxes; refer to slide 8 diagram.)

If you want your LEGO robot to move based on input it receives from you in the form of a clap of hands, how would you think about programming it? (Let students think about this for a moment.) Well, you would have to have logic such as "keep the robot moving forward until it hears a clap sound." This means that the robot is WAITING to hear the sound. We call statements like this "conditional" statements. How would you implement that in a program? That is what we will study in today's lesson.

(Continue by showing the presentation and delivering the content in the Lesson Background section.)

### Lesson Background and Concepts for Teachers

The second lesson in this unit provides a general introduction to programming using conditional commands as well as a detailed walkthrough for writing such programs using the LEGO MINDSTORMS EV3 software. Present the lesson using the content provided in the slide presentation, as described below.

During the lesson, each group needs the following materials:

• LEGO MINDSTORMS robot, such as the LEGO EV3 kit (buildable and programmable robot), available for \$349.99 at https://shop.lego.com/en-US/LEGO-MINDSTORMS-EV3-31313; follow the taskbot building instructions in the core set manual; the sensor is included in the core set
• LEGO MINDSTORMS Education EV3 software 1.2.1
• computer, loaded with EV3 1.2.1 software

Note: This activity can also be conducted with the older (and no longer sold) LEGO MINDSTORMS NXT set instead of EV3; see below for those supplies:

• LEGO MINDSTORMS NXT Base Set
• computer loaded with the NXT 2.1 software

What Are Conditional Commands?

As any programmer progresses, his/her objective is to write good programs. A good program not only performs reliably, but is almost always recognized by being both easier for the programmer to write and for the audience to understand.

The programs students wrote in the first activity of this unit (Navigating a Maze) are extremely reliant upon approximating or measuring distances between objects and then estimating or calculating how many rotations it would take the robot to move that far.

Instead of this approach, it is both less tedious and more useful to control the robot by using information the robot receives from its sensors. For instance, suppose you want the robot to move forward but come to a stop as soon as it reaches a wall. It is fairly tedious to measure the distance from the robot to the wall, estimate how many rotations this is, and tell the robot to go exactly that many rotations forward. Further, you must hope that you start the robot at exactly the same position each time or your program will not accomplish the given task correctly.

The alternate way is to tell the robot to move forward until its touch sensor hits a wall and then stop. This approach is not only easier (with practice) for the programmer, but it also does a better job accomplishing the task because no matter what location the robot starts, it will stop exactly when it reaches the wall.

We say that this program uses a conditional command because the distance the robot moves forward is dependent on the condition of the touch sensor. If the touch sensor has not been pressed, the robot keeps moving forward. However, once the touch sensor has been pressed, the robot stops.

Day 1: Algorithms to Conditional Commands Presentation Outline (Slides 1-13)

1. Administer the pre-quiz by handing out paper copies; the quiz is also on slide 2. The answers are provided for the teacher on slide 3 for discussion after students have completed the quiz.
2. Talk about the lesson objectives, as provided on slide 4: To learn to use conditional commands. This involves investigating why it is helpful to use conditional commands in programming, and how to use wait blocks to program LEGO robots to respond to the presence of stimuli.
3. Give each student a worksheet. Then present them with information on algorithms and conditional commands.
4. (slides 5-7) Review what an algorithm is and why algorithms are important for programming. Using worksheet questions 1 and 2, have students perform the operation of "addition" shown on slide 5 and then write out the addition algorithm in generic, detailed steps (slide 6) so they understand the concept of algorithm. Then make sure students understand that the best algorithms are flexible and non-specific, so they can be used to solve many similar problems (slide 7).
5. (slides 8-9) Explain that navigating a maze using the method of "calculating" distances (as students did in the first activity in this unit) can be problematic if the robot does not start exactly where it is supposed to start or if any calculation mistakes were made. Have students discuss this briefly and point out the limitations of programming by using movement blocks with fixed numbers of rotations.
6. Have students answer worksheet question 3 to verify that they understand the issues involved if such a strategy is used, that is, if the robot is commanded to move based on exact distances. After they have completed question 3, have students share with the class all the issues they thought of and make sure everyone understands the potential problems. Then ask: How could we get around this?
7. (slides 10-11) Introduce students to a new type of "conditional commands" that can help solve the problems identified in worksheet question 3: conditional statements using "until." Example: Play at recess until you hear the bell ring; then go back to class. See if students can apply this approach to a robot in a maze by asking them complete worksheet question 4. Ask them to write down in words an algorithm to have a robot move until it encounters a wall, when it is to stop. Check whether students have recorded the steps correctly: move forward continuously; stop if you sense a wall (maybe using a touch sensor). Emphasize that we want the algorithm to include simple and clear instructions that are also complete.
8. To reinforce the concept of conditional commands and how they are easier to use than specific commands, conduct a simple maze demonstration using two student volunteers, as described on slide 12. Use tape on the floor to outline a simple track. Blindfold one student to serve as the "robot," and have the other student give the navigation commands, first using specific commands and then adding "until" into the instructions.
9. (slide 13) As a class, discuss how the use of the conditional command made a difference, and then review all concepts covered during Day 1 on algorithms and conditional commands.

Day 2: Programming with Wait Blocks (Slides 14-17)

• Before class starts, set up a simple LEGO robot maze using cardboard boxes or wooden blocks that is approximately 2-feet long with a turn to the left, refer to the slide 8 diagram.
• (slide 14) Introduce a programming task that is best completed by using conditional commands to program the robot. Help students use the conditional commands and break the task down into simple steps: 1) move forward, 2) wait until the touch sensor is pressed, 3) stop.
• Slides 14-18 provide a walkthrough for programming the robot to complete the task. Slide 16 is particularly important because it introduces the wait block and explains its features. Sum up the new information by reviewing how to use wait blocks (slide 19).
• (slide 20) Have students pick up where they left off on the worksheet from Day 1, with questions 5 and 6. Direct students to write down conditional commands for the robot to navigate the maze diagram on the worksheet, and the EV3 program blocks to implement the algorithm. Give students some time to write their answers on their worksheets and then discuss as a class. Solutions are provided for the teacher on the Algorithm Worksheet Answer Key.
• Give students pairs time to implement their programs using the LEGO MINDSTORMS EV3 software, download them to EV3 taskbots with attached touch sensors, and test/revise their programs.
• Inform students that in the next class they will develop similar but more complex EV3 programs and test them on robots.
• Administer the post-quiz by handing out paper copies; the quiz is also on slide 21. The answers are provided on slide 22. This concludes the lesson. Slide 23 contains vocabulary terms and definitions. Next, conduct the associated activity, Wait Program!

### Associated Activities

• Wait Program! - Students test their understanding of wait blocks in two programming challenges that use LEGO robot with sound and touch sensors. One task is to program a robot to keep moving forward and turn only when it hears the sound of a clap. The other programming task is more challenging and requires the robot to change speed several times depending on how many times the touch sensor is pressed. Students iterate their programs to successful solutions.

### Vocabulary/Definitions

algorithm: A clear and specific procedure for solving a problem in a finite number of steps.

conditional command: A command in which the completion of an action depends on a condition being satisfied. (For example, if I see a stop sign [condition], I stop [action].)

stimulus: Something that rouses or incites to activity. For the purposes of the lesson, it is an action that can be perceived by the robot that causes it to move on to the next part of the program.

### Assessment

Pre-Lesson Assessment

Pre-Quiz: Before starting the lesson, administer the three-question How Do You Make a Program Wait? Pre/Post Quiz by handing out paper copies (also on slide 2). Students' answers reveal their base understanding of algorithms, stimulus and logic behind using sensors in programming a robot. Answers are provided on the How Do You Make a Program Wait? Pre/Post Quiz Answer Key (and slide 3). Administer the same quiz at lesson end.

Post-Introduction Assessment

Worksheet: Have students complete the Algorithm Worksheet over the two-session lesson, coordinated with the slide presentation. This helps students follow the content, and verifies their understanding as you go. The teacher should know the solution well (provided in the Algorithm Worksheets Answer Key) and ask pertinent questions to guide students.

Lesson Summary Assessment

Post-Quiz: At lesson end, administer the How Do You Make a Program Wait? Pre/Post Quiz again by handing out paper copies (also on slide 21). Compare students' answers to their pre-quiz answers to determine how well they understood the concepts taught in this lesson. Answers are provided on the How Do You Make a Program Wait? Pre/Post Quiz Answer Key (and slide 22).

© 2014 by Regents of the University of Colorado; original © 2013 Curators of the University of Missouri

### Contributors

Riaz Helfer, Pranit Samarth, Satish S. Nair

### Supporting Program

GK-12 Program, Computational Neurobiology Center, College of Engineering, University of Missouri

### Acknowledgements

This curriculum was developed under National Science Foundation GK-12 grant no. DGE 0440524. However, these contents do not necessarily represent the policies of the National Science Foundation, and you should not assume endorsement by the federal government.