I teach an introductory physical programming course in curricular classes at a public school in São Paulo for middle school students who have never programmed before. In my classes, I try to propose activities suited for iteration and that provide possibilities for multiple pathways in the creation process through a tinkering approach.
During the last week, seventh grade students were working on a pinball machine project. I have proposed this activity before, but this time I was particularly surprised to see the complexity and creativity of kids creations.
The materials included pegboards to be used as the support base, screws and nuts, rubber bands, clothespins, cardboard tubes and the beta kit for physical programming (a kit I created to allow tinkering explorations in physical programming). The kit is composed of an Arduino with a shield that converts the pins to audio jacks, servo motors, buzzers, LEDs, lasers, light sensors, switches and potentiometers – that can be connected to the Arduino through audio cables. In our classrooms, we use the S4A for programming because of its easy way to monitor the sensor values.
In the future, I would like to integrate more crafts materials for kids to decorate their machines in artistic ways. Springs are also great materials to this activity and can be used, among other things, to make the ball launcher. Since we didn’t have them, most groups used tubes to launch the ball, and didn’t explore too much other possibilities that could have been fun too.
I’m a big fan of creating pinball machines as a learning activity. I love how they can be explored in diverse ways, incorporating different materials, technologies and features. That is why I like to introduce this theme in starter activities to kids who don’t have fluency yet in physical programming: they get really excited about building their machines and this creates a high level of engagement.
Three different 7th grade classes worked on this activity earlier this year, but in these previous experiences I had determined that it would last only for 2 weeks (1.5 hour/week ), since it was part of a research project and I had some time constraints. This time, kids were really engaged in the first two classes and I could see their projects getting better and better – so I let them have more time to keep working on it instead of moving on to the next programmed activity. They worked on the project during 4 weeks, and the outcome of more time was impressive for me, both in the high level of engagement and in the complexification of their creations.
Using learning resources for programming
One thing that added more engagement was the use of some new learning resources that I’ve created based on Scratch Cards. In previous experiences, students needed to find out by themselves how to program their machines, or ask either for my help or colleagues’ help. Hence, much energy was spent on trying to get the code right to do what they wanted – sometimes with high levels of frustration that would make them want to give up on some features, keeping it simpler. Using these resources was a great experience not only for students, who could have more autonomy to develop ideas and explore more diverse pathways, but also for me as a teacher, since I had more time to reflect with the groups about other aspects of their machines and about their ideas and processes.
It was also great to see kids learning about variables in a contextualized way. Many groups wanted to find a way to score points in their games, and the need to learn about variables emerged from their own interests.
I could see students effectively engaged in testing, refining, and changing their paths along the process, and that made me reflect on the importance of having appropriate time to create, develop and complexify ideas, shift to other directions, fail and try again. It was a valuable learning process for me as a teacher to have the freedom to try out new approaches and to be open to what comes up during the development of the classroom activities.
Another point that made me happy was the emotional climate during the last class, when kids had some time to play with other groups’ machines and a free time enjoy their our creations. Although some groups just kept improving their machines and testing it over and over again, it was nice to have this hands-on sharing experience, where students were not only showing their creations to others, but actually providing a playful interaction with them.
Other possibilities for pinball activities
During my trip to the FabLearn Conference earlier this year, I had the opportunity to work on pinball machines in the Educators Meet Up at the San Francisco Exploratorium (thanks Ryan Jenkins for inviting me to that!). It was great to try out new techniques and materials, like working with wood and integrating copper tape to make some circuits.
Also, in the Cardboard Arcade Workshop at the FabLearn Conference, I worked together with my group (Holly and Jessica) on a cardboard pinball connected to Scratch through a Makey Makey to make sounds and scores points. The materials were very simple, and the outcomes were great.
It’s amazing to see the diversity of materials and technologies that can be used to create pinball machines, and the high level of motivation of kids (and adults!) to make them work, integrating construction and programming. Since pinballs can have so diverse features, it’s a great activity for tinkering, allowing people to focus on different types of things in their creation process, based on the resources available and on the things that they find more interesting and fun.
* Special thanks to the teachers Rodrigo Nogueira and Cida Godinho, for giving me the freedom and the time to test out ideas in their classrooms and for all the help during this year.