Teaching Computer Science without a Computer Science background is harder than teaching anything else I can think of, even if that something else is also outside your area of expertise. It really is. And here’s why.
If you talk to anyone in Computing Education Research (CER), you will find that they understand how difficult, and indeed traumatic, it can be for teachers without a Computer Science background to be told they have to teach CS. Because they are supporting those teachers, and researching ways to help them. I’ve just spent the weekend at the most amazing conference, ICER2016. It’s a Computing Education Research conference, with a community of people who are passionate about computing education. I was struck by how well the problem was understood, because I can’t seem to get people outside the field to understand.
For example, one teacher I talked to commiserated and then said “I know what you mean, it’s like when non-Geography teachers teach Geography.” But it’s really not, and I think it’s time to articulate the reasons why.
First, some background for those of you who don’t work in schools. Teachers are almost inevitably going to have to teach things they are not trained in. It’s taken for granted in schools and happens everywhere. The simple reason for that is budget. If your budget is stretched thin, which it always, ALWAYS is (at least in government schools), then you need your teachers to be teaching at capacity 100% of the time. You can’t have a teacher who is teaching fewer classes than they have time for, because then you have to hire more teachers than you physically need. And there’s just no money for that. It’s rare that the precise number of classes to be taught in a particular discipline adds up to the precise number of teaching hours available from experts in that discipline. Life’s just not that neat. So teachers teach outside their expertise and qualifications all the time, and don’t generally get a chance to say “No, I can’t do that.”
Added to that is the huge government push to teach programming and computational thinking, which seems to be happening all over the world, and the severe lack of teachers with experience in those things. All of which means that it is becoming increasingly common for programming and computational thinking to be taught by teachers that have no qualifications or prior experience in them.
Why is that so traumatic? How can I substantiate this claim that it’s worse than, say, teaching Geography without a qualification? For me there are three fundamental points.
The first is that no-one I know is scared of Geography. They may not be competent in it, but the idea of it does not terrify them. Whereas people without coding experience are frequently literally terrified of it. And why should we expect otherwise? When you know that it’s possible to lose hours of work with an unfortunate keystroke just using a computer, how much more catastrophic could it be to make a mistake programming it?
Years of poor design decisions and bugs in code have taught us that using computers can be a frustrating, distressing, and flawed process. It has also taught many people that they are not good with computers. When I teach usability that’s the first thing we look at. Where does that narrative come from? It actually comes from computers not being good with people. (But that’s probably another blog… or 50)
So we are taking people who know that they struggle to use computers. Who know that they aren’t always going to be able to work out how to do the things they want, and that they will sometimes lose work due to unexpected (and incomprehensible) errors, and now we’re asking them to program them. More than that, we’re asking them to teach kids to program them.
The second major issue is one I hadn’t thought much about until Sunday, when Katrina Falkner raised it on the way to dinner. Everyone has studied geography at some point. They’ve seen it before. And this is true of most school subjects. Even if they drop maths at the first available opportunity, they’ve still had plenty of exposure to it. But most adults have never programmed at all. It’s entirely foreign to them. They don’t have even the beginnings of the right frames of reference to place these new skills into. They’ve never had the slightest introduction to this stuff. So it’s not like taking something you met at school and wrapping your head around it. It’s not taking something you feel vaguely familiar with and trying to become expert.
It’s taking something wholly unfamiliar and deeply daunting and trying to teach it to others.
In some cases the fear is so strong it’s like taking an arachnophobe and asking them to teach spider handling with live huntsman spiders. You can tell them all you like that huntsman spiders are not dangerous. That won’t convince them that this is something they can do.
Just as getting over arachnophobia takes time and exposure, so, too, does dealing with a fear of code. You need time, safe, accessible challenges, and plenty of support. And sure, teachers get PD time, but not a whole lot. In general teachers are learning just a little ahead of their students. Which doesn’t give them any space to get comfortable and lose their fear before they have to stand up in front of classes and teach them that this is a fun thing to do.
I worry about this a lot. Because I do believe that it’s great to introduce everyone to programming, and computational thinking. If everyone tries it, some people who have never thought of trying it will actually discover that they love it. But if what we’re doing is putting people who are terrified of it up as teachers, what message is that going to send to their students?
“We’re forcing you to do this, and you’re quite right to fear it!” is not an ideal foundation for a lifelong love of CS.
The third issue some may discount as trivial, but I can tell you first hand that it is a crucial factor in burnout: there is often only one teacher in a school in this situation. To be the only one of your kind is a terrible burden. For emotional survival in high stress situations (like, say, teaching way outside of your expertise), having someone you can turn to and ask “hey, how did you handle it when this happened?” or “I can’t find a good way to teach that, what do you do?” is utterly fundamental. Without that support teachers can spend a lot of time feel alone, inadequate, and overwhelmed.
I keep seeing publications about cs teachers leaving the profession, and I am just not surprised.
These issues all raise possible “treatments” – access to more pd, ongoing support, creating networks of cs teachers – but we need the powers that be – governments, school leadership, etc – to recognise the issues in order to put resources into these support systems. I know of some fabulous organisations already doing this kind of work – Adelaide CSER, Georgia Tech, and others – but we need so much more.
Teaching CS without a CS background is tough. And until we really acknowledge that and support it properly, we’ll continue to struggle to make it work. And in the process we will continue to turn kids off CS, and burn teachers out trying.