|
Return to the MLA Commons
Concepts, Models, and Experiments

Code

Lauren Klein

1 Leave a comment on paragraph 1 0 Georgia Institute of Technology | http://lklein.com/

2 Leave a comment on paragraph 2 0 Please visit the final version of Digital Pedagogy in the Humanities, where you can read the revised keywords and create your own collections of artifacts.

3 Leave a comment on paragraph 3 0 The official reviewing period for this project has ended, and commenting is closed.

CURATORIAL STATEMENT

4 Leave a comment on paragraph 4 0 Do humanities students need to know how to code?

5 Leave a comment on paragraph 5 0 What was once a, if not the, central question in the digital humanities has become a topic of national conversation, as concerns about the United States “falling behind” other nations in technological innovation continue to mount. Even President Obama has gone on the record in support of teaching programming at the elementary school level. “It’s got to be everybody,” he told Re/code’s Kara Swisher. “Everybody’s got to learn how to code early… with the ABCs and the colors.”

6 Leave a comment on paragraph 6 2 A nation in which all students learn how to code in grade school is hardly a terrible thing. The real question, however, isn’t whether or not students should learn how to code; it’s what they should learn by doing so.

7 Leave a comment on paragraph 7 1 It follows, then, that any instructor—-in the humanities or otherwise-—must first ask herself what she hopes her students will accomplish by learning to code. Is it an understanding of how to think algorithmically, so as to better comprehend how certain tasks can be abstracted into a series of steps? Is it a familiarity with the basic components of programming languages, so as to be able to understand how code is structured and produced? Is it the knowledge of a specialized programming language, one with specific applications in a particular field? Or is it the more experiential knowledge of what it feels like to move from defining functions and assigning variables to running executable code?

8 Leave a comment on paragraph 8 0 These are only some of the many possible outcomes of a course centered on learning to code. But in the humanities, the question of what to teach students when learning to code carries additional pedagogical freight. What can the humanities contribute to the study of code that is not already taught in computer science departments? What should the humanities contribute? And, in turn, are there aspects of computer science training that can expand the bounds of what humanities pedagogy, more generally, entails?

9 Leave a comment on paragraph 9 0 In my view, the study of code in the humanities—-and therefore its pedagogy—-entails a both/and proposition: it must demonstrate both theoretical rigor and technical expertise. As humanists, we are perhaps more familiar with how this combination might play out through the questions we ask about code—- for instance, how we might more directly link the production of code to the social and cultural conditions of its making; or how might we better historicize the practice of programming or account for its political stakes. But a pedagogy of code in the humanities must also explore the intersection of the technical and the theoretical as expressed in or through code itself-— for instance, how we might locate certain literary or cultural concepts at work in the structure or syntax of code; or how we might ourselves write code that advances an argument, embodies a theory, or otherwise performs humanistic critique.

10 Leave a comment on paragraph 10 1 Pursuing a pedagogy of code that blends the technical with the theoretical (or the humanistic more generally) makes for a high standard, but it is one commensurate with the complexity of the challenges of the present day. From police violence to climate change, today’s most pressing concerns, as Alan Liu reminds us, are those in which culture, politics, economics, ecology, and technology are inextricably intertwined. What a pedagogy of code in the humanities can do, then, is to show how software and its various supports-—human as well as material and computational-—are emblematic of this entanglement. Think of the Foxconn workers, located in factories across Asia, as well as in Mexico, Brazil, and eastern Europe, who manufactured and assembled your Apple laptop; the eighty-five million lines of Objective-C, written by hundreds if not thousands of programmers, that comprise the Mac OS X operating system; the additional five million lines of code in your Google Chrome browser, allowing this document to display on your screen—and that is to say nothing of the algorithms (and underlying business decisions) that determine which ads to display as you navigate from Web page to Web page; the numerous technologies, developed over decades, that enable the transfer of data across the Web as a whole; or the metals and minerals, such as gold, silver, mercury, and lead, that went into your machine’s construction, and that existed long before (and will endure long after) humans populated the earth. By exposing how the technical and the humanistic converge in the objects and processes of our everyday lives, a both/and pedagogy of code might allow our global problems to be better understood, if not ever to be entirely resolved.

