Physical computing refers to using a computer to control the actions of physical objects. It is a chance for the 5th graders to combine their computer programming skills with their knowledge of electrical circuits. The computer gives them more control of their circuits than a typical switch. For this unit, students used the Raspberry Pi computer. It is a low cost, single board device that has all of the functionality of a typical desktop, but with a set of 40 input/output pins that allows users to connect and program components like LEDs, buttons, buzzers, and motors. The Pi operating system includes a number programming languages for students of all levels. We started with Scratch, a block- based programming language with which students are already familiar.
The unit began with an overview of the Raspberry Pi itself, with attention to how it is similar to and different from a traditional PC. Following that, we reviewed the use of components like LEDs, resistors, jumper wires, and breadboards. This group of students used these parts last year, but it was necessary to explain how their use differs on the computer. Over the course of the first week, students worked with partners to build increasingly complex circuits controlled by Scratch programs. The final "test" was to build an LED traffic light and program it to run the sequence from red to green to yellow and back to red at the push of a button. The teams quickly realized that this simple sounding task is not quite as easy as it sounds. Getting each part working in the correct order took more planning than they expected, but each group got their lights going eventually. Then, as usual, they set the wait time to a decimal and competed to see who could get the LEDs blinking the fastest.
Once they were feeling confident with physical computing using Scratch, I introduced them to Python. This is a professional level programming language that is user friendly enough for 5th graders. We repeated the same circuits they had built for their Scratch programs so that they could compare programs that achieve the same end with different means. After a couple of days, most students say they prefer Python to Scratch for physical computing. Some say that it's faster to type the Python than to move all the Scratch blocks around, while others feel like Python is more real. In any case, everyone has done well with their taster lessons on text based programming.
For their culminating project, the student teams returned to Scratch to create some kind of quiz game that incorporated the electromechanical components studied. Most of the teams in this block opted to make multiplication games, and one decided to make a world capitals quiz instead. This was the first of the 4 groups that will come through the lab for this unit and I am excited to see how it goes with the others!