People sometimes accuse me of being an elitist CS snob that I feel that CS teachers have to have advanced CS degrees.
It's not that at all. Rather, I feel that CS teachers are smart and capable. Circumstances frequently result in a teacher in front of a CS class with limited content and pedagogical content knowledge. It's not ideal but it's reality. Of course I feel that we should do everything to support and encourage these teachers but we should also insist that after a reasonable period of time, they know their stuff.
This is why I hate it when I hear people in the CS Ed community say something is too hard. Git's too hard. The command line is too hard. Functional programming's too hard 1. That's all nonsense. At last year's SIGCSE conference people from a state, I forget which, was considering not using the Praxis exam for CS teacher certification even though the state uses the Praxis exam for other subject areas. They claimed that the praxis was too hard for CS teachers.
I haven't taken the Praxis exam but some friends have. It doesn't appear to be unreasonable at all2.
While I can certainly understand a teacher not knowing much when they start - thrown in due to necessity I think it's ridiculous not to insist that they ultimately get to real mastery.
A math teacher generally has to know math beyond calculus. Science teachers have to have gotten through Orgo. English teachers have to understand Joyce. **THIS IS HARD STUFF!!!!**3
I think it's insulting to say that CS teachers aren't capable of doing the same in their subject area. '
whether or not any of these topics are appropriate for a particular course is discussion for another time
although I'm not a big believer in standardized exams for certification or in general.
There are plenty of lousy teacher prep programs that don't ensure teachers learn the subject matter they should but the good ones do.