“What qualifies you to teach computer science?” The question took my off guard. The tone as much as the words seem to be more of a challenge than anything else. The man who asked it was visiting the school where I was teaching during an open house for prospective students. Private schools, such as that one, really have to sell themselves to parents so questions about qualifications are important. My reply what that I had a Masters in Computer Science and 18 years as a professional software developer. That seemed to satisfy him much to my relief. That sort of formal experience is rare in high school computer science teachers though. After all there are lots of opportunities for such people in industry. One has to make a life style decision to take a teaching job with that sort of background. I know a number of people who did just that and I have great respect for them. One day I hope to be back full-time in the classroom myself. It was a rewarding time for me. But this brings up a good question, one of several things that Garth Flint brought up in his post – What we need for CS Education to happen. That question is “how much preparation does someone need to be a good high school computer science?”
A lot of schools seem to believe that having a FORTRAN course 20 years ago when one was an undergraduate Math major is plenty. At least that appears to be the case from some of the stories I have heard. The truth is that since there are few standards for what is required schools, districts, etc. are free to set their own standards. Some schools set them very low. I assume some set them very high – perhaps too high. There aren’t a lot of guidelines to help them out though.
I do believe that some formal training is a good requirement. Some professional development experience is helpful but not required. Nor is it generally sufficient. Knowledge along does not make a good teacher as a lot of people who have attempted the move from industry to education can attest. Some training on how to teach computer science is really helpful. I learned it mostly from a good mentor. Not every school has a senior CS teacher to mentor the new teachers though. We could use a lot of research based training as well. Mark Guzdial talks about that on his blog. Most recently at Learning how to prepare CS HS teachers: Why computer scientists have to get involved. There is no where near enough of that research going on and I agree with Garth that we can’t wait for it. We have to start training more CS teachers now. But what do they require?
A Masters Degree? Great but not really required. A four year bachelors degree in CS? Would sure be helpful but required? Maybe not. The AP CS course as it stands now is an attempt at a first computer science course at the university level. For most high schools this is as advanced as it gets. (Though not at all of them.) I guess in theory a thorough grounding in this topics would be enough but in practice I think it is far from enough. The old AP CS AB course included data structures which usually makes up the second university computer science course. That’s still probably not enough for a teacher. I’d like to see at least one more course, perhaps one in programming languages, as well as a course in software engineering. A web development course would be a good thing as well. So say four CS courses, a teaching CS course as well as some general education courses might be a good start. This is not dissimilar from an Endorsement In Computer Science Education program LEADING TO TEACHER CERTIFICATION FOR GRADES 6-12 available at Kennesaw State University in Georgia. My recollection is that this program was designed about the state certification standards in Georgia. As an endorsement program it requires that teachers already have a certification in some other field which is, in my opinion, somewhat unfortunate. Some people don’t really want to jump through the hoops to teach other subjects.
I don’t know of many other programs like this though I suspect that Georgia has others. Outside of Georgia I have no idea though. It’s a chicken and egg problem. Universities don’t design endorsement programs if there is not state certification standard. States tend not to set standards for which there are not training programs. In Georgia the state education people worked hand in hand with universities and the designed both the certification and endorsement program in parallel. It’s an example that perhaps more states could look at. It’s a start.