Debug the Robot #336

Debug the Robot 336 card

Challenge type: Debug the Robot  ·  Difficulty: ★★★★★ Super tricky  ·  Program length: 12 steps

There’s one bug hiding in this program. Programmers call fixing mistakes debugging. Time to be a bug detective!

Debug the Robot 336. Beep starts at column 2, row 4, facing up. The battery is at column 3, row 1. Grid squares are counted from the top-left corner. Dark brick squares are walls.
Beep’s program has one bug. Which step is wrong?

Beep starts at column 2, row 4, facing up. The battery is at column 3, row 1. Grid squares are counted from the top-left corner. Dark brick squares are walls.

Beep’s program

  1. Turn left
  2. Turn left
  3. Forward
  4. Turn left
  5. Forward
  6. Forward
  7. Turn left
  8. Forward
  9. Forward
  10. Forward
  11. Forward
  12. Turn left

Forward moves Beep one square in the direction it is facing. Turn left and Turn right turn Beep on the spot, a quarter turn, without moving to a new square.

Your mission

Follow the program one step at a time with your finger. Find the bug, then fix it so Beep reaches the battery. Is a step wrong, missing, extra, or in the wrong order?

Need a hint?

If you run this program exactly as it is written, Beep doesn’t bump into anything, but ends up in the wrong square. Look at what happens just before that.

Grown-ups: Acting the program out helps a lot. Draw the grid on paper or with tape on the floor, and let your child walk it, saying each step out loud. Tracing code step by step is exactly how programmers debug.

For teachers and grown-ups

Skills practised: Debugging, tracing a program step by step, and testing a fix.

The big idea: Computers follow instructions exactly. A bug is a mismatch between what we wrote and what we meant.

Questions to ask:

  • Where exactly did the program first go wrong?
  • What kind of bug was it: a wrong, missing, extra or swapped step?
  • How can you check that your fix really works?

Take it further: Act it out on a floor grid made with tape. One child is the robot and only follows the written steps.