My “hobby” life and professional life recently crossed paths in an interesting way. It started when the federal government announced a grant competition with one of the possible research topics involving robotics competitions. (For those not familiar with how research is funded, this isn’t at whacky as it sounds. There are lots of programs in the federal government that hold annual competitions in a broad variety of areas. The specification of focal areas is how the government – and we the taxpayers – have some assurance that research conducted with federal dollars will be important and/or useful. As I recall, the robotics topic was part of a larger program that covers innovative uses of technology in education. Robotics competitions are gaining in popularity, and there is considerable interest in their impact on future science and technology interests of the flesh-and-blood participants).
During a meeting with colleagues we brainstormed some possibly interesting areas of research that would respond to the spirit of the grant. Two ideas in particular were notable for their contrast. One was (broadly) the question of what is gained from having a lot of practical, hands-on experience with mechanical systems. Real robots break and have problem with tolerances; builders need to respect the limits of materials, fasteners, and the laws of physics. Whereas in the 1950’s teenagers tinkered with cars after school, nowadays robots are the equivalent pastime for many students.
The second idea had to do with programming and simulation. Robotics also involves control and planning. In many competitions, the robots have to solve tasks or navigate obstacles without any human intervention. This can require considerable programming prowess to execute elegantly. One colleague (who was an advisor to his son’s team) said kids’ programming tends to be a batch of spaghetti code – long lists of instructions and contingencies sort of hacked together to get the job done.
A colleague pointed out that if we care about kids learning the control/automation side of robotics, then the “messiness” of the physical machines often gets in the way. It’s hard enough to devise an intelligent algorithm for navigating obstacles without also worrying what happens when a wheel inadvertently jams up. One could imagine kids being overloaded with the frustration of learning to program AND having to deal with clunky hardware (these robots aren’t being designed by engineers with graduate degrees, remember). So he wondered whether a “virtual robotics competition” – where the robots were just simulated avatars a la Second Life – would be an interesting case to study.
On the flip side, others felt that learning about the “messiness” of physical systems, how to improvise solutions, plan for contingencies, etc., were equally valuable lessons, perhaps more important than learning elegant programming habits. Having gotten my start in software engineering, and now being very interested in “learning with the hands,” I could see both sides of this argument. Dealing with physical systems can be very frustrating at times; that was one of the appeals of the “virtual world” when I started in computer science. On the other hand, we live in a physical world, and I wonder what is lost when kids don’t get a lot of experience just interacting with the (non-mediated) world as they grow up.
My thinking is that if you want to teach programming, then teach programming, with or without robotic avatars. Just as we teach Newtonian physics in high school with an emphasis on theoretical models (mechanical systems operating in airless vacuums using weightless strings and pulleys, for example), one could imagine teaching the fundamentals of programming with reference to “ideal” robots or objects.
But to me, there is something special about tinkering with physical systems. I can’t put my finger on it exactly, but I feel like there are some valuable lessons in there, some of which are shared with the programming world (perseverance in the face of failure and frustration; the need for careful planning; problem decomposition, etc.), but others which are entirely separate from virtual spaces (namely, how gears work, what friction “feels like” on different surfaces, the strengths and limitations of motors, etc.) Just writing these down, I feel a big “so what” question looming – do we really care that youth gain facility with building drive trains? It’s more than that – it’s a “feel” for mechanical systems. Again, I’m at a loss for words. Maybe I’m just being sentimental. But I know I’m not alone in this. Others have been writing at some length on the need to re-integrate the hands into educational experience (e.g., Doug Stowe’s Wisdom of the Hands blog), and some have designed engineering curricula appropriate for elementary school (e.g., Engineering is Elementary).
Actually, I can think of one lesson that differentiates the physical from the virtual – I’ve written about this in the past. The physical world does not have an “Undo” button. Mistakes have consequences. A piece of bad code can be erased and revised in the blink of an eye, but a badly assembled drive train can mean a week of wasted effort.