John Eckenrode Christopher Boyden-DeShazer Ishan Kumar
In Nick Montfort’s Understanding Media Studies lecture, Computer Programming for Developing a Better Society, he attempts to divert from the stereotypical conception of programming — a complex digital ether full of languages and esoteric imagery — to one that is more collaborative, exploratory, and fun. He proposes the image below, of children working interactively on the object-oriented programming language, Smalltalk, designed by Allen Kay, as a more apt conceptualization of how programming should be perceived.
Montfort’s idea of programming looks beyond traditional models proposed by tech giants or business systems. His ideas are focused on Exploratory Programming. In his lecture, he stated, “When people are learning programming, it’s typically a very specification oriented, formalist type of approach that is just exploitative. I am asserting here that programming education can borrow from project-based work and more open-ended work in design and art and in the humanities.” This concept is built upon the notion that computer programming can go further than simply sharing information to thoughtfully dealing with larger issues of the human experience. For instance, Montfort’s project Curveship is a literary storytelling program that has the ability to create narratives that describe changes in plot and story through an interactive system. It explores different aspects of narrative sequences and character development. Curveship offers a new platform to develop narratives that can be easily manipulated; the user to explore different narrative strategies, experiment with different possibilities in plot, and pose questions that can challenge their own assumptions about how to tell stories.
In addition, Montfort’s collaborative project Renderings Phase 1 creates computational literature in six languages, allowing cultural conversations about the use of computer programming to help inform the boundaries and expression of storytelling. Both of these projects demonstrate how active engagement with technology can change the discourse around its use and socio-cultural impacts.
Exploratory Programming is made up of two concepts: Creative Computing, which Montfort views as the artistic side of programming, and Programming as Inquiry, which he cites as the ‘humanities’ of programming. Montfort’s model relates to computer engineer and early internet proponent Douglas Engelbart’s belief that a computer should ‘augment human intellect’ as a way of augmenting humanistic thinking, for example, by figuring out how to analyse texts and images. Montfort explains the three starting points he himself uses to teach Exploratory Programming: 1. Modify a Java Script Program, 2. Use Python as a calculator, 3. Use and modify “Double, Double”.
Exploratory Programming can be applied in fields ranging from architecture and animation to fashion design and graphic design, and it’s central to Montfort’s own projects. In 10 PRINT CHR$ (205.5 + RND (1)); : GOTO 10, Montfort and his collaborators study and manipulate a single line of BASIC (Beginner’s All-purpose Symbolic Instruction Code) through various programs in order to address how that code resonates in different cultural and technological contexts. Another of Montfort’s works, #! (pronounced Shebang), analyzes an array of computer-generated poetry alongside the programs that created them as an inquiry into the features that make up a poem.
Through such works, he explores how programming can promote an artistic and cultural awareness of technology as a cultural force — and can both inspire the creation of cultural artifacts and an appreciation that those artifacts need to be critically examined and preserved. Montfort promotes exploratory computation as a critical learning platform in the humanities and hopes it will help produce fruitful and interesting work, provoke social and political discourse, and offer opportunities to advance the medium along humanistic lines. Asking questions about, for example, who develops particular programming languages and who owns or manages various computing systems, what their intended applications are, and whose interests they serve, can promote more critical and independent use of technology — and perhaps even advance initiatives to advance programming that promotes anti-corporate uses and freedom of expression.
Below, a screenshot of an edited piece of HTML of code taken from Montfort’s website, is a useful example of ‘Humanities Computing. This program, A House of Dust, was created on a Seimens System 4004. In this version, the prepositional phrases have been edited to relate to the Media Studies program at the New School. Changing only a single string of phrases within the code on a basic text editor alters the tone, and the meaning of the piece changes. This is significant in that it illustrates the capabilities of the user to use her individual perceptions and insights to generate a nearly unlimited creative output. Furthermore, understanding the basic structures of programming gives insight into a program’s capabilities and limitations. This allows the user to interact with technology in more critical and inventive ways.
Montfort’s lecture was well-placed as the final lecture in the lecture series since programming, to at least some degree, touches every other field media covered. Similar to Montfort’s lecture today, Engelbart made the argument in 1962 that if people are going to work with computers, they should understand how to program. He stated, “A number of people, outside our research group here, maintain stoutly that a practical augmentation system should not require the human to have to do any computer programming… that… would be like saying you can’t require the operating human to know how to adjust his tools, or set up jigs, or change drill sizes and the like… you can see that these tools… provide for much greater flexibility…”
Yet few of us know how to adjust our technological tools, few comprehend our computational “jigs” or algorithms. We know little about our how our computing technologies work, yet our dependence on them keeps growing. By remaining ignorant of the ‘back-end’ of digital media, we lose our ability to creatively engage with, interpret, and manipulate these tools in ways that could potentially be beneficial. Understanding computer programming, and how these programs come together to animate digital media and make computational media work, is of great importance, as it creates possibilities for new types of cultural and political developments come about, which can ultimately foster a more capable and interactive society.
What’s more, Montfort suggests, by demystifying the mystical algorithm and digging into the material and formal specificities of how computational systems work, we can generate new insights and perhaps see the world in a new way.