Computer science educators are fond of saying that computer science is a lot more than just programming. Programming has a bad reputation. And in some ways so do those of us who find programming to be a lot of fun and very interesting. So there are some good reasons to deemphasize programming to some extent. But can we avoid it completely? A couple of people I respect have taken up some form of this question lately.
Mark Guzdial has a great post on his blog titled Programming is central to Computer Science. Mark makes a good case for programming being a central notation system that is essential for computer science. The whole thing is worth reading and I can hardly do it justice in a summary. One the other hand, the Wicked teacher of the west takes a slightly different view on her post titled Is programming necessary? She riffs off of some comments by Robb Cutler (another really smart guy who I wish would blog) Robb “thinks we could teach introductory CS at the K-12 level without any programming at all.”
Well, yeah, I guess we could teach some computer science without programming. The CS Unplugged program is one great example of that. There is a lot of good computer science education there. But is it enough? I’m not convinced. Teaching computer science without computer and programming is like teaching physics without math and experiments. One can go so far but no further. I do think that it would be worthwhile to teach some computer science concepts without programming. Let’s get people to understand where the path leads. But taking them as far as they need to go is going to take some programming. There we need to make it more interesting and relevant.
This is a good discussion to have though. Where does the need for programming start and how far can one or even should one go before introducing it?