Most people I know who teach computer science more or less figured out how to do it on their own. Some were lucky enough to have peers in the same school or close by to help them figure it out but that is still on the job training. The result is that most of us teach computer science the way we were taught. How people who taught themselves computer science figure out how to teach it is something I am not at all sure about.
Along the way, if we’re lucky, we manage to get some professional development. Some APCS workshops perhaps. Some outstanding teachers teach those workshops and a lot can be learned from them. Or the CSTA Annual Conference if we have some travel budget. Some local conferences if we don’t. SIGCSE is always interesting. Even though most of it is targeted at university faculty the SIG does make a real effort to help high school teachers out there.
This seems atypical compared to most disciplines. Usually there are graduate programs (even undergraduate) in “how to teach x.” or methods courses. There are not many programs out there for computer science education. Recently Matthew X. Curinga started looking at/for these programs and posted some primary results at Where are the CSE programs? Mark Guzdial reports that these programs are “woefully undersubscribed.” Not a good thing.
For some reason the same systems that think that math teachers and English teachers, among others, should have methods courses on how to teach based in research and years of study think that anyone who has a clue about computers can teach computer science. We ask teachers to get advanced degrees in teaching reading (natural languages) but expect someone who had a FORTRAN course 20 years ago to be able to teach Java without any additional training. Weird!
The state of certification for computer science teachers is a mess in the US. Without clear certification requirements there is little incentive for teachers to take CS methods courses let alone get an advanced degree in the field. Well other than intrinsic motivation to become a better teacher. The rareness of the existing programs means that few of them are convenient to many teachers though so even with self interest it can be difficult to take the courses that do exist. Finding them is difficult as well.
The situation has been described as a “chicken and egg” question. With too little demand for CS education methods courses there are not many of them. And with there not being many courses it is hard to make attending one a requirement. Somewhere along the line something has to push to break the deadlock. Will the CS10K effort be the catalyst? Will it take more pressure moving Computer Science into the common core? Or is this only going to happen on a long term state by state basis?
In the mean time we could at least make sure that more teachers or pre-service teachers knew about the courses that do exist and were given incentive to take these courses. Almost everyone teaching CS could use some well-researched ideas about how to teach the material better.