understand what algorithms are; how they are implemented as programs on digital devices; and that programs execute by following precise and unambiguous instructions.

create and debug simple programs

## LO: To solve multi-step problems.

Put children into groups using the Beebot mats.

Here we want to work together to move from one shape/place to another.

One group will move to one shape (put their program into an envelope) and then another group will carry on and move to another shape.

Here we want the Beebot to travel to the blue rectangle and then to the blue triangle. If we follow the instructions from previous lessons then you will see that the finishing position of the Beebot becomes very important:

This will reach the blue rectangle but the Beebot will be facing to the right, not upwards - how will this alter the second groups code - is it better to agree to always end up facing up to make things easier?

Here, the second group will know that the Beebot is facing upwards, the same as the stating position - is this easier to work together having this agreement?

```
#First group - to the blue rectangle.
clear()
forward()
forward()
turn_right()
forward()
turn_left() #this puts the Beebot facing upwards
go()

#Second group - to the blue triangle.
clear()
forward()
turn_right()
forward()
forward()
go()

#and maybe this to set the Beebot facing upwards
clear()
forward()
turn_right()
forward()
forward()
turn_left() #this puts the Beebot facing upwards
go()
```

Here you have explored the power of combining programs/envelopes and working together on the same instructions - why was facing upwards important when working together? Why is knowing the correct starting position important when working together?