This one is from the "We don't need no stinking computers" file. If you've read my blog, or seen my TEDxTokyo presentation, you'll notice that I'm pretty enthusiastic about teaching programming to students. Of course, this presupposes regular access to computers. Is it possible to teach programming, or programming concepts to students without a computer? The answer is a resounding YES! Read on for more information...
Method 1 - The Robot
Concepts: Procedures (Functions / Subroutines)
The robot is not just a great dance move, it's also a way to teach the programming concept of procedures (or functions and subroutines). Take for example a robot that can only respond to three commands: forward, right (90 Degrees), and get.
To guide the robot to the energy in the middle, and then home, you can use the basic commands.
However, what do you do if you want to simplify the program? You can create new commands from the basic commands. For example, you could create a new command called "left" and define it as "right, right, right". This is the essence of programming: taking the basic building blocks of a programming language and creating new procedures.
Method 2 - Scott Pilgrim vs. The World
Concepts: Loops, Conditionals, Events, Collisions, Sprites
Programming concepts such as loops, conditionals, events, collisions, and sprites can be learned without a computer by having the students act out the part of a videogame. They are given cards with the computer instructions and act out the part of the sprites in a simple videogame.
In the example below, the parrot is flying back and forth at the bottom of the screen. The cat is the player whose job is to protect the parrot by intercepting the bats. If the player touches a bat, the score goes up by 10 and the bat disappears only to reappear from the top of the screen. If a bat touches the parrot, it's game over.
The great thing about this lesson is that students can learn some basic programming concepts without touching a computer. Especially for those schools with limited access to computers, this provides a great way to learn the concepts outside of the computer lab, so that when students do get access they can jump right in and program away.
The program and handouts lead nicely into a unit on how to program using Scratch, a programming environment developed by MIT. Scratch is free and cross-platform, so it works on Windows, Mac, and Linux.