Programming Classes for Everyone

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:

  • Programming is a vocational school and we are a college preparatory school.
  • Programming is too hard for many students.
  • We need to focus on core skills so our students can pass standardized tests.

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 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!

Comments (3)

  1. tzagotta says:

    Hi Alfred, I must respectfully disagree with your thesis. While I agree that generate computer skills are important to be taught in school, programming is not. This is simply not an essential skill for all students.

    I would liken this to auto repair classes. Sure, it would be a useful skill – but should everyone learn it? Everyone should learn to drive, but only those interested should learn how to fix or build a car. Or home building…

    At the end of the day, the world is not just about computers (or cars, or houses, …).

    p.s. I’m currently a software engineer/manager/business owner, have been involved in computers since about age 13. Took computer classes in school, but they were too easy, too general.

  2. AlfredTh says:

    Thanks for your comment.

    Some years ago I would have (actually probably did) say the same thing. But my point is not that we teach programming to create programmers. We do not teach English to create novelists. And we teach a lot of math and science that almost no one ever uses. We teach those subjects for the benefits they create in improving the mind and the way people think. And I think you may underestimate the transference of skills involved in programming.

    The whole idea of decision making (Boolean algebra, if-then-else, etc.) applies to the way we analyze problems and make decisions in the real (i.e. not programming) world. To say nothing of how much better you can use computer applications if you understand those things.

    I think that critical thinking is an important thing that is missing from today’s education. Programming is, I think, one of the best ways to teach that skill. So it is not about creating programmers or even dealing with computers but dealing with problems that I think justify teaching programming.

  3. tzagotta says:

    Alfred, thank you for your thoughtful reply.

Skip to main content