In this coding unit, students will explore the iterative design process. Students will explore how to solve the authentic problem of ocean pollution by creating an extension from the VEX GO Kit that will collect trash. Each lesson in this unit ends with analyzing the strengths and weaknesses of the extension build and ideas for improving for their next design.
What is the Great Pacific Garbage Patch?
The Great Pacific Garbage Patch is a mass of garbage growing each day. The patch floats somewhere in the Pacific Ocean between Hawaii and California and is estimated to span an area twice the size of Texas. The garbage floats in one solid mass of plastic, metal, and other materials with loose debris floating beyond the perimeter. Students are challenged in this unit to create an extension for their Code Base robot that will help to clear perimeter debris from the Great Pacific Garbage Patch.
The Engineering Design Process
Students will use the Engineering Design Process (EDP) to design and build an attachment for their Code Base robot. The EDP is a series of steps that engineers use 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.
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 parade float. After an initial build, groups will test and improve their base design to meet design criteria and constraints. This is the same Engineering Design Process covered by the Next Generation Science Standards (NGSS).
Sequence is the specific order in which behaviors are performed. 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 Code Base to move around the challenge area and collect objects. They will need to sequence the commands in their project so that their Code Base moves forward, backward, left and right in the correct order to navigate the challenge area.
- Move forward
- Turn right
- Move forward
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|
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 programming concepts. The writing of pseudocode helps students to move beyond a surface level understanding of programming, to a more conceptual understanding. Pseudocode requires that the students think conceptually about their programming solution before they begin programming. 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:
- Drive the robot forward until it is 50 mm away from a wall
- Stop the robot
- Turn the robot 90 degrees
- Stop the robot
- Drive forward 600 mm
Once a pseudocode is created, students will then create the programming code to instruct the robot on how to successfully complete each step of their pseudocode.
What are Robot Behaviors?
“Behaviors” are a very convenient way to talk about what the robot is doing, and what it must do. Moving forward, stopping, turning, looking for an obstacle — these are all behaviors.
As students begin the task of coding, they should also begin thinking about the robot’s actions in terms of behaviors. When students code, they should follow these steps:
- Formulate a plan for the robot to perform the desired action.
- Identify the behaviors within the plan and attempt to make the behaviors as small as possible.
- Translate that plan into a project that the robot can follow.
The plan will simply be the sequence of behaviors that the robot needs to follow, and the project will just be those behaviors translated into VEXcode GO.
Breaking tasks down into smaller behaviors and then building solutions with those behaviors is a skill that can be applied to many different subjects.
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.
[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.
[Comment] - allows programmers to write information to help describe their project. Comments do not change the project or blocks surrounding it.
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 Knowledge Base.