Some time ago, I argued that computer programming is a literacy, because it enhances learning in other disciplines, especially math. It is not nearly as important as reading and writing, which apply to all subjects, or as math, which applies to all sciences. But given the place of the computer in modern life, and the powerful ideas that are part of computer science, it is important enough to make it a part of all students’ education.
As it turns out, this idea was not met with universal agreement. The arguments against failed to change my mind, but they were not without merit. Among the many objections that were raised, I remember three.
1. If you’re going to add coding to the curriculum, what will you take out?
This is the easiest objection to answer: programming is not as foundational as the other literacies, and thus does not deserve nearly as much time. Technology has made parts of the math curriculum obsolete. If we spend less time on paper-pencil multi-digit arithmetic, or on endless drills of a few basic algebra skills, that will open up enough time to teach introductory programming ideas.
2. Coding for all will not solve the problem of inequality.
Well, yes, of course that is true. It is a myth that education can solve societal problems. It works better in the other direction: reduce poverty, and you will improve education. Even within education, there is a sort of arms race: as soon as a particular course becomes available to all, the children of privilege have to make up for it in some way. Take the example of algebra: once 9th grade algebra came to be seen as a basic part of education for all students, it became important for the better-off to have their children take algebra in 8th grade. When that became widespread, the pressure mounted for 7th grade algebra. Or take AP courses. As these become more widespread, elite private schools are starting to move away from them. Coding for all may mean that some kids are offered more advanced computer science classes. So be it. It will still be a good thing.
3. In the real world, coding for all will be taught poorly.
That is almost certainly true. Education is a low priority in this culture, and anyone with a deep understanding of computer science can earn a lot more money by working for industry. Making computer science available to all students will require a substantial increase in the demand for teachers of programming, with no corresponding increase in the supply. The reality of public education is that this will mean that insufficiently prepared teachers will be doing the teaching.
So, yes. In the short run, raising the bar can indeed backfire, especially if it’s implemented poorly. Again, look at algebra. Even though a lot more was known about better ways to teach algebra, the mandate of “algebra for all” was translated into teaching a traditional Algebra 1 to everyone. This is a course that relies largely on carrying out procedures without understanding, that tries to compress two or more years of content into one, that ignores the existence of technology, that fails to provide context except as an afterthought… As a result, it was used as yet another way to flunk students.
“Algebra for all” need not be that. It can be seen as a call to teach this material well, over several years, with the help of appropriate tools, in meaningful contexts. To some extent, these ideas are embedded in the Common Core State Standards for Math, so we may still see some forward motion on that front. (Though alas, bad implementation is par for the course: unrealistic adoption pace, insufficient support for teachers, links to absurd high-stake tests, etc. I wrote about this here.)
In any case, the call for “Algebra for all” was still a step forward back then, because it laid the groundwork for the next round, and rejected the idea that only white kids could do algebra. It remains the centerpiece of legendary civil rights leader Bob Moses’ Algebra Project.
Likewise, demanding coding for all is the opening salvo in a long term project. I have no illusion that it will solve social problems. It will unfortunately not be the intellectually liberating revolution envisioned by Seymour Papert in the early days, or transform education in the ways he predicted. But look at the face of a kid who created an animation in Scratch, or a video game in Snap, and you’ll want to make this new literacy available to all students.