Lesson 3: Debugging with Scrat
Overview
Debugging is an essential element of learning to program. In this lesson, students will encounter puzzles that have been solved incorrectly. They will need to step through the existing code to identify errors, including incorrect loops, missing blocks, extra blocks, and blocks that are out of order.
Purpose
Students in your class might become frustrated with this lesson because of the essence of debugging. Debugging is a concept that is very important to computer programming. Computer scientists have to get really good at facing the bugs in their own programs. Debugging forces the students to recognize problems and overcome them while building critical thinking and problem solving skills.
Agenda
Warm Up (15 min)
Main Activity (30 min)
Wrap Up (5 - 10 min)
Extended Learning
View on Code Studio
Objectives
Students will be able to:
- Predict where a program will fail.
- Modify an existing program to solve errors.
- Reflect on the debugging process in an age-appropriate way.
Preparation
- Play through the lesson to find any potential problem areas for your class.
- (Optional) Pick a couple of puzzles to do as a group with your class.
- Make sure every student has a Think Spot Journal - Reflection Journal.
Links
Heads Up! Please make a copy of any documents you plan to share with students.
For the Students
- Think Spot Journal - Reflection Journal
Vocabulary
- Bug - Part of a program that does not work correctly.
- Debugging - Finding and fixing problems in an algorithm or program.
Support
Report a Bug
Teaching Guide
Warm Up (15 min)
Introduction
Ask students to think about problems they have to solve in everyday life.
- How do you fix something that isn't working?
- Do you follow a specific series of steps?
- The puzzles in this unit have already been solved for you (yay!), but they don't seem to be working (boo!)
- We call the problems in these programs "bugs," and it will be your job to "debug" them.
Vocabulary
This lesson has three new and important vocabulary words:
-
Bug - Say it with me - Buhh-g. Something that is going wrong. An error.
-
Debugging - Say it with me: Dee-bug-ing. To find and fix errors.
-
Persistence - Say it with me: Purr-siss-tense. Not giving up. Persistence works best when you try things many different ways, many different times.
Say:
Debugging is a process. First, you must recognize that there is an error in your program. You then work through the program step by step to find the error. Try the first step, did it work? Then the second, how about now? If you make sure that everything is working line by line, then when you get to the place that your code isn't doing what it's supposed to, you know that you've found a bug. Once you've discovered your bug, you can work to fix (or "debug") it!
If you think it will build excitement in the class you can introduce the character of today's puzzles, Scrat from Ice Age. If students aren't familiar with Scrat, show some videos of the quirky squirrel running into trouble.
Main Activity (30 min)
Online Puzzles
Before letting the students start on the computer, remind them of the advantages of Pair Programming - Student Video and asking their peers for help. Sit students in pairs and recommend they ask at least two peers for help before they come to a teacher.
As mentioned in the purpose of this lesson, make sure the students are aware that they will face frustrating puzzles. Tell them it is okay to feel frustrated, but it is important to work through the problem and ask for help. As the students work through the puzzles, walk around to make sure no student is feeling so stuck that they aren't willing to continue anymore.
Wrap Up (5 - 10 min)
Journaling
Having students write about what they learned, why it’s useful, and how they feel about it can help solidify any knowledge they obtained today and build a review sheet for them to look to in the future.
Journal Prompts:
- What was today’s lesson about?
- How did you feel during today’s lesson?
- What kind of bugs did you find today?
- Draw a bug you encountered in one of the puzzles today. What did you do to "debug" the program?
Extended Learning
Use these activities to enhance student learning. They can be used as outside of class activities or other enrichment.
Planting bugs
Have students go back through previous levels, purposefully adding bugs to their solutions. They can then ask other students to debug their work. This can also be done with paper puzzles.
When other students are debugging, make sure that the criticisms are constructive. If this could be a problem for your class, go over respectful debugging before this activity by role playing with another student.
Student Instructions
For this puzzle, drag all of the blocks together and click "Run" to watch it go!
Student Instructions
Drag an extra move forward block out of the toolbox to finish your code.
Student Instructions
"This pig is ruffling my feathers."
There is one extra block that is going to cause the bird to crash.
Throw it away by unhooking it from the grey blocks and dragging it back to the toolbox.
Student Instructions
"Trace the path and lead me to the silly pig."
Avoid TNT or feathers will fly!
Student Instructions
"Follow this path to get me to the pig!"
Avoid the TNT.
Student Instructions
"Keep calm and help me find the bad pig. Otherwise I might get angry!"
Get the bird to the pig and avoid the TNT.
Student Instructions
"It's time to get angry!"
Challenge: This code has a lot of bugs. You'll need to remove some blocks and add others.
Student Instructions
"Keep calm and help me find the bad pig."
Student Instructions
Read through the code below very carefully. What will happen when you click "Run"?
The bird will end up one step short of the pig.
The bird will make it to the pig.
The bird will run into the TNT.
I don't know.
Student Instructions
"Now, help me sneak up on the pig any way you want to!"
Student Instructions
The bird needs your help! The pig is hiding, and the goal is to find it.
Student Instructions
Sometimes there is more than one way to solve the same problem. Sometimes it's faster to go backwards than it is to go forwards!
Standards Alignment
View full course alignment
CSTA K-12 Computer Science Standards (2017)
AP - Algorithms & Programming
- 1A-AP-09 - Model the way programs store and manipulate data by using numbers or other symbols to represent information.
- 1A-AP-11 - Decompose (break down) the steps needed to solve a problem into a precise sequence of instructions.
Cross-curricular Opportunities
This list represents opportunities in this lesson to support standards in other content areas.
Common Core English Language Arts Standards
L - Language
- 2.L.6 - Use words and phrases acquired through conversations, reading and being read to, and responding to texts, including using adjectives and adverbs to describe (e.g., When other kids are happy that makes me happy).
SL - Speaking & Listening
- 2.SL.1 - Participate in collaborative conversations with diverse partners about grade 2 topics and texts with peers and adults in small and larger groups.
Common Core Math Standards
G - Geometry
- 2.G.1 - Recognize and draw shapes having specified attributes, such as a given number of angles or a given number of equal faces.5 Identify triangles, quadrilaterals, pentagons, hexagons, and cubes.
MP - Math Practices
- MP.1 - Make sense of problems and persevere in solving them
- MP.2 - Reason abstractly and quantitatively
- MP.5 - Use appropriate tools strategically
- MP.6 - Attend to precision
- MP.7 - Look for and make use of structure
- MP.8 - Look for and express regularity in repeated reasoning
OA - Operations And Algebraic Thinking
- 2.OA.1 - Use addition and subtraction within 100 to solve one- and two-step word problems involving situations of adding to, taking from, putting together, taking apart, and comparing, with unknowns in all positions, e.g., by using drawings and equations with a sy
Next Generation Science Standards
ETS - Engineering in the Sciences
ETS1 - Engineering Design
- K-2-ETS1-1 - Ask questions, make observations, and gather information about a situation people want to change to define a simple problem that can be solved through the development of a new or improved object or tool.
- K-2-ETS1-2 - Develop a simple sketch, drawing, or physical model to illustrate how the shape of an object helps it function as needed to solve a given problem.
- K-2-ETS1-3 - Analyze data from tests of two objects designed to solve the same problem to compare the strengths and weaknesses of how each performs.