Mark Guzdial asks the question What’s the argument for becoming a computer science teacher? on his blog. It’s a good question. While as a former computer science teacher I may appear to be a strange one to make the case but I’m going to try. Being a computer science teacher is a great job. Really being a teacher in any subject is a great job and a lot of the reasons for teaching other subjects are part of teaching computer science. The student interaction, seeing students learn new and exciting things, and generally making a difference for good in the world. But there are of course some special things about teaching computer science that complicate the picture somewhat.
One is that if you are really qualified to teach computer science you are probably qualified to get a much better paying job in industry. If this is true, and generally it is, why take the lower paying teaching job?
Well besides the teacher benefits there is a certain amount of freedom to learn new things that one doesn’t always have in industry. In industry your learning can be channeled in certain directions by management. And with work hours in the computer industry often being as time consuming as those in teaching (trust me – I’ve done both) one doesn’t always have the time to learn about ones own interests. Computer science education is somewhat directed by the AP CS exam but that is only for one course. And while some teachers, by desire or necessity, focus all their courses around that one course many find the time and incentives to learn things in other directions. Game development for example using C# and XNA. Or more web development (perhaps using Expression Web with some free curriculum) In all of this, because of the nature of teaching, one can often focus on breath over depth. So rather than being confined to digging deeply into one of two technologies teachers can often dig lightly into a wide variety of technologies.
Of course this brings up the fact that some people are not excited about learning a lot of new technologies and having the curriculum change on a regular basis. I have no doubt at all that this is true. I have met teachers who are totally resistant to change and want to do the same thing year after year. To that I ask, do we really want people like that teaching (period – let alone computer science)?
The biggest problem is the law of supply and demand. There is not enough of a demand. Yes, NSF has a 10,000 computer science teacher effort but I don’t see much of a sign that the states or even school districts are buying this. If there were lots of advertisements for full-time computer science teachers we’d probably see more people looking at doing it. Many people don’t want to teach several sections of Math or history or English that they can teach one or two sections of computer science. This is widely true I think. We don’t make the jobs common enough or interesting enough (and by interesting I am not talking about money) for excited young people to move into the field of CS education.
When done correctly, allowing some teacher freedom to develop new curriculum for new technologies, availability of in-service training, providing support in both facilities and recruiting help (not hindrance) from guidance, teaching computer science to high school students is a really great job. It is a chance to start the next generation of world changing computer/computing scientists and industry professions with a solid base. It is a chance to work with smart kids who have a real passion for the subject. Why become a computer science teacher? It’s a fun job and a world changing job. If you love computer science it is even more fun than any other teaching job you can have.
Note: Take a look at Computing in the Core which is an effort to help get computer science adopted into the core curriculum in schools.
My first teaching job was as a math teacher in the little town of Winifred , MT in 1982. There were 100 kids K – 12 with 12 – 20 kids in the high school. We played 6-man football. At the interview the superintendent pointed to three TRS-80s on a table and asked if I knew anything about “them things”. Since I needed the job and they were offering my wife half-time I said “Sure”. After all, I could do Logo on an Apple IIe learned in my math methods course so I figured I could learn how to run a TRS-80. So the Superintendent asks “Can you teach a class on how to use the things and maybe do some after-school parent thing with them?” I was really desperate for the job so I said “Sure”. I had just become a computer science teacher. Heaven forbid if the school learns you can fix them too. You just became the school techie during you prep period. What is real interesting is that 30 years later the computer science teacher qualification and hiring procedure has not changed a whole lot.
Teaching CS is more fun than a box full of kittens. There are so many directions for courses. A course labeled “Programming I” has so many possibilities that my problem is usually “what do I want to do this year?” Small Basic, Scratch, Alice, Kodu and if the kids are getting bored download Gamemaker and have them just play with it. Learning new software is a major part of CS. With all the different phone platforms available; Droid, Win7Phone, iPhone, writing apps is a viable way of teaching programming.
Of course there are some minor glitches with teaching CS. Maybe first and foremost is nobody shows you how to do it. No methods course so you are usually spending an inordinate amount of time figuring out what you want to do and how to do it. You are usually the one and only CS teacher in the building so no experienced co-workers to plagiarize. Kid numbers are low so you are always worried about you classes disappearing. On the other side of the fence you usually get a pretty select group of kids. The administration has no idea what you are doing so they leave you alone. If single, you end up saving a fortune in bar bills because you no longer have an out-of-school life. After all, if you are going to assign a project you probably ought to do it first. You have an excuse to buy a cool phone so you can write code for it. Tax write off! And best of all, at least for me, is it is realistic to change what you teach every year. Math is math; it does not change a whole lot. But with CS there is always something new to play with. Why would someone not want to be a CS teacher?