This material is in early beta: over 300 suggestions and corrections are waiting to be folded in, some quite significant. Changes should be in place by July 2018, at which times printed copies and downloadable electronic copies will be made available.

Using This Book

This material on how to teach programming has been used in many ways, from a multi-week online class to an intensive in-person workshop. It’s usually possible to cover large parts of Chapters [s:models][s:process], Chapter 8, and Chapter 10 in two long days.

In Person

This is the most effective way to deliver this training, but also the most demanding. Participants are physically together. When they need to practice teaching in small groups, some or all of them go to nearby breakout spaces. Participants use their own tablets or laptops to view online material during the class and for shared note-taking (Section 9.6), and use pen and paper or whiteboards for other exercises. Questions and discussion are done aloud.

If you are teaching in this format, you should use sticky notes as status flags so that you can see who needs help, who has questions, and who’s ready to move on (Section 9.7.1). You should also use them to distribute attention so that everyone gets a fair share of the instructor’s time (Section 9.7.2), and as minute cards to encourage learners to reflect on what they’ve just learned and to give you actionable feedback while you still have time to act on it (Section 9.7.3).

Online in Groups

In this format, learners are together in groups of 4–12, but those groups are geographically distributed. Each group uses one camera and microphone to connect to the video call, rather than each person being on the call separately. We have found that having good audio matters more than having good video, and that the better the audio, the more learners can communicate with the instructor and other rooms by voice rather than via text online.

The entire class does shared note-taking together, and also uses the shared notes for asking and answering questions. (Having several dozen people try to talk on a call works poorly, so in most sessions, the instructor does the talking and learners respond through the note-taking tool’s chat.)

Online as Individuals

FIXME (medium): describe format

Multi-Week Online

This was the first format we used, and we no longer recommend it: while spreading the class out gives people time to reflect and tackle larger exercises, it also greatly increases the odds that real-world interruptions will require people to drop out.

The class meets every week for an hour via video conferencing. Each meeting may be held twice to accommodate learners’ time zones and schedules. Participants use shared note-taking as described above for online group classes, post homework online between classes, and comment on each other’s work. (In practice, comments are relatively rare: people strongly prefer to discuss material in the weekly meetings.)