Out of Order
Find and fix mistakes in a program to make a Delivery Cart work as intended.
Lesson plan
1. Prepare
- Read through the student material in the LEGO® Education SPIKE™ App.
2. Engage (5 Min.)
- Use the ideas in the Ignite a Discussion section below to engage your students in a discussion related to this lesson.
- Use the video to explain the lesson.
3. Explore (15 Min.)
- Have your students work in pairs to build the cart.
- Ask them to play the program, keeping in mind that it has some bugs that need to be fixed.
4. Explain (5 Min.)
- Ask your students to share their methods for finding bugs.
5. Elaborate (15 Min.)
- Have your students play with the second programming stack.
- Ask them to make a list of all the bugs they think they've found.
- Give them a few minutes to correct the program.
- Have each team write their own program to make their cart follow a second path as shown in the video.
- To avoid introducing bugs into their programs, make sure they document their key actions.
- Don't forget to leave some time for cleanup.
6. Evaluate
- Give feedback on each student's performance.
- You can use the assessment rubrics provided to simplify the process.
Ignite a Discussion
Start a discussion about prototyping by asking relevant questions, like:
- How do you fix something that goes wrong on your bike?
- What to do when your phone or tablet update fails?
- When solving a math problem, how do you check your work?
Have your students watch this video to see what they're about to do.
Building Tips
A Funny Little Cart
This delivery cart has a unique way of moving around. The two Medium Motors in front are for driving forward and backward, and the Large Motor at the back is for steering. This model is intentionally designed to be a little unpredictable.
Coding Tips
Main Program
Possible Solution
Differentiation
Simplify this lesson by:
- Conducting the lesson in larger groups, guiding your students toward the bugs they have to correct
Take this lesson to the next level by:
- Creating a “problem cards” pdf and seeing how many problems each team can solve during a lesson
- Arranging these problems in increasing order of complexity
Assessment Opportunities
Teacher Observation Checklist
Create a scale that matches your needs, for example:
- Partially accomplished
- Fully accomplished
- Overachieved
Use the following success criteria to evaluate your students' progress:
- Students can find bugs in a program.
- Students can fix bugs after finding them.
- Students can correctly document modifications and improvements to a program.
Self-Assessment
Have each student choose the brick that they feel best represents their performance.
- Blue: I've found some bugs in the program.
- Yellow: I've found and fixed all the bugs in the program.
- Violet: I've found and fixed all the bugs in the program and recorded the fixes so other people can modify their programs based on my notes.
Peer-Assessment
Encourage your pupils to provide feedback to one another by:
- Having one pupil use the coloured brick scale above to score another pupil’s performance
- Asking them to present constructive feedback to one another so that they can improve their group’s performance during the next lesson
Language Arts Extension
To incorporate language arts skills development:
- Have your students create a detailed checklist of elements to verify when they're coding.
- Introduce them to adding comments to their programs, focusing on the importance of making their comments precise and easily understood anyone.
Note: This will make for a longer lesson.
Math Extension
To incorporate math skills development:
- Give a math problem and demonstrate how to debug it, focusing on key concepts, for example:
- Correctly isolating the problem to be solved
- Reviewing each step of the process
Note: This will make for a longer lesson.
Career Links
Students who enjoyed this lesson might be interested in exploring these careers pathways:
- Manufacturing And Engineering (Pre-Engineering)
- Media And Communication Arts (Digital Media)
- Transportation (Automotive Technology)
Teacher Support
Students will:
- Identify and fix programming problems
Australian Curriculum: Technologies
ACTDIP027
Define and decompose real-world problems taking into account functional requirements and economic, environmental, social, technical and usability constraints
ACTDIP028
Design the user experience of a digital system, generating, evaluating and communicating alternative designs
ACTDIP030
Implement and modify programs with user interfaces involving branching, iteration and functions in a general-purpose programming language