With the recent uptick in the “everyone should code” movement, it seems that everyone’s now talking about computer programming as a new form of literacy. The terms by which people refer to the concept vary, but the central idea is shared: computational literacy; computational thinking; procedural literacy; proceduracy; computer literacy; iteracy. I’ve been working in this area for a few years now from the perspective of literacy studies, and I thought it might be a good time to share an annotated list of resources that I’ve found helpful in thinking through computer programming as a literacy. Chris Lindgren assembled a bibliography before me, and there’s a lot of overlap here. I’m inclined to say that the overlap points toward a burgeoning canon, although that recognition comes with the requisite wincing about a lack of gender/race diversity here.
I’ve listed just online or print texts, and the list tends toward the academic and historical. My Diigo library, assembled over the last few years with the tag “proceduracy”, is a better resource for public discussions about computer programming as a literacy.
I decided to list these in rough order of importance, which is incredibly subjective. I’ve broken the central sources up into a few categories: Really Important Stuff; Blogs & Online Writings; Dissertations; Work in English Studies. This is not to claim that there aren’t overlaps (e.g., something can be important and online!) but just to organize it a bit. After the central list of sources for programming and literacy, I’ve included a list of related work that people might want to read in computer history, pop books, code studies, and composition & rhetoric.
Of course, the whole list is partial and biased! I welcome additions and reactions in the comments or via other contact media.
Here’s the full document, available through Scribd. Below that, I’ve pasted just the bibliographic information. [Edit 6/7: added a couple more sources.]
Really Important Stuff
Papert, Seymour. Mindstorms: Children, Computers, and Powerful Ideas. New York: Basic Books, Inc., 1980. Print.
Papert, Seymour. “Educational Computing: How Are We Doing?” T H E Journal 24.11 (1997). t|h|e journal. Web. 23 Apr 2010.
Wing, Jeannette. (2006). “Computational thinking.” Communications of the ACM, 49(3), 33–35.
Mateas, Michael. “Procedural Literacy: Educating the New Media Practitioner.” On The Horizon. Special Issue. Future of Games, Simulations and Interactive Media in Learning Contexts 13 1 (2005): 1-15. Print.
Perlis, Alan. “The Computer and the University.” Computers and the World of the Future. Ed. Greenberger, Martin. Cambridge, MA: MIT, 1964. Print.
diSessa, Andrea. Changing Minds: Computers, Learning and Literacy. Cambridge, MA: MIT Press, 2000. Print.
Bogost, Ian. Persuasive Games: The Expressive Power of Videogames. Cambridge, MA: MIT, 2007. Print.
Kay, Alan. “User Interface: A Personal View.” The Art of Human-Computer Interface Design. Ed. Laurel, Brenda. Reading, MA: Addison-Wesley Publishing Company, Inc., 1990. 191-207. Print.
Kay, Alan, and Adele Goldberg. “Personal Dynamic Media.” The New Media Reader. Mar 1977. Eds. Wardrip-Fruin, Noah and Nick Montfort. Cambridge, MA: MIT Press, 2003. 393-404. Print.
Knuth, Donald. Literate Programming. CSLI Lecture Notes. United States: Center for the Study of Language and Information, 1992. Print.
Bush, Vannevar. “As We May Think.” The Atlantic. 1945. http://www.theatlantic.com/doc/194507/bush/
Licklider, J.C.R. “Man-Computer Symbiosis.” IRE Transactions on Human Factors in Electronics 1 1 (1960): 4-11. ACM Digital Portal. Web. 23 Apr 2010.
Licklider, J., & Taylor, R. (1968). The computer as a communication device. Science and technology, 76(2), 2.
Resnick, Mitchel, et al. “Scratch: Programming for All.” Communications of the ACM 52.11 (2009): 60-67. ACM Digital Portal. Web. 23 Apr 2010.
Nelson, Theodore. Computer Lib / Dream Machines. Redmond, WA: Microsoft Press, 1980.
Brooks, Frederick P. The Mythical Man-Month: Essays on Software Engineering. Reading, MA: Addison-Wesley Publishing Co., 1982. Print.
Nardi, Bonnie. A Small Matter of Programming: Perspectives on End User Computing. Cambridge, MA: MIT, 1993. Print.
Rushkoff, Douglas. Program or be Programmed. OR Books, 2010.
Prensky, Marc. “Programming is the New Literacy.” Edutopia. 13 Jan 2008. http://www.edutopia.org/literacy-computer-programming
Blogs & Online Writings
Guzdial, Mark. Computing Education Blog. WordPress. Web. <http://computinged.wordpress.com/>.
Why the Lucky Stiff. “The Little Coder’s Predicament.” 11 Jun 2003. Avogato. Web. 23 Apr 2010. <http://www.advogato.org/article/671.html>.
Work in English Studies
Manovich, Lev. Software Takes Command. Web. 2008. http://lab.softwarestudies.com/2008/11/softbook.html
Hayles, N. Katherine. “Deeper into the Machine: Learning to Speak Digital.” Computers and Composition 19.4 (2002): 371-86. ScienceDirect. Web. 19 Aug 2008.
Hayles, N. Katherine. My Mother Was A Computer: Digital Subjects and Literary Texts. University of Chicago, 2005.
Selber, Stuart A. (2004). Multiliteracies for a digital age. Carbondale, IL: Southern Illinois University Press.
Leblanc, Paul. Writing Teachers Writing Software. Advances in Computers and Composition Studies. Urbana, IL: NCTE, 1993. Print.
Black, Maurice. “The Art of Code.” University of Pennsylvania, Department of English, 2002. Print.
Python Programming.” University of Michigan, 2004. Web. Python.org. 7 Sep 2007. <www.python.org/files/miller-dissertation.pdf>.
Vee, Annette. “Proceduracy: Computer Code Writing in the Continuum of Literacy.” University of Wisconsin, Department of English, 2010.
Other recommended articles/books
These are all listed alphabetically and I’ve added notes by many of them. Many of these are important texts, but didn’t make it into the list above because they don’t deal directly with computer programming as a kind of literacy. Again, a subjective list, and it only contains works that I can recommend personally.
Campbell-Kelly, Martin, and William Aspray. Computer: A History of the Information Machine. The Sloan Technology Series. 2nd ed. Boulder, CO: Westview Press, 2004. Print. [Great intro text for the history of computing]
Ensmenger, Nathan. “The ‘Computer Boys’ Take Over.” Cambridge, MA: MIT Press. 2010. Print.
—. “Letting the ‘Computer Boys’ Take Over: Technology and the Politics of Organizational Transformation.” International Review of Social History Supplement (2003): 153-80. JStor. Web. 13 Apr 2008.
—. “Making Programming Masculine.” Gender Codes: Women and Men in the Computing Professions. Ed. Misa, Tom: IEEE, 2010.
—. “Software as History Embodied.” IEEE Annals in the History of Computing 31.1 (2009): 88-91. ACM Digital Portal. Web. 31 Aug 2009.
Kemeny and Kurtz. Back to BASIC. Addison Wesley, 1985. [About the design and early implementation of BASIC at Dartmouth. Readable and interesting, but the authors are bitter about BASIC language design balkanization.]
Light, Jennifer. “When Computers Were Women.” Technology and Culture 40.3 (1999): 455-83. Project Muse. Web. 29 Oct 2009.
Mahoney, Michael. Histories of Computing. Cambridge, MA: Harvard University Press, 2011. [Collection of wonderful essays by the late Mahoney.]
Turing, Alan. “On Computable Numbers, with an Application to the Entscheidungsproblem.” The Essential Turing. 1936. Oxford, UK: Clarendon Press, 2004. 58-90. Print. [Read the birth of the computer!]
Nelson, Theodor Holm. “A File Structure for the Complex, the Changing, and the Indeterminate.” ACM : Proceedings of the 20th National Conference (1965): 84-100. ACM Digital Portal. Web. 11 Jun 2008. [hyperlinks!]
Broad-audience books on history and programming culture
Graham, Paul. Hackers & Painters: Big Ideas from the Computer Age. Sebastopol, CA: O’Reilly, 2004. Print. [Graham is the founder of Y-combinator startup promoter and an important thinker in programming. Check out his website here http://paulgraham.com/]
Kohanski, Daniel. The Philosophical Programmer: Reflections on the Moth in the Machine. New York: St. Martin’s Press, 1998. Print. [Insightful though seldom-cited book on programming philosophy.]
Kushner, David. Masters of Doom. Random House, 2004. [about id software founders John Romero and John Carmack, and the early 1990s video game industry]
Lessig, Lawrence. Code or Code 2.0. [Both are good books and deal with the intersections of law and code, by a popular IP/constitutional law scholar and co-founder of Creative Commons.]
Levy, Steven. Hackers: Heroes of the Computer Revolution. [25th anniversary edition is out now, but first published in 1984. Widely read, fun and important!]
Lohr, Steve. GoTo: […] The Programmers who Created the Software Revolution. Basic Books, 2002. [wonderful history, including of MS Word, PARC, etc.]
Raymond, Eric. The Cathedral and the Bazaar. 1999. Sebastopol, CA: O’Reilly, 2001. Print. [Raymond, an open source promoter, coined the major metaphor for open source—the bazaar. Good essays in here.]
Stephenson, Neal. In the Beginning was the Command Line. Avon Books, 1999. [Quick and provocative read from the science fiction author who laments the transition from the command line to GUIs.]
Weber, Steve. The Success of Open Source. Cambridge, MA: Harvard University Press, 2004. Print. [Really important and readably book about the history and economics of open source software]
Code studies (critical code studies, software studies, etc.)
Berry, David. Philosophy of Software: Code and Mediation in the Digital Age. Palgrave Macmillan, 2011. [Theory-heavy book in which Berry wants to make software more “visible” by unpacking how code runs and how software is built. Also check out his frequently-updated blog, Stunlaw: http://stunlaw.blogspot.com/ , where he’s posted articles on iteracy http://stunlaw.blogspot.com/2011/09/iteracy-reading-writing-and-running.html and computational thinking http://stunlaw.blogspot.com/2012/03/computational-thinking-some-thoughts.html
Chun, Wendy Hui Kyong. Programmed Visions: Software and Memory. MIT Press, 2011. [Interesting and highly theoretical book on source code as fetish, as memory, and politics of visibility/invisibility.]
Coleman, Biella. Coding Freedom: The Ethics and Aesthetics of Hacking. Princeton University Press, Forthcoming Nov 2012. [I haven’t read the book because it’s not out yet, but Coleman’s other work on hackers and code is great, and I’m sure the book will be, too. See her work on her website: http://gabriellacoleman.org/]
DeNardis, Laura. Protocol Politics: The Globalization of Internet Governance. MIT Press, 2009. [Smart and highly technical historical and political analysis of internet governance, through legal and digital code.]
Fuller, Matthew, ed. Software Studies: A Lexicon. Cambridge, MA: MIT Press, 2008. Print. [A fun edited collection where each code-savvy author contributed a piece named with some aspect of software, e.g., glitch, Perl, pixel, loop.]
Fuller, Matthew. Behind the Blip: Essays on the Culture of Software. Autonomedia: Brooklyn, NY. 2003. [This is a creatively written foray into “software criticism.” I have found the first essay—the introduction to the idea—more useful than the others, which are written in a more creative and gestural style.]
Galloway, Alexander. Protocol: How Control Exists after Decentralization. MIT Press, 2004. [important theoretical work on how protocol operates, including online through code.]
Galloway, Alexander and Eugene Thacker. The Exploit: A Theory of Networks. MIT Press, 2007. [how people can exploit protocol to get into networks, highly theoretical and technical.]
Kirschenbaum, Matthew. Mechanisms: New Media and the Forensic Imagination. MIT Press, 2007. [More about hardware and literature than software, but great and clearly written text that takes the materialist perspective of book history to computers.]
Kittler, Friedrich. “There is no software.” Ctheory, 1996. http://www.ctheory.net/articles.aspx?id=74 [about intersections/ interactions/ invisibilities between hardware and software, from a philosophical perspective]
Marino, Mark. “Critical Code Studies.” Electronic Book Review (4 Dec 2006). Web. 30 Jun 2009. <http://www.electronicbookreview.com/thread/electropoetics/codology>. [Where the term “critical code studies” was launched—a literary analysis perspective on reading code.]
Mateas, Michael, and Nick Montfort. “A Box, Darkly: Obfuscation, Weird Languages, and Code Aesthetics.” Proceedings of the 6th Digital Arts and Culture Conference, IT University of Copenhagen (2005): 144-53. NickM.com. Web. 1 Mar 2009. [Wonderful fun article on languages like Brainfuck and the Underhanded C programming contest.]
Shirky, Clay. “Situated Software.” Clay Shirky’s Writings about the Internet (2004). Web. 15 Jan 2010. <http://www.shirky.com/writings/situated_software.html>. [Where Shirky argues about “downsourcing” software to other fields rather than “outsourcing” it]
Wardrip-Fruin, Noah. Expressive Processing: Digital Fictions, Computer Games, and Software Studies. Cambridge, MA: MIT Press, 2009. Print. [Great book on programmatic processing in creative works. He argues that analysts of this work need to understand the code to understand the work.]
In composition and rhetoric
Ballentine, Brian. “Hacker Ethics & Firefox Extensions: Writing & Teaching the ‘Grey’ Areas of Web 2.0.” Computers and Composition Online, 2009. http://www.bgsu.edu/cconline/Ed_Welcome_Fall_09/compinfreewareintroduction.htm
Banks, Adam. Race, Rhetoric, and Technology. Lawrence Erlbaum, 2006. [Awesome intro reference to BASIC; the rest of the book deals with critical issues of race and technology, although less directly with code. Chap 2 has been the most useful to me, personally, and I’ve assigned it to students.]
Cummings, Robert. “Coding with Power: Toward a Rhetoric of Computer Coding and Composition.” Computers and Composition 23 (2006): 430-46. ScienceDirect. Web. 20 Apr 2010. [Argues for writing teachers to embrace coding.]
Rieder, David. Scripted Writing. Small Tech [He's talking about new trends in “digital writing”, where lines between text and code are blurred, and code is used for poetic potentiality.]
Sorapure, Madeleine. “Text, Image, Code, Comment: Writing in Flash.” Computers and Composition 23 (2006): 421-29. Print. [Great article from one of the most creative and technical talents in the field.]
Olson, David R. “Computers as Tools of the Intellect.” Educational Researcher 14.5 (1985): 5-8. JStor. Web. 29 Dec 2008. [makes some similar arguments to Papert]