Emily Jane Mactavish has famously said that errors are the pedagogy. No matter what the field, we all learn from our errors. Yet more often than not, we are afraid to commit errors, people are castigated if they make mistakes, we have developed a culture around negativity around errors?
How about turning this around? So we frame the errors or all possible errors in a positive frame, we embrace them, and even make them part of our teaching. What if when we teach, we learn with our students together, we deliberately, intentionally build in spontaneity and errors and troubleshooting in the teaching. We make bugs and bug hunting formal. If we were to do so, we would not only be able to enable students learn from errors, we would also make learning more seamless with real life experiences where people learn from trial and errors and learn to shoot and sense errors they arise.
How might we do so? This is where we as teachers stand up in the class, deliver our lessons spontaneously. As we do so, we meticulously explain each step in the process of our thinking and let our students emulate what we are doing on the screen on their own devices. Then we either spontaneously or as planned commit errors and celebrate the fact we err: to err is human.
In the context of teaching coding or computational thinking, it helps if we use this form of participatory coding. So here are the more formal rules:
- Select a short lesson, say how to write a function
- Stand up, start writing the function on screen. Let your students work along with you and repeat what you are doing on their own computers.
- Slow down. Speak out loud each step as you write the function and invite questions from the students. If a student stumbles, wait to solve the problem before you move on.
- Use large fonts, slow down your pace, allow plenty of time for explaining each step.
What topics are best suited for this approach?
I’d say practically anything where students need to create something and show end results. Traditionally we have used this strategy in data and software carpentries to teach lessons in coding, but I see many other areas where we can bring this tool to work. It can work where we want to teach students writing, or drawing, or graphs, or indeed anything where complex skills are needed to bring in and combine several different skills and demonstrate their prowess on a computer.
What would you say?