In Understanding Computer Programming as Literacy, Annette Vee discusses the relationship between programming and literacy. She examines their parallel historical trajectories and argues for the adoption of computational literacy to better understand the social aspect of programming and help us prepare for a future where knowing how to program is a skill that is central to life.
Scholars have acknowledged the parallel between programming and literacy since programmable computers were first invented. However, these connections are often formed in unsophisticated ways: “literacy as limited to reading and writing text; literacy divorced from social or historical context; literacy as an unmitigated form of progress” (43). Vee’s approach leverages several historical and social findings from literacy studies to work towards a more solid foundation from which to study the parallel between programming and literacy.
The concept of literacy has expanded over the past few decades to include visual literacy, design literacy, quantitative literacy, video game literacy, and other literacies (44). This expanded definition of literacy complicates the frameworks that help teachers and may dilute “literacy’s explanatory power” (44).
Vee defines literacy as “a human facility with a symbolic and infrastructural technology—such as a textual writing system—that can be used for creative, communicative, and rhetorical purposes” (45).
She distinguishes literacy from, what Andrea diSessa terms, material intelligence: literacy is central to society’s communication practices and is essentially central to life; whereas a material intelligence is beneficial, but not infrastructural.
Vee acknowledges several concepts for studying the potential literacy of programming, but she favors the term computational literacy over the others, because it accounts for both the present role of programming as a material intelligence and the future role of programming as a literacy.
Vee proposes that computer programming is a material intelligence, but because the ability to code is not yet infrastructural to life, it is not yet a literacy. It does, however, seem to be moving towards literacy, especially when one considers the history of our text-based literacy.
Vee traces the history of literacy to gain a trajectory of computational literacy, crediting two key transitional periods (49):
- When texts became infrastructural to people’s everyday lives by aiding developing institutions
- When literacy began as citizens needed the ability to read and write to send and receive mail, read tax bills, and complete other central tasks
She then compares these transitional periods to similar transitions seen with computer programming. Like text, computer code began from central government initiatives, then moved to other large institutions and businesses, and ultimately to domestic life (in some cases). Now, code is becoming more and more prevalent and essential for many professions, especially as this skill is experience “downsourcing” (52).
As Vee acknowledges, programming is a social act, and may have social repercussions for those who can not communicate through this language. As “illiteracy can be an impediment in a world where text and literacy is infrastructural to everyday life,… people who are not computationally literate must, in growing numbers of cases, rely on others” (54-55).
Again, as Vee proposes, computer programming is not yet a literacy, but it seems to be getting close. This transition will present challenges.
For example, programmers have accepted coding standards, such as indenting and commenting, to make code more legible and aesthetically pleasing. These standards are socially constructed by programming intensive fields, and are causing tension as more and more people outside of computer science and software engineering learn how to code.
Vee suggests that the code that is appropriate for a scientist conducting a one time experiment may require different standards than code that is written for a proprietary software that will need to be maintained by other programmers for an extended amount of time (56). She worries that “confining programming to its profession can constrain the styles and context of ‘acceptable’ programming and discourage new learners” (58).
Vee concludes with a final call for scholars to study computational literacy to better understand how composition is changing and to work towards a more appropriate writing pedagogy that includes programming.
For the most part, I agreed with Vee’s preference of the term computational literacy and her argument that computer programming is a material intelligence. I foresee computer programming becoming a literacy, but it may not be with our current programming languages and it may not be for a long time.
Although I found some anxious moments in the article, I didn’t see a specific proposed timeline for the second transition of computer code into a literacy. I think it could take a very long time before it becomes crucial to know how to code to complete tasks that are central to life, but perhaps I am simply unable to foresee new future tasks.
- When it comes to the acceptability of coding standards, Vee calls for us to consider the context, including the author, the audience, and the purpose. She further suggests that in some contexts, the author should not be expected to follow the standards as closely. Considering that computer programming is a material intelligence, do you agree with this statement? Do your thoughts change if computer programming becomes a literacy?
- In the introduction to the Enculturation issue of The Role of Computational Literacy in Computer and Writing, Annette Vee and Mark Sample claim that “there is a growing recognition that some expertise in computational thought is a part of future success as a scholar affiliated with the humanities. As David Rieder has argued, code is blurring into our textual compositions, such that it’s no longer possible to bracket it off from writing pedagogy.” What are your thoughts on implementing coding exercises in your classes? What concerns would you have?
- Vee and Sample also reference Douglas Rushkoff’s “program or be programmed” stance. We have talked a lot in class about whether or not (or to what extent) digital humanists should know how to write and read programming languages. After this week’s readings, has your opinion changed?
- Mark Marino, in Critical Code Studies, suggests that “a student of critical code studies will only be able to access code by learning and mastering the language.” Do you agree with this statement? Can someone study code as they would literature without knowing the programming language?
- Critical Code Studies was published in 2006. Do you think any parts of Marino’s argument would be different ten years later?