1 Introduction
Grassroots groups have sprung up around the world to teach programming, web design, robotics, and other skills to free-range learners. These groups exist so that people don’t have to learn these things on their own, but ironically, their founders and teachers are often teaching themselves how to teach.
There’s a better way. Just as knowing a few basic facts about germs and nutrition can help you stay healthy, knowing a few things about cognitive psychology, instructional design, inclusivity, and community organization can help you be a more effective teacher. This book presents key ideas you can use right now, explains why we believe they are true, and points you at other resources that will help you go further.
Parts of this book were originally created for the Software Carpentry instructor training program, and all of it can be freely distributed and re-used under the Creative Commons Attribution-NonCommercial 4.0 license (Appendix A). You can use the online version at http://teachtogether.tech/ in any class (free or paid), and can quote short excerpts under fair use provisions, but cannot republish large parts in commercial works without prior permission.
Contributions, corrections, and suggestions are all welcome, and all contributors will be acknowledged each time a new version is published. Please see Appendix C for details and Appendix B for our code of conduct.
1.1 Who You Are
Section 6.1 explains how to figure out who your learners are. The four that this book is for are all end-user teachers: teaching isn’t their primary occupation, they have little or no background in pedagogy, and they may work outside institutional classrooms.
- Emily
- trained as a librarian and now works as a web designer and project manager in a small consulting company. In her spare time she helps run web design classes for women entering tech as a second career. She is now recruiting colleagues to run more classes in her area, and wants to know how to make lessons others can use and grow a volunteer teaching organization.
- Moshe
- is a professional programmer with two teenage children whose school doesn’t offer programming classes. He has volunteered to run a monthly after-school programming club, and while he frequently gives presentations to colleagues, he has no classroom experience. He wants to learn how to build effective lessons in reasonable time, and would like to know more about the pros and cons of self-paced online classes.
- Samira
- is an undergraduate in robotics who is thinking about becoming a teacher after she graduates. She wants to help at weekend robotics workshops for her peers, but has never taught a class before and feels a lot of impostor syndrome. She wants to learn more about education in general in order to decide if it’s for her, and is also looking for specific tips to help her deliver lessons more effectively.
- Gene
- is a professor of computer science. They have been teaching undergraduate courses on operating systems for six years, and increasingly believe that there has to be a better way. The only training available through their university’s teaching and learning center is about posting assignments and submitting grades in the online learning management system, so they want to find out what else they should be asking for.
These people have a variety of technical backgrounds and some previous teaching experience, but no formal training in teaching, lesson design, or community organization. Most work with free-range learners and are focused on teenagers and adults rather than children; all have limited time and resources. We expect our quartet to use this material as follows:
- Emily
- will take part in a weekly online reading group with her volunteers.
- Moshe
- will cover part of this book in a one-day weekend workshop and study the rest on his own.
- Samira
- will use this book in a one-semester undergraduate course with assignments, a project, and a final exam.
- Gene
- will read the book on their own in their office or while commuting, wishing all the while that universities did more to support high-quality teaching.
1.2 What to Read Instead
If you are in a hurry or want a taste of what this book will cover, (Brown and Wilson 2018) presents ten evidence-based tips for teaching computing. You may also enjoy:
The Carpentries instructor training, from which this book is derived.
(Lang 2016) and (Huston 2012), which are short and approachable, and which connect things you can do right now to the research that backs them.
Weinstein et al. (2018)
are all full of practical suggestions for things you can do in your classroom,
but may make more sense once you have a framework for understanding why their ideas work.
which explains what’s true about education by explaining what isn’t,
and (Didau and Rose 2016),
which grounds learning theory in cognitive psychology.
(Papert 1993),
which remains an inspiring vision of how computers could change education.
does a better job of summarizing Papert’s ideas than I possibly could,
and (Crawford 2010) is a thought-provoking companion to both.
Watters (2014) explain why so many attempts at educational reform have failed over the past forty years,
how for-profit colleges are exploiting and exacerbating the growing inequality in our society,
and how technology has repeatedly failed to revolutionize education.
(Brown 2007) and (Manns and Rising 2015), because you can’t teach well without changing the system in which we teach, and you can’t do that on your own.
Those who want more academic material may also find National Academies of Sciences, Engineering, and Medicine (2018) rewarding, while Mark Guzdial’s blog has consistently been informative and thought-provoking.
1.3 Acknowledgments
This book would not exist without the contributions of Laura Acion, Jorge Aranda, Mara Averick, Erin Becker, Yanina Bellini Saibene, Azalee Bostroem, Hugo Bowne-Anderson, Neil Brown, Gerard Capes, Francis Castro, Daniel Chen, Dav Clark, Warren Code, Ben Cotton, Richie Cotton, Karen Cranston, Katie Cunningham, Natasha Danas, Matt Davis, Neal Davis, Mark Degani, Tim Dennis, Paul Denny, Michael Deutsch, Brian Dillingham, Grae Drake, Kathi Fisler, Denae Ford, Auriel Fournier, Bob Freeman, Nathan Garrett, Mark Guzdial, Rayna Harris, Ahmed Hasan, Ian Hawke, Felienne Hermans, Kate Hertweck, Toby Hodges, Roel Hogervorst, Mike Hoye, Dan Katz, Christina Koch, Shriram Krishnamurthi, Katrin Leinweber, Colleen Lewis, Dave Loyall, Paweł Marczewski, Lenny Markus, Sue McClatchy, Jessica McKellar, Ian Milligan, Julie Moronuki, Lex Nederbragt, Aleksandra Nenadic, Jeramia Ory, Joel Ostblom, Elizabeth Patitsas, Aleksandra Pawlik, Sorawee Porncharoenwase, Emily Porta, Alex Pounds, Thomas Price, Danielle Quinn, Ian Ragsdale, Erin Robinson, Rosario Robinson, Ariel Rokem, Pat Schloss, Malvika Sharan, Florian Shkurti, Dan Sholler, Juha Sorva, Igor Steinmacher, Tracy Teal, Tiffany Timbers, Richard Tomsett, Preston Tunnell Wilson, Matt Turk, Fiona Tweedie, Martin Ukrop, Anelda van der Walt, Stéfan van der Walt, Allegra Via, Petr Viktorin, Belinda Weaver, Hadley Wickham, Jason Williams, Simon Willison, Karen Word, John Wrenn, and Andromeda Yelton. I am also grateful to Lukas Blakk for the logo, to Shashi Kumar for LaTeX help, to Markku Rontu for making the diagrams look better, and to everyone who has used this material over the years. Any mistakes that remain are mine.
1.4 Exercises
Each chapter ends with a variety of exercises that include a suggested format and how long they usually take to do in person. Most can be used in other formats—in particular, if you are going through this book on your own, you can still do many of the exercises that are intended for groups—and you can always spend more time on them than what’s suggested.
If you are using this material in a teacher training workshop, you can give the exercises below to participants a day or two in advance to get an idea of who they are and how best you can help them. Please read the caveats in Section 9.4 before doing this.
1.4.1 Highs and Lows (whole class/5 min)
Write brief answers to the following questions and share with your peers. (If you are taking notes together online as described in Section 9.7, put your answers there.)
What is the best class or workshop you ever took? What made it so good?
What was the worst one? What made it so bad?
1.4.2 Know Thyself (whole class/10 min)
Share brief answers to the following questions with your peers. Record your answers so that you can refer back to them as you go through the rest of this book.
What do you most want to teach?
Who do you most want to teach?
Why do you want to teach?
How will you know if you’re teaching well?
What do you most want to learn about teaching and learning?
What is one specific thing you believe is true about teaching and learning?
1.4.3 Why Learn to Program? (individual/20 min)
Politicians, business leaders, and educators often say that people should learn to program because the jobs of the future will require it. However, as Benjamin Doxtdator pointed out, many of those claims are built on shaky ground. Even if they were true, education shouldn’t prepare people for the jobs of the future: it should give them the power to decide what kinds of jobs there are and to ensure that those jobs are worth doing. And as Mark Guzdial points out, there are actually many reasons to learn how to program:
To understand our world.
To study and understand processes.
To be able to ask questions about the influences on their lives.
To use an important new form of literacy.
To have a new way to learn art, music, science, and mathematics.
As a job skill.
To use computers better.
As a medium in which to learn problem-solving.
Draw a 3x3 grid whose axes are labeled “low,” “medium,” and “high” and place each reason in one sector according to how important it is to you (the X axis) and to the people you plan to teach (the Y axis).
Which points are closely aligned in importance (i.e. on the diagonal in your grid)?
Which points are misaligned (i.e. in the off-diagonal corners)?
How should this affect what you teach?