11 Leave a comment on paragraph 11 0 The artifacts included here, both individually and collectively, model the both/and approach that I envision for a humanities pedagogy of code. I begin with an essay that provides an overview of what code is and does in the present day, paired with a blog post that serves as a necessary reminder of the biases that a focus on learning to code implies. From there, I present four sets of examples that reflect different directions for incorporating code into humanities work: two course syllabi that take a holistic approach, synthesizing theory and practice, past and present; two additional syllabi that rest upon the precise application of a particular programming language or software library to better understand traditional objects of humanistic inquiry; two projects that take on code itself as an object of inquiry; and finally, two projects that employ code as a method of argument, enacting on the one hand highly conceptual, and on the other, very real-world critique. Taken together, these projects suggest several possible directions for a more sustained humanities pedagogy of code, one that will only gain in significance as our reliance on code and related issues of computation—-in our scholarship and in our everyday lives—-continues to grow.

12 Leave a comment on paragraph 12 0 In selecting these examples, I’ve adhered to a fairly narrow definition of “code,” and deliberately so– my aim is to show what can be learned from exercises that encourage students to ask questions through code as much as about it. A significant consequence of this approach, however, is that many of these exercises depend upon a basic familiarity with programming constructs and concepts– a familiarity that, as Miriam Posner reminds us below, shouldn’t be taken for granted. Instructors seeking to incorporate these (or other) programming exercises into more introductory courses should not be dissuaded. Rather, they might consider a longer unit on coding, beginning with basic principles, and working towards one of the assignments below, framed in terms of the issues of equity and access that remain central to much humanities work. (The Programming Historian contains a range of introductory lessons that could be scaffolded into such a course). If the goal is, instead, a general understanding of computational concepts, instructors might also consider how educational programming environments like Scratch, principally designed for children, might be reframed for the college classroom.

CURATED ARTIFACTS

“What is Code?”

code-whatiscode

screenshot

15 Leave a comment on paragraph 15 0 Businessweek might seem like a paradoxical starting point for a set of resources on learning to code in a humanities context, but Paul Ford’s extended exegesis on the meaning of code presents a surprisingly legible and at times quite humorous overview of how code works, how it’s written, and how it’s deployed in a range of settings. Embedded in the online version of “What is Code?” are a variety of interactive elements– simulations of circuitry and signal processing, and visualizations of data structures and algorithms, to name only a few– each of which might be pulled out to enhance a classroom exercise. Students might also be encouraged to consider the implications of the article’s placement in a magazine owned by Bloomberg, and what that says about the current media climate, about the power of the finance industry, and about how both relate more closely than one might initially expect to the long history of computation and code.

“Some Things to Think about before You Exhort Everyone to Code”

code-somethings

screenshot

18 Leave a comment on paragraph 18 0 “Some Things to Think about before You Exhort Everyone to Code,” Miriam Posner’s pointed critique of unrestrained learn-to-code boosterism, is essential reading for anyone engaged in a project involving the teaching or learning of code. With references to scientific and sociological studies as well as to more concrete examples, Posner clearly identifies the cultural biases and other structural inequalities that preclude a pedagogy of code from ever unfolding on an equal plane. Rather than act as a deterrent, however, Posner’s post should encourage us to envision alternate pedagogical practices that might better account for the full range of student experiences. Whether by rethinking what we teach when we teach students to code, reimagining how we teach when we teach students to code, or reframing the task of learning to code from the ground up, we might work towards a more inclusive model for a pedagogy of code.

“Introduction to Computational Media”

code-lmc2700

screenshot

21 Leave a comment on paragraph 21 0 This syllabus, created by Yanni Loukissas, documents the required introductory course in Georgia Tech’s Computational Media major. The major is designed with a “both/and” pedagogy of code in mind; students take courses in both computer science and the humanities so as to develop a deep and nuanced understanding of the computer as a medium. “Introduction to Computational Media” represents the students’ first exposure to this synthesis, and as such, asks students to explore the history and theory of computation through a series of six focused projects. Each employs a different programming language, and each to a different end– among them, a data visualization, a narrative bot, or a procedural poem. Any one of these projects might be incorporated into another course as a capstone element, but the syllabus is most valuable as a whole, for how it leads students towards a syncretic understanding of the computer as an expressive form.

“Feminist Digital Humanities”

code-feministdh

screenshot

24 Leave a comment on paragraph 24 0 This syllabus, created by Jacque Wernimont and Elizabeth Losh for a summer course on Feminist Digital Humanities at the Digital Humanities Summer Institute, provides a second example of how the study of code can bring together technical knowledge with theoretical concerns. Wernimont and Losh employ feminism as both object and method of inquiry, exploring a range of examples of feminist engagements with technology, from video games to digital archives, through an intersectional feminist pedagogical approach. The more conceptually-focused nature of this course demonstrates how students can emerge with a clear sense of how a particular theoretical orientation can be expressed in and through code. In adapting this course for future use, one might consider how other major theoretical schools, such as queer or postcolonial theory, might similarly (or dissimilarly) find expression through the structure of a course, its objects of study, and its methods of inquiry.

“Literary Data: Some Approaches”

code-litdata

screenshot

27 Leave a comment on paragraph 27 0 Andrew Goldstone’s syllabus for a graduate course on literary data is explicit about its dual aims: “to engage with the history and current practice of literary data analysis, and to introduce the foundational skills of literary data analysis in the R programming language.” Through readings on the history and theory of data, coupled with programming exercises designed to introduce students to basic computational operations and constructs, Goldstone provides a model for how students might apply computational methods to humanistic research questions with historical, theoretical, and technical considerations in mind. Its focus on literary data functions as a valuable illustration of how a disciplinary focus can lead to greater depth of understanding; and its hybrid class structure might present a model for how to teach programming in the context of a humanities seminar.

“The Rise of the Novel”

code-riseofnovel

screenshot

30 Leave a comment on paragraph 30 0 The Github repository that documents Rachel Buurma’s digitally-inflected literature course, “The Rise of the Novel,” provides an additional example of how a focused humanistic research interest might be explored through computational techniques. Here, Buurma focuses on questions of realism as they relate to the rise of the novel, incorporating exercises that make use of software libraries that assist in various distant reading techniques. Buurma’s course design demonstrates how such exercises might be framed conceptually, and anchored in specific texts–evidently to much success. (Student responses to the exercises are documented on the course blog. When adapting this model for use in other contexts, one must consider in advance what types of questions are best suited to specific computational techniques, and what specific objects of inquiry–textual or otherwise–might serve as the best source for their application.

“Feminism and Programming Languages”

code-feminismandprogramming

screenshot

33 Leave a comment on paragraph 33 0 This student blog post on HASTAC, which documents the early phases of an undergraduate thesis project, demonstrates how a deceptively simple question–“What is a feminist programming language?–can function as an entry point into a deep discussion reliant on both technical and theoretical knowledge. Such discussions are incredibly generative, and ones with which “programming humanists,” to borrow a descriptor from Tara McPherson, are uniquely positioned to engage. This particular post also demonstrates, albeit inadvertently, the political charge with which many humanistic investigations into the nature of code are met; the post was picked up on Reddit, and the student became the subject of significant online harassment. Although those invested in digital pedagogy tend to align themselves with public-facing student work, this example also illustrates the importance of anticipating any potentially negative or hateful feedback for which students (or their professors) may be unprepared.

“The Codex”

code-blackcodestudies

screenshot

36 Leave a comment on paragraph 36 0 “The Codex” is described by its creator, Jessica Marie Johnson, as an “attempt to process Atlantic slavery through application, code, and screen.” It consists of three digital “volumes,” each presented in the form of a Tumblr. Johnson employs the Tumblr platform rhetorically, as a way to counter the dehumanizing effect of the formal records of the Atlantic slave trade with what she terms “diaspora catalogs.” In doing so, Johnson gives digital form to an alternative structuring logic, one with significant implications for the study of code in a humanities context. (A forthcoming special issue of The Black Scholar on Black Code Studies will extend this line of inquiry in important ways). As it stands, Johnson’s project can be used as an example to students of how to engage the intersection of computational and theoretical concepts through creative means. As it’s free to create a Tumblr via tumblr.com, students might even be encouraged to create “diaspora catalogs” of their own. Instructors might also consider how other constructs that have been challenged in terms of hierarchy, structure, and control, might lend themselves to critique through this representational mode.

“Rikers Bot”

code-rikersbot

screenshot

39 Leave a comment on paragraph 39 0 Rikers Bot names both an ongoing project on the part of Columbia’s Group for Experimental Methods in the Humanities to teach programming workshops at Rikers Island Correctional Facility, in New York, and the output of the project: a Twitter bot that tells the story of the young adults incarcerated there. As such, it speaks both to the functional utility of learning to code (as part of the workshop, participants are trained in how to present the project in future job interviews) and to the argumentative force of a bot (forcibly disconnected from the outside world, the inmates require a bot to speak for them). Rikers Bot is a complicated project, with many layers that require additional unpacking, but in its engagement in the world outside of the academy, and in its attempt to introduce a humanistic overlay onto the teaching and learning of code, it marks a move towards social justice and civic engagement that the field would do well to more fully engage. In adapting this project, instructors might consider the local environment of their institution, asking which communities– including but not limited to prison populations– might benefit from a similar series of workshops.

“TransCoder: Queer Programming Anti-Language”

code-transcoder

screenshot

42 Leave a comment on paragraph 42 1 Moving from the lived conditions of incarceration to the realm of conceptual art, Zach Blas’s concept for TransCoder, a “queer programming anti-language,” provides an example of how theory can be expressed in and through code. Styling his project in the tradition of an esolang, Blas defines a set of basic computational functions that, if implemented, would constitute a programming language that procedurally represents the major concepts of queer theory. As a design for, rather than an implementation of a programming language, Blas also models how speculative design can function as a valuable pedagogical method. Asking students to envision rather than implement a computational artifact might open additional creative possibilities for study of code, as well as invite broader participation.

RELATED MATERIALS

43 Leave a comment on paragraph 43 0 Chun, Wendy Hui Kyong. “On Software, or the Persistence of Visual Knowledge.” Grey Room. 18 Winter (2004): 26–51. Web. http://www.brown.edu/Departments/MCM/people/chun/papers/software.pdf

44 Leave a comment on paragraph 44 0 Marino, Mark C. “Critical Code Studies.” electronic book review. 4 December 2006. Web. http://www.electronicbookreview.com/thread/electropoetics/codology

45 Leave a comment on paragraph 45 0 Montfort, Nick. Exploratory Programming for the Arts and Humanities. Boston: MIT Press, 2016. Print. https://mitpress.mit.edu/books/exploratory-programming-arts-and-humanities

46 Leave a comment on paragraph 46 0 Nowviskie, Bethany et al. “Speaking in Code: Bibliography.” scholarslab/codespeakkit 1 July 2014. Web. https://github.com/scholarslab/codespeakkit/blob/master/bibliography.md

WORKS CITED

47 Leave a comment on paragraph 47 0 Ahmed, Manan, Zeinab Aina, Thomas Brown III, et al., “Rikers Bot.” Columbia’s Group for Experimental Methods in the Humanities n.d. Web. http://xpmethod.plaintext.in/public-discourse/rikersbot.html

48 Leave a comment on paragraph 48 0 Blas, Zach. “TransCoder: A Queer Programming Anti-Language” n.d. Web. http://users.design.ucla.edu/~zblas/artwork/transcoder_archive/transcoder_archive.htm

49 Leave a comment on paragraph 49 0 Buurma, Rachel. “The Rise of the Novel” (Github repository) n.d. Web. https://github.com/rbuurma/rise-2015

50 Leave a comment on paragraph 50 0 Buurma, Rachel. “The Rise of the Novel” (Course blog) n.d. Web. http://rise2015.rachelsagnerbuurma.org/

51 Leave a comment on paragraph 51 0 The Computer History Museum. “Internet History, 1962-1992” n.d. Web. http://www.computerhistory.org/internethistory/

52 Leave a comment on paragraph 52 0 “Computational Media.” n.d. Web. http://cm.lmc.gatech.edu

53 Leave a comment on paragraph 53 0 Crymble, Adam et al. The Programming Historian. n.d. Web. http://programminghistorian.org/

54 Leave a comment on paragraph 54 0 “Digital Humanities Summer Institute.” n.d. Web. http://www.dhsi.org/

55 Leave a comment on paragraph 55 0 Duran, J., Adam Trowbridge, and Jessica Parris Westbrook. Array Project. n.d. Web. http://www.arrayproject.com/

56 Leave a comment on paragraph 56 0 Ensmenger, Nathan. The Computer Boys Take Over. n.d. Web. http://thecomputerboys.com/

57 Leave a comment on paragraph 57 0 Ford, Paul. “What is Code?” n.d. Web. http://www.bloomberg.com/graphics/2015-paul-ford-what-is-code/

58 Leave a comment on paragraph 58 0 “Foxconn: Operations” n.d. Web. https://en.wikipedia.org/wiki/Foxconn#Operations

59 Leave a comment on paragraph 59 0 Freeman, Jason, Brian Magerko, Douglas Edwards, et al., “Earsketch.”n.d. Web. http://earsketch.gatech.edu/landing/

60 Leave a comment on paragraph 60 0 Goldstone, Andrew. “Literary Data: Some Approaches.” n.d. Web. http://www.rci.rutgers.edu/~ag978/litdata/

61 Leave a comment on paragraph 61 0 “HASTAC.” n.d. Web. http://www.hastac.org

62 Leave a comment on paragraph 62 0 Johnson, Jessica Marie. “The Codex.” n.d. Web. http://diasporahypertext.com/2012/11/29/new-project-the-codex/

63 Leave a comment on paragraph 63 0 Johnson, Jessica Marie and Mark Anthony Neal. “CFP: Black Code Studies.” n.d. Web. http://diasporahypertext.com/2015/02/13/cfp-black-code-studies/

64 Leave a comment on paragraph 64 0 Liu, Alan. “Where is Cultural Criticism in the Digital Humanities?” Debates in the Digital Humanities. Ed. Matthew K. Gold. Minneapolis: University of Minnesota Press, 2012. Web. http://dhdebates.gc.cuny.edu/debates/text/20

65 Leave a comment on paragraph 65 0 Loukissas, Yanni. “Introduction to Computational Media.” n.d. Web. https://docs.google.com/document/d/1I2XUqH7d_JDLe3abZglKYnHXd7kgE-ip9qW9Geg689Y/edit

66 Leave a comment on paragraph 66 0 McCandless, David. “Codebases: Millions of Lines of Code” n.d. Web. http://www.informationisbeautiful.net/visualizations/million-lines-of-code/

67 Leave a comment on paragraph 67 0 McPherson, Tara. “Why are the Digital Humanities So White? or Thinking the Histories of Race and Computing” Debates in the Digital Humanities. Ed. Matthew K. Gold. Minneapolis: University of Minnesota Press, 2012. Web. http://dhdebates.gc.cuny.edu/debates/text/29

68 Leave a comment on paragraph 68 0 Meloni, Julie. “Introduction to Programming (well, kind of.)” n.d. Web. http://www.slideshare.net/jcmeloni/introduction-to-programming-well-kind-of

69 Leave a comment on paragraph 69 0 Parikka, Jussi. “The Geology of Media.” The Atlantic. 11 October 2013. Web. http://www.theatlantic.com/technology/archive/2013/10/the-geology-of-media/280523/

70 Leave a comment on paragraph 70 0 Posner, Miriam. “Some things to think about before you exhort everyone to code.” 29 February 2012. Web. http://miriamposner.com/blog/some-things-to-think-about-before-you-exhort-everyone-to-code/

71 Leave a comment on paragraph 71 0 Posner, Miriam. “A better way to teach technical skills to a group.” 9 December 2015. Web. http://miriamposner.com/blog/a-better-way-to-teach-technical-skills-to-a-group/

72 Leave a comment on paragraph 72 0 Ramsay, Stephen. “On Building” 11 January 2011. Web. http://stephenramsay.us/text/2011/01/11/on-building/

73 Leave a comment on paragraph 73 0 Schlesinger, Arielle. “Feminism and Programming Languages.” HASTAC 26 November 2013. Web. https://www.hastac.org/blogs/arielle-schlesinger/2013/11/26/feminism-and-programming-languages

74 Leave a comment on paragraph 74 0 “Science, Technology, Engineering, and Math: Education for Global Leadership” n.d. Web. http://www.ed.gov/stem

75 Leave a comment on paragraph 75 0 Scratch. n.d. Web. https://scratch.mit.edu/

76 Leave a comment on paragraph 76 0 Swisher, Kara. “Obama: The Re/Code Interview” n.d. Web. http://recode.net/2015/02/14/obama-everybodys-got-to-learn-how-to-code/

77 Leave a comment on paragraph 77 0 Temkin, Daniel. “Esolangs as an Experiential Practice.” 16 December 2014. Web. http://esoteric.codes/post/105355658088/esolangs-as-an-experiential-practice

78 Leave a comment on paragraph 78 0 Wernimont, Jacque and Elizabeth Losh. “Feminist Digital Humanities: Theoretical, Social, and Material Engagements around Making and Breaking Computational Media.” 2 June 2014. Web. https://jwernimont.wordpress.com/2014/06/02/feminist-digital-humanities-theoretical-social-and-material-engagements-around-making-and-breaking-computational-media/

79 Leave a comment on paragraph 79 0 Woolf, Brock. “What Languages are Windows, Mac OS X, and Linux written in?” n.d. Web. http://stackoverflow.com/questions/580292/what-languages-are-windows-mac-os-x-and-linux-written-in

Page 13

Source: https://~^(?[\\w-]+\\.)?(?[\\w-]+)\\.hcommons\\.org$/keywords/code/