Program or be Programmed

I just completed Douglas Rushkoff’s new book, Program or be Programmed, and found it an interesting read. He is a well-known author, having written several books on new media and popular culture. He writes in a style that is understandable to “non-techies.”
In this book, he identifies “10 commands” with respect to the digital age, clearly a play on the Judeo-Christian notion of 10 commandments. I found it interesting that many related to what Fred Brooks identified in his classic article No Silver Bullet: Essence and Accidents of Software Engineering as essential conceptual constructs in software engineering.
Brooks’ must-read article (a copy of which can easily be found by Googling ‘Brooks “No Silver Bullet”) identifies four essential difficulties with learning to build software: complexity, conformity, changeability, and invisibility. Brooks, widely regarded as the “father of software engineering”, argues that there is no Silver Bullet (with obvious reference to the folklore beliefs of how to kill werewolves) with which to kill all that plagues poor software projects. And Rushkoff, likely unaware of Brooks’ classic article (as it does not appear within his bibliography), builds several of his commands around these four “essences” of software engineering.
Rushkoff’s most interesting command (at least to me) was his tenth: arguing that everyone needs to know how to program. Rushkoff divides the world into 10 types of people: those who can program and those who cannot (the bad binary joke is mine). He argues that those who cannot program, will themselves be programmed by their computers. And while he argues simply that this is bad (with a chapter full of reasons why), this command got me thinking about the possible implications for “computational thinking” in K-12. While programming does appear as one of the 7 Big Ideas of the NSF-funded AP-CS principles group (http://csprinciples.org/bigideas.php), it is not clear that the authors expect that programming is intended for all — they are simply creating a series of pilot courses built around these 7 Big Ideas that will possibly become a new AP CS course. I am left thinking about several questions:
1) Should programming be a key component of “computational thinking” skills (whatever these should mean) in K-12?
2) Are programming skills, or for that matter any skills, the right way to think about what “computational thinking” should mean?
3) How might anything done with respect to programming in a high or middle school programming class (offered to all students) have any impact on students’ lives if there were no reinforcement in other classes, or in other activities with which they are involved?
Steve Cooper
CSTA Vice President

One thought on “Program or be Programmed

Leave a Reply