What does a certification program for CS high school teachers need to include? If a high school math or science teacher was going to begin teaching computer science, what do they need to know? I know of many teachers given this responsibility without any training for it. Since most states in the U.S. do not have a computer science certification, new teachers are often left on their own to prepare. A number of one week summer courses exist, such as those provided by the college board, but this is grossly inadequate for a new computer science teacher.

If we were to design an ideal course of studies to take a teacher with little to no programming experience and prepare them to teach a course like AP Computer Science, what should that program include? This question is not just theoretical since programs are currently being designed where none exist.

Here I am looking for two types of answers:


If you are familiar with an excellent program, what does it include?
If you are teaching computer science, what courses do you wish you took before teaching CS and why?
The College of St. Scholastica in Minnesota has a Computer Science Education graduate certificate program. It is a four-course sequence designed to add a CS endorsement to a high school teaching certificate, though no state-issued endorsement exists yet in Minnesota. The courses:


Computational Thinking and Standards for the K-12 Teacher
CS Principles, covering the AP CS Principles course description with additional material covering pedagogy and CS pedagogical content knowledge
Programming and Teaching Java, a Java-based course covering the AP CS A course description with additional material covering pedagogy and CS pedagogical content knowledge
CS Methods and Capstone, covering pedagogy and CS pedagogical content knowledge, CS education research, and development of a CS curriculum unit