Over the past few weeks I've been teaching 8-10 year olds how to program LEGO Mindstorms in my local school. So far I've taught 3 lessons of 1.5 hours each and it's been a lot of fun. I thought it might be useful to note my lesson plans here so others can draw inspiration from them.
Introduction to Programming and Robotics
Equipment: 5 LEGO Mindstorms Education Kits, 5 Laptops
Lesson 1: Programming (1.5 hours)
I started with a 10 minute introduction to tools in general. I used a stone, a hammer and an electric drill to illustrate the evolution in tools from the most basic to the LEGO Mindstorm brick. I asked the children "What is a tool?". I then draw parallels between the Mindstorm brick and the laptop computers the children were already familiar with (screen, ports, peripherals). I emphasized that computers are general purpose (programmable) tools and it is up to us (as the users/programmers) to define their behavior.
I then introduced the basics of a program: a sequence of instructions. The instructions I used were M (step forward), RT (turn right), LT (turn left). I wrote some sequences of instructions (a program) on the blackboard and had the children "execute" them. The children were then divided into groups. Each group has pencil and paper to write their programs. I then drew a square on the board and asked the children to write the corresponding program. E.g. [M, RT, M, RT, M, RT, M, RT]. After 5-10 mins each group comes to the front with their program and one of the children reads the program while another child executes it.
We then discuss the patterns in the program; the fact that M, RT is repeated 4 times. Discuss the notion of loops in programs and that in this case the loop is repeated 4 times and that the contents of the loop is [M, RT].
Repeat with several other figures on the board. I used a T shape for example. With the older children I also introduced an instruction that turns right 45 degrees and more complex figures using loops.