Skip to main content
Teacher Portal

Background

Designers, Engineers, and Computer Scientists create solutions that solve problems every day. In this Parade Float unit, students will use the Engineering Design Process to solve an authentic problem. Students will explore how to design, build, and code an autonomous robotic parade float to navigate through a maze that mimics the real world obstacles of a parade route.

What is a parade float?

A parade is a large or small group of people who walk together and are often dressed in costumes followed by marching bands and floats. A parade float is a decorated platform, either built on a vehicle, or towed behind one. Parades are often held on a holiday or to honor someone, and are usually a celebration of some kind.

A large driven float from the Rose Parade featuring space exploration features made of various kinds of flowers and natural materials, to illustrate an example of a parade float in real life.
Countdown to Launch of Jet Propulsion Lab, Celebrating 50 yrs of Space Exploration, Rose Parade Float

Iteration

Iteration is defined as the act or process of repeating.  For our purposes, iteration is the systematic, cyclical design loop in which products are planned, built, tested, and improved until they effectively solve an engineering problem. Iteration is the part of the EDP where products are prototyped, tested, refined and prototyped again until they meet the criteria established by the design team. To iterate is to improve your product design.

In this unit, students will bring to life the first design of their float, engage in discussion about the design and how to improve it. They will make modifications, test and refine again, repeating this cycle, or iterating, until they are satisfied with the design and it meets the project requirements.

The Engineering Design Process

Students will use the Engineering Design Process (EDP) to design and build a parade float. The EDP is a series of steps that engineers follow to come up with solutions to problems. Often, the solution involves designing a product that meets certain criteria or accomplishes a certain task.

The EDP can be broken down into the following steps: DEFINE → DEVELOP SOLUTIONS → OPTIMIZE.

  • Defining engineering problems involves stating the problem to be solved as clearly as possible in terms of criteria for success, and constraints or limits.
  • Designing solutions to engineering problems begins with generating a number of different possible solutions, then evaluating potential solutions to see which ones best meet the criteria and constraints of the problem.
  • Optimizing the design solution involves a process in which solutions are systematically tested and refined and the final design is improved by trading off less important features for those that are more important.
Diagram showing icons representing the three phases of the EDP laid out in a triangle. At the top, overlapping speech bubbles with question marks in them represents Define; in the lower right corner, a pencil writes a list representing Develop Solutions, and to the lower left, a magnifying glass represents Optimize. There are arrows connecting the three icons indicating movement between phases.

The EDP is cyclic or iterative in nature. It is a process of making, testing and analyzing, and refining a product or process. Based on the results of testing, new iterations are created, and continue to be modified until the design team is satisfied with the results.

In this unit, students will use the EDP to dream up, plan, and build a robotic parade float. After an initial build, groups will test and improve their float design to meet design criteria and constraints.

What is Pseudocode?

Pseudocode is a shorthand notation for coding that combines verbal and written descriptions of code.

Oftentimes, students can "guess and check" their way to finding a solution. This, however, doesn't result in them building a conceptual understanding of the coding concepts. The writing of pseudocode helps students to move beyond a surface level understanding of coding, to a more conceptual understanding. Pseudocode requires that the students think conceptually about their coding solution before they begin coding. Teachers should discuss pseudocode with students by asking students:

  • What do they want their project to accomplish?
  • How are you going to break down the intention or goal of the project into short specific statements?

In this example, if students were asked to create a pseudocode for wanting the robot to move forward, detect a wall, turn right, and then move forward again, it would be the following:

  1. Drive the robot forward until it is 50 mm away from a wall
  2. Stop the robot
  3. Turn the robot 90 degrees
  4. Stop the robot
  5. Drive forward 600 mm 

Once a pseudocode is created, students will then create the code to instruct the robot on how to successfully complete each step of their pseudocode.

Decomposition

Decomposition involves breaking down a complex problem into behaviors that are more manageable and easier to understand. Breaking the problem down into smaller parts means that each part can be examined in more detail and solved with greater ease. For example, if a student wants their robot to move in a square, they would need to break it down into smaller commands. Refining the breakdown process is important for students to practice, as they may not break down the commands into smaller components at first:

Move in a square breakdown 1 Move in a square breakdown 2 Move in a square breakdown 3
  1. Move forward and turn right four times
  1. Move forward and turn right
  2. Move forward and turn right
  3. Move forward and turn right
  4. Move forward and turn right
  1. Move forward 50 mm
  2. Turn right 90˚
  3. Move forward 50 mm
  4. Turn right 90˚
  5. Move forward 50 mm
  6. Turn right 90˚
  7. Move forward 50 mm
  8. Turn right 90˚

Sequencing

Sequencing is the specific order in which behaviors are performed in an algorithm, or set of instructions. An action or event leads to the next ordered action in a sequence. Sequencing is important so students can code their robots correctly.

In order to tell a robot exactly and precisely how to move, both decomposition and sequencing are needed. First, the problem, such as how to navigate a maze, will be decomposed into smaller increments and behaviors. Then, once these behaviors are identified, they need to be organized into the correct sequence. This is important, because the robot will only move exactly as it is coded to.

Students will code their parade float to move through a parade maze. They will need to sequence the commands in their project so that their float moves forward, backward, left and right in the correct order to navigate the parade maze.

What is VEXcode GO?

VEXcode GO is a coding environment that is used to communicate with VEX GO robots. Students use the drag and drop interface to create VEXcode GO projects that control their robots actions. Each block’s purpose can be identified using visual cues such as its shape, color, and label.  

The following VEXcode GO blocks will be used in this unit:

[Drive for] -  moves the Drivetrain either forward or in reverse for a given distance. Choose which direction the Drivetrain will move, and set how far it will move by entering a value in the oval.

A VEXcode GO Drive for block with the direction parameter dropdown open, and forward selected. The block reads Drive forward for 100mm.
[Drive for] Block

[Turn for] -  rotates the Drivetrain left or right for a given number of degrees. Choose the direction the Drivetrain will turn, and set how far it will move by entering a number of degrees in the oval.

A VEXcode GO Turn for block with the direction parameter dropdown open and right selected. The block reads Turn right for 90 degrees.
[Turn for] Block

[Wait] - Waits for a specific amount of time before moving to the next block.

A VEXcode GO Wait block reads wait 1 seconds.
[Wait] Block

[Comment] - allows programmers to write information to help describe their project. Comments do not change the project or blocks surrounding it.

A VEXcode GO Comment block reads 'Comment'.
[Comment] Block

[Spin for] - will spin a Motor in a given direction for a given distance from where it is currently located.

A VEXcode GO Spin for block, with the direction parameter dropdown open and forward selected. The block reads Spin left Motor forward for 90 degrees.
[Spin for] Block
  • By default, other blocks will wait until the Motor is done moving. You can select the arrow to expand "and don't wait" - this will cause other blocks to continue running while the Motor or Motor Group moves.

A VEXcode GO Spin for block with the arrow at the end of the block expanded. The block now reads Spin left motor forward for 90 degrees and don't wait.
[Spin for] block with the "and don't wait"

To get started using VEXcode GO in your classroom, download the VEX Classroom App onto a teacher’s device, then follow the steps in the Using the VEX Classroom App article to learn how to update GO Brain firmware, rename and locate GO Brains, and monitor the Batteries of GO Brains in your classroom. For more information about VEXcode GO, visit the VEXcode GO section of the VEX Robotics VEX Library.