When teaching introductory programming to students, one of the most challenging initial concepts that needs to be understood is the issue of specificity. Specificity in computer programming is fundamental to grasp as even one semi-colon in the wrong place will cause your program to crash. Having my students understand the need to be as specific as possible before introducing programming concepts is a valuable task that I have been trying to convey using several diverse strategies over the years.
Usually, we engage in something we call the Human Centered Programming experiment. This involves directing a blindfolded partner to safely follow a map to a certain location within the school. The partner writing the instructions must get the exact number of steps, directions to turn, angles in which to follow, etc. They succeed by directing their partner to the location in question. As any good program is reliable, they must then be able replicate the outcome by using the same set of instructions for a different partner with no prior testing. The goal is to develop a series of steps and instructions that can navigate any person to the destination without interruption. As one can imagine, this is a painstaking task to get right. The attention to detail that the students must develop to succeed at this activity is transferable to when they start combing through their Java code, seeking the missing semi-colon.
So how does a marching band relate to programming? Well when my wife showed me this recent video of the Ohio State University marching band, my first thought went to the complexity involved in programming or in their case, choreographing the steps and sequences involved in this amazing performance. I showed my class and we all agree, this was the Human Centered Programming activity multiplied by a thousand. The video is a fun watch and an interesting way to apply computer programming to another seemingly unrelated field. Enjoy!