Blog Post

A "Hello World" Apart (why humanities students should NOT learn to program)


Written in response to Matthew Kirschenbaum's essay Hello Worlds (why humanities students should learn to program) for the Hacking the Academy project. 


Let me start by saying that, despite my title, I am 100% in favor of everyone learning to program and I agree more or less with everything Matthew Kirschenbaum says in his essay "Hello Worlds (why humanities students should learn to program)." I chose this title not to argue against anything Kirschenbaum says, but rather to suggest that the manner in which he says it may be misleading if it is taken at its face value. While programming will indeed usefully equip one better to understand computer scientific discourses, it should NOT be taken as the necessary precondition to engaging with the computer sciences and all who consider themselves scholars of the humanities should realize that the discourse of programming is only the technical jargon with which computer scientists address many of the very same questions that one encounters every day in the humanities. Thus, students should learn to program, but they should not let their inability to program prevent them from engaging with the computer sciences. (Please note that I do not think that Kirschenbaum suggests that programming represents such a precondition, but only that it is possible to read that message into his piece). 


I use the term "computer sciences" because I think it is important to discuss the computer sciences as one discusses the humanities. The "discipline" of computer science is made up of a diverse collection of different areas of work with discourses as mutually unintelligible as those of Judaic studies and film theory. To think of the computer sciences as one "computer science" unified by the language of code makes as much sense as thinking of the humanities as one discipline united by the language of (in the case of the American academy) English. The scholar of operating systems has likely never heard of the algorithms used by the scholar of machine learning, and vice versa, unless the one took a class on the other back when they were an undergrad and the fields will have changed more than a little since then. It is necessary to make this distinction because my main point is that in many cases the concerns of the computer sciences and the concerns of the humanities are literally one and the same. Programming languages math and algorithms are the discourses used by computer scientists to address their concerns just as psycho analysis ethnography and material culture are some of the discourses used to address the concerns of the humanities. The discourse divide is not between the humanities and the computer sciences, but equally much between every subfield therein. Learning to program should be no more and no less enabling than reading Derrida. 


What then are these concerns to which computer sciences and humanities have equal access? Kirschenbaum rightly emphasizes the forming of models as a central pillar around which the computer sciences are based, but he sells his argument short when he concludes that the modeling that happens in the computer embodies only a "familiar structure" for the linguist or textual scholar used to "models" of language and text. I would go further and argue that in many cases the computer sciences and the humanities are both engaged in the process of developing the very same models. Natural language processing, the area of the computer sciences with which I am most familiar, I would argue should be very legible to the student of the humanities, engaged as it is in the process of modeling language, text, and the human being.


The objective of NLP is, loosely, to understand and model language in ways that allow us to 1) recognize meaningful information, 2) form communicative language, 3) understand the mental processes that give rise to language, and so on. The objectives of NLP are largely legible, I think, to anyone from the humanities, with or without the ability to program; that they are pursued with algorithms and code does not change the fact that in the end many of the same questions are asked, and many of the same approaches shared.


I'd like to pull a more concrete example semi-arbitrarily from the work I have been reading lately as part of my research. Consider the following passage:


"The focus of our work, however, is on an equally fundamental but domain- dependent dimension of the structure of text: content. 


Our use of the term content corresponds roughly to the notions of topic and topic change. We desire models that can specify, for example, that articles about earthquakes typically contain information about quake strength, location, and casualties, and that descriptions of casualties usually precede those of rescue efforts. But rather than manually determine the topics for a given domain, we take a distributional view, learning them directly from unannotated texts via analysis of word distribution patterns. This idea dates back at least to Harris (1982), who claimed that various types of [word] recurrence patterns seem to characterize various types of discourse. Advantages of a distributional perspective include both drastic reduction in human effort and recognition of topics that might not occur to a human expert and yet, when explicitly modeled, aid in applications.


Of course, the success of the distributional approach depends on the existence of recurrent patterns. In arbitrary document collections, such patterns might be too variable to be easily detected by statistical means. However, research has shown that texts from the same domain tend to exhibit high similarity (Wray, 2002). Cognitive psychologists have long posited that this similarity is not accidental, arguing that formulaic text structure facilitates readers comprehension and recall (Bartlett, 1932)."


To all readers coming from a humanities


My goal in writing this, as a student of the computer sciences and the humanities in equal measure, is to point out that not only could the two areas usefully benefit from one another, as per Kirschenbaum's essay, but furthermore that in many ways the two are working on exactly the same projects and the very idea that they are, a priori, separate and distinct bodies of knowledge may be the king hobgoblin of any attempts to create something that professes to be a digital humanities situated somewhere between the two. Learn to program whenever it is convenient, but start thinking about the computer sciences as relevant areas of concern right now.




Nice post, Evan.  Have you heard about the Computational Thinking movement?  What you're proposing here sounds a lot like that; to find out more, check out The Center for Computational Thinking at Carnegie Mellon and the article from Jeannette Wing here.  Also check out the objections to CT that Ian Bogost lays out in this post.

I'd be interested to know what convergences and divergences you see between CT, Matt K's piece, and your post here. 


Many thanks for this Evan, it's a good contribution. I'm glad you didn't take my provocation ("why humanities students should learn to program") as a precondition for getting at the real work of whatever it is we want to do in the humanities (meaning that once we've "learned to program" we can stop thinking about it). I think we'd both agree that's not the point at all. But it's also worth asking what it actually means to learn to program. There are no binary thresholds here, measures by which one either programs or does not program. I am not in any vocational sense a programmer myself. But I consider myself reasonably code literate, and comfortable with procedural thinking. So, rather than the binary of whether humanists should or should not program, what are the different ways in which we can frame programming as a spectrum of actionable knowledges and practices?




Thanks for the responses. I was in the middle of commenting when I realized I'd written more than I intended so you'll find my answers here:


Computational Thinking is Computational Speaking