I’ve been known to argue that computer programming (a.k.a. “coding”) is a new literacy. In this post, I’ll try to clarify why, and discuss some implications.
First, let’s define our terms. On what grounds can school subjects be classified as a kind of literacy? I can think of two criteria.
* The first criterion is the extent to which the subject is a necessary foundation for the study of other subjects. Based on that criterion, reading and writing are by far the most important, as it is hard to claim that any other subject can be pursued successfully without them. Reading and writing are the most fundamental of literacies. Mathematics is probably the next most important, as it is pretty much required for any serious engagement with any of the sciences, and all the areas of life that require understanding statistics.
Using that applicability criterion, coding is indeed a kind of literacy — not as foundational as the three R’s, but not an insignificant sideshow either. Coding is a major tool in mathematics, where it has opened up enormous areas of research. Moreover, it facilitates much exploration and conjecturing at all levels, and is even involved in some proofs. Finally, it is a key tool in simulation and data analysis, which in turn are essential to many sciences. And don’t forget that coding is also relevant to such pursuits as Web design and even some artistic endeavors.
* The second criterion for whether a subject is a kind of literacy is whether it is helpful in work and daily life. On this front, reading and writing again win the race, by far, as every aspect of one’s life and work is enhanced by them. In this respect, one might argue that coding might beat math for second place: much software can be enhanced by the use of macros or scripts. (Macros and scripts, of course, are small computer programs, though the tech industry for some reason buys into the idea that “program” is a dirty word, and is constantly looking for euphemisms, e.g. “macro”, “script”, “app”…) In any case, there is no doubt that a basic understanding of programming is useful in using spreadsheets, word processors, etc. more powerfully.
Using these two criteria (intellectual applicability, and practical usefulness,) I don’t think you can classify other school subjects as forms of literacy. Physics, biology, history, art, etc. are fascinating and important, and everyone should be exposed to those subjects, but they are not literacies.
That said, I absolutely reject the catastrophic line of thinking that literacies should trump everything else, and that therefore we should cut PE, art, music, science, history, etc. from our schools so as to give literacies the priority they deserve. Quite the opposite! Reading and writing should permeate the curriculum, and both math and computer science are taught more effectively to students who are studying a wide range of subjects. Those cuts are tightly connected to the test craze that politicians and privatizers are promoting in public education. (Notice that no one advocates making the cuts in the schools that cater to the well off. In those schools, it is a given that one needs to go beyond basic literacy.)
I also reject the anti-intellectualism that says we should only teach students topics that they will “use”. The argument goes like this: you can turn on the light without understanding electricity; you can read the latest poll numbers without understanding probability and statistics; you can use the computer without understanding programming; and so on. This attitude is widespread, and is the shameful consequence of believing that students should not or cannot learn to think.
Not everyone will be a doctor, but everyone should learn some biology. Not everyone will be a novelist or playwright, but everyone should study literature. Not everyone will become a software engineer, but everyone should be exposed to the powerful ideas of computer science.
I clarify this argument, with a focus on math education, in my next post.