"Bugs"

In my recent post about foreign-language learning, I recommended that students and teachers embrace errors.  This recommendation, however, shouldn’t be restricted to the study of another language but should be applied to almost all learning.   Unfortunately, we all too often treat errors as failures rather than as necessary and important ingredients of learning. 

There are several important benefits to treating errors as an essential part of learning.  First of all, the goal of learning should be some kind of performance, such as doing a certain kind of mathematical calculation, writing an insightful, interesting paragraph, playing a piece of music on a particular instrument, or executing some maneuver in a sport. When a person who is attempting any of these endeavors commits an error, that means, of course, that she has not yet achieved the desired level of performance.  But it rarely means that the person should abandon the endeavor!  An environment in which errors are understood as a necessary part of attempting something interesting or important encourages a person to continue with his efforts until he has achieved the desired outcome.   In short, it helps to build perseverance and resiliency.

Another benefit of  to treating errors as an essential part of learning is that it helps a student develop analytical skills.  If after making an error, one repeats the effort without any reflection, it is very easy to make exactly the same error again.  To avoid that fate, it is necessary to analyze one’s own performance to figure out what went wrong.  Thus, it is important for teachers to help students learn how to monitor and reflect on their performance so that they can determine the cause of any errors and consider how to avoid the error in the future.  For this reason, in ABeCeDarian teachers usually respond to errors not by saying or writing a word correctly, but telling the student where in the performance the error lay.  It is then up to the student to use this information and try again.  For example, if a student says /map/ when he is trying to read the word “mop,” the teacher responds, “You said /map/, with an /a/ here <pointing to the “a.”>  But that isn’t /a/.  It’s /o/.  Try again please.”  As students progress, the teacher shifts more responsibility for analyzing the student’s performance to the student himself by responding to an error simply by asking him to explain why the word he wrote or said couldn’t be correct.

We often think of practice as a phase or step of learning that is separate from the kind of investigation and reflection involved in exploring something new.  Moreover, the practice phase is frequently presented as inherently tedious.  Critics of traditional phonics programs, for example, often speak of “drill and kill,” meaning, students in such programs receive so much drill in decontextualized subskills that their interest and motivation in reading suffer.  However, if errors are treated not just as something for teachers to tally, but as something for students to analyze, then practice becomes infused with the same problem-solving focus as other parts of instruction.  Both student engagement and performance improve, creating a powerful virtuous circle.  Practice becomes more engaging, and so students do more of it, and so their performance improves, which motivates even more practice, and so on.

One of the most illuminating discussions of how to treat errors productively is in the superb book, Mindstorms, by Seymour Papert.  In that book, written in the 1970’s, Papert talks about how the personal computer can transform education, not as many educators believe, as a tool for providing more individualized practice to students, but as a tool that the students can use to make things by means of computer programming.  As students engage with the computer in this way, almost immediately they encounter the concept of “debugging.”  Rarely is it the case that a person writes computer code that performs exactly as the programmer expected.  After writing code, the programmer has to evaluate it, and when some part of the program doesn’t perform as expected, the programmer has to analyze the problem.  The relevant questions for the programmer when analyzing these errors are:  Can the problem be fixed, and if so, how?  “Bugs” are failures, in a sense, but they are both ordinary and, in most cases, temporary.  They aren’t faults that should be punished, but obstacles to be overcome.

The concept of “debugging” in computer programming thus provides an accessible and evocative metaphor for how to treat errors in general that can help prevent both teachers and students from embracing the false and debilitating notion that challenging and worthwhile tasks can be accomplished without making mistakes.