Programming Literacy

April 2nd, 2012

Randall Stross writes for the New York Times about how different schools are introducing computer science courses intended to teach students from unrelated fields “computational thinking”:

At Wheaton College in Norton, Mass., Mark D. LeBlanc, a professor of computer science, teaches “Computing for Poets.” The only prerequisite, according to the course syllabus, is “a love of the written (and digital) word.”

Professor LeBlanc has his students learn the basics of Python, another modern language used in the software industry. But this course is tied to two courses offered by the English department on J.R.R. Tolkien and Anglo-Saxon literature. Students in the computing course put concepts to immediate use by analyzing large bodies of text. The syllabus is more like what one would find for a humanities course.

“In the class, we take on big problems,” Professor LeBlanc says. “The majority of the students are overwhelmed — ‘Where do we start?’ ” This provides opportunities to illustrate the concept of decomposition, which he describes as “breaking a large problem into small manageable problems.”

I love that, and I love the trend toward trying to teach people who aren’t going to necessarily develop software for their occupation how to think like programmers do. The sort of things you learn—breaking a larger problem down into smaller problems, thinking very precisely and step-by-step, thinking about things as a system—are skills that are widely applicable and useful. It teaches you how to analyze a problem, how to move from “we want this accomplished” to “to accomplish this, we are going to break it down into these pieces,” and it teaches you how to see how systems work. Both are incredibly powerful.

I’m not sure that everyone needs to know how to program, but I absolutely believe that people are better off when they’re exposed to it and the kind of thinking it requires. Moreover, it is only growing more important for people to have a good idea of how software works, because more and more things are being replaced by software. It’s important that most people move from understanding software as some kind of magic created by shamans that, if given the right incantations, does what they want, to having a good idea of what it’s doing. If we don’t begin to fix that, we’re going to allow a very large technical divide to develop between people who can work with software and people who can’t, and that’s going to lock out a huge number of people from the benefits of our future economy.