Additional profile information on Alfred Thompson at Google+
As I write this teacher friends in Texas and Florida are getting ready to go back to school in the next week or so. I’m sure that many other teachers in other states are also getting ready. My wife, a middle/high school librarian, is a few short weeks from going back to work herself. It’s and exciting time filled with promise. Well it is for most teachers. But for teachers of computer science there is some uncertainty on the horizon.
One of the things I am hearing from teachers around the country is that school districts are cutting back on computer science. I know a teacher who used to teach a number of programming classes who is once again a full-time English teacher. Now there is nothing wrong with teaching English. I loved English as a student. But I do not think that dropping programming is a good idea.
Before I was a teacher I did not see a lot of value in teaching programming to high school students, let alone students younger than that. Nine years in the classroom changed my mind. In fact now I not only thing that high schools should offer programming as an elective I think it should be a required course. When I say that someone almost always responds with one of a couple of objections:
I think that all three of these objections miss something important. Programming is about problem solving and critical thinking. The last I look those were important schools for college bound students, students headed straight for the work place or trade schools *and* knowing how to solve problems is often useful when taking a standardized test.
I agree that many programming courses are hard. I would not suggest that a student with no programming preparation should enroll in an Advanced Placement Computer Science course. (Although that is the first programming course in far too many schools.) I can’t imagine someone accepting a student in AP Calculus if they had no prior courses in mathematics. Can you imagine an AP Calculus teacher teaching addition, subtraction, multiplication and division in there class? I don’t think so. And yet many AP CS teachers have to start from scratch. No wonder students find themselves in too deep.
That being said, a programming course can be fun and approachable for any student. Languages like Visual Basic .NET are not scary. Windows Forms, a key part of Visual Studio .NET, allows students to create real Windows programs with very little code and achieve real success early on in a course. There are free resource materials including a complete curriculum available at MainFunction.com. Check out the Curriculum Center.
I’ll have more to say about programming for everyone and teaching critical thinking and planning skills in future blogs. See you soon!
So who am I and why should anyone care what I have to say about teaching computer science? Good question.
I’m a 30 year veteran of the computer industry. That doesn’t mean all that much but I also spent 9 years as a teacher. One year I was a K-8 “specialist” in two elementary schools. At one I taught grades K-6 and in the other I taught grades 4-8. An interesting year to be sure. The next year I started the first of 8 years teaching high school computer science. There I taught programming in Visual Basic, C++ and Java. I taught Advanced Placement Computer Science for several of those years. One year I even got to help grade the AP CS exam which was a wonderful experience.
Currently I work for Microsoft where my job is to help computer science teachers (including those at a few universities but primarily now on K-12) with resources, training, and curriculum materials. I also act as an advocate for teachers with product groups and try to make sure that Microsoft products, such as Visual Studio .NET, meet the specific needs that teachers have. It’s an interesting job that give me a chance to meet a lot of wonderful people.
A couple of links to get things started.