Goodwin and Hubbell open this section of the book discussing three coaches in very different disciplines: gymnastics, figure skating, and violin performance (Goodwin & Hubbell, 2013, p. 153-166). They note that while each of the coaches were accomplished in their fields, each did not rise to the most prolific levels of performance themselves. Yet they all trained and coached their students to the highest of achievements at international levels. This is because they were capable of recognizing what aspects their students needed further hone their skills to reach peak performance.
By the end of the section, Goodwin and Hubbell quip that the tired adage about "those who cannot do, teach" is wrong on many levels. Some of the best performers make for terrible coaches. In the field of computer science, I look no further than the infamous website, Stack Overflow, to highlight this issue. The site is one of the largest online forums for programmers to ask questions about coding concepts or why their code may not work and, no doubt, some of the most intelligent minds frequent the site. However it has garnered a reputation for the absolute toxic and elitist responses, particularly towards beginners (Slegers, 2015).
Perhaps we could say that Stack Overflow isn't meant to be a site for coaching, but none the less beginner coders will often ask for help and receive something quite different, harkening back to the 8th touchstone about having a safe learning environment. The role of a teacher is that of a coach with the patience, skillful eyes at discerning gaps of knowledge, and helping students understand how best to overcome their challenges and reach for mastery.
Coaches are or should always be on the lookout for the setbacks holding their learners back. One of the most common ways to do this is by checking a students understanding. Goodwin & Hubbell note that asking revealing questions and planning accordingly for them is very effective strategy to accomplish this. For one, by doing this we are modeling the line of critical thinking we want of our students to use. However, we are also teaching our students a certain level of resiliency, otherwise we are just providing answers as a quicker alternative to Google in the moment.
The most common question I get from my students is "how do I correctly write this thing I've done before"? Well, it isn't ever quite phrased that way, but I tend to ask students if they've successfully done this before and if so, where? Students often quickly realize what I'm getting at and will look up an old program. I frequently take this opportunity to remind them that there is nothing wrong with having to look this information up again, that's all part of the practice. Another student expressed slight frustration at how he would not remember the code for writing functions he had just learned. My encouraging retort was to remind him he felt the same way about variables, if statements, and loops and yet he is writing them all on command without referencing his former code or Google.
It is also recommended to let students do their fair share of talking. The sage on the stage is not an ideal scenario at this point, particularly in the digital age where students are constantly doing with their hands (for better or worse, we have yet to fully realize). In a similar vein, teachers need to also give students adequate time to think and respond, something science educator and education researcher Mary Budd called "Wait-Time" (Stahl, 1994).
When I introduce a new coding concept to my students, some of the concepts will be illustrated by diagram on the white board, as many students are visual learners (Houghton College, 2019). However, the actual coding part is done interactively and collaboratively in a shared online platform. I'm not only letting them do their fair share of talking, I'm letting them do the coding as well. This style in and of itself is rife with opportunities for coaching, but also for students to think about the mistakes that inevitably happen. I've managed to train my students to be patient, particularly if I ask another student to study the code and look for a problem. Recently a student made a 'rookie' mistake and I asked another student to spot the problem. The first coder had to bite their tongue because they quickly spot the mistake, but they knew the value of a peer studying the code for a moment to spot the issue.
For all of the hair-pulling moments we may have in CS, I can say the opportunities for deliberate practice are relatively easy to provide. The entirety of coding is built on doing so practice is almost built-in to the experience. That said, it is important the practice we provide is deliberate and intentional. We need to be clear of our purpose, showing students how to practice, observing the practice in action, and providing feedback on the outcomes. Rather than extol each of these specific items, I think much has already been said in section 3 regarding rubrics and section 7 for feedback.
However, I will take a moment to discuss the value of reteaching. My AP CS A class struggled with content in Unit 2, which is absolutely critical to have a solid foundation in before moving on. As Goodwin and Hubbell discuss, this is something I take responsibility for until my students have a deeper understanding for themselves. I spent two and half extra weeks on this reteaching the content in this unit providing more practice. Even now, I am reinforcing those concepts in every lesson because it needs more work, but don't be afraid to hang back. We do our students no justice moving on while we know they aren't ready.
If you are like me, then you may be a bit of an island as the only CS teacher on your campus. Speaking with other CS educators, this is neither uncommon nor unexpected given the fringe subject that it is. However there is much hope. For one, good teaching (or coaching, as this section is about) is not necessarily about how well you know the content or the support you have from peers of your subject, but how you coach students along. In fact, Code.Org's Professional Learning specifically targets non-CS teachers for training.
With that said, your colleagues are likely a wealth of information on effective teaching practices. Often I have found teachers are thrilled to have other educators observe their craft at work. I can't recommend this enough; carve our the time needed to make it happen. For the camaraderie aspect, see if you have a local CSTA chapter near you or join teacher forum groups like what Code.Org offers or the AP CSA and AP CSP Facebook groups. All of my encounters in these locations have been very encouraging and even if you only lurk, the information you will pick up along the way will be substantial. There is nothing like coaches coaching other coaches!