Preparation to Teach High School Computer Science

Computer Science Teacher
Computer Science Teacher - Thoughts and Information from Alfred Thompson

Preparation to Teach High School Computer Science

  • Comments 4

“What qualifies you to teach computer science?” The question took me 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 teacher?”

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.



  • Those are good suggestions.  I always bristle a little when these issues come up because my qualifications are shaky.  I had BASIC 20 years ago. :) My real background is educational technology with an emphasis on web development (something I was employed to do for 5 years). I've since taken a first year CS course and am now teaching the material I just learned a year ago, so I know it even better now.  I'm about to take a second year course.  I might be teaching some of that material next year.  I would love to have the time to take a more complete degree, but honestly I'm not sure I need it.

    Mark mentioned in his post the lack of CS positions.  That is the reality.  The other reality I discovered at CS&IT is that most CS teachers also end up teaching the technology courses--Excel, etc.  and/or doing faculty development in technology.  I do that a little myself at the middle school level, though I teach web development and Scratch at that level.  Most CS majors don't want to be stuck teaching Excel much less working with teachers to learn how to use Google docs.

    I also know a lot of about teaching.  I've been in a college classroom for over 20 years, and my Ph.D. research was about the best ways to teach writing (many of which are similar to ways of teaching CS).  My background looks crazy from the standpoint of a CS Education researcher hoping to have "qualified" teachers teaching K-12 CS, but it's perfect for my environment.  I do think I need to beef up my CS credentials and I'm doing that on my own.  One thing I've found frustrating is the lack of readily available CS courses that don't cost an arm and a leg.  I'm a teacher.  I can't spend $2-3k per course.  Thank goodness for community colleges!

    So that's my story.  I'd say someone who's a good teacher with some CS background is going to do just fine.

  • I worry a bit when these discussions come up as well. I am not a certified teacher and the 9 years in the classroom I taught were in private schools. I like to think I am a good teacher. A number of my former students have told me that I was for them. I think there are multiple paths that work well for different people. I tend to think that the CS teachers who show up at professional development events like CS & IT are demonstrating something important that should be valued - a commitment to lifelong learning and an interest in new things. People who go out on their own and learn through good PD events, self assigned projects, or just regularly working at it on their own using web resources, books and other DIY tools are at least as well off as those who get formal training. THis is especially true if people with formal training think that is enough and stop there.

    ALso as you point out the good teacher part is often under appreciated. Knowledge of the matterial is not enough no matter how great that knowledge is.

  • Look at this.  cs.kennesaw.edu

    I found it here.  msdnrss.thecoderblogs.com/.../preparation-to-teach-high-school-computer-science

    This program seems realistic in today’s high school CS hiring environment.  I really want that CSED 4416 on-line.  This would fit in nicely with a math, science or business degree that would get a teacher a job.

    I feel like Laura.  I have been teaching programming since 1983 but I still feel that my knowledge of programming is minimal for the classroom.  I have my finger in the dike but the water is coming over the top.  I would willingly take some CS course work if I could find something that would actually improve on my ability to teach CS (and not put me in the poor house).  The few programming courses I have taken at the university level were absolutely atrocious.  Adjunct instructors that were computer scientists but could not teach a duck to float.  There is also nothing offered after 4:00 that has any relevance to the high school classroom.

  • Here's one more, Alfred: cs.columbusstate.edu/endorsement  We've worked with Columbus State in GaComputes, and those are the classes that we studied in Klara Benda's paper (mentioned in my blog article).

Page 1 of 1 (4 items)