One reason I started this blog was to provoke myself into thinking more and thereby, hopefully, doing more. One of my favorite thinking topics is the status of programming education for K – 12 educators. Notice I said “programming”, not “Computer Science”. “What is Computer Science?” gets a little bit out there for my tastes and time. Programming sort of narrows things down a little. Some really cool languages are being put out there to teach programming to kids. The list includes Kodu and Small Basic from Microsoft, Alice and Scratch from MIT, Greenfoot from the Univ of Kent, variations of old school Logo, Python and probably others I do not know about or have forgotten, all touted as teaching languages for kids. Then there are the languages that are used as teaching languages but are also mainstream programming languages; Java, VB, C#, C, etc. There are always the discussions as to which is best programming language to teach kids with. In one of my previous blogs, My First Programming Reviews, I discuss and review the languages I am most familiar with. What seems to be missing in all this is how to teach programming with these various languages. There are tutorials on how to write programs in all of these but a tutorial does not show a teacher methods to present the concepts to the student. I also teach math. If I am introducing a new math concept I have several different methods of teaching a concept. I usually have several different problems of different types to reinforce the concept. Many, many years ago when I just a pup in college learning how to be a math teacher I took a required course for prospective math teachers from the Education Department called Methods of Teaching Secondary Mathematics. The course gave new math teachers a starting point on how to teach math. The course did not teach math, it taught how to teach math. In one of my more idle moments I started looking at the Education Departments of Montana colleges. One college offered a CS minor in Education but had not quite figured out that business applications is not computer science. A couple offered a CS minor for Education but they were just straight CS minors with no “how to teach CS” involved. My own alma mater, the University of Montana, offers nothing for education majors. How has Computer Science/Programming missed the teacher education boat so completely? Or is it the fact that it is Montana that makes it look so bad? I did look at a couple of bigger universities in the northwest with the same results. So in a moment of absolute stupidity I convinced myself that I could write an outline for such a course. This outline will cover the topics I wish I had known before I started teaching Programming. As stated before this course is not intended to teach Programming, but is intended to give CS majors or computer literate Education majors a starting point to begin teaching with. To those of you that read this blog and are familiar with teaching high school Programming, please give suggestions as I build this thing. Perhaps I can convince UofM to actually teach the course. If nothing else, writing this will get some interesting dialog going. So stand by for irregular posts as I build this thing through the summer.