Humanizing Code

Some background first. I am a Computer Scientist by trade but have a strong interest in connections of my trade to other parts of the academy, such as the Arts, Humanities, Science and Engineering. So, when I saw that there was an online workshop called Critical Code Studies, I decided to go in head first by requesting participation in the three week adventure. The organizers are open and I was privileged to become a participant. This area, dubbed CCS, is part of a larger enterprise called “Software Studies.” The purpose of Software Studies according to Wikipedia “draws upon methods and theory from the digital humanities….to understand software.” So, for example, when analyzing software, one might study the social and historical facets that situate the software within our culture. CCS focuses Software Studies to the point where “code” (text-based notation for programs) is studied as a first class object.

When I observed the discussions during the three week period, I have to confess that sometimes I felt like my interests and those in the CCS community were like two ships passing in the night. My interests tend to be functional, mathematically-based, and utilitarian, whereas some of the CCS posts involved fairly long treatises about the often non-functional parts of relatively small pieces of code. I use the word “small” within the context of my own experience in writing, modeling, or managing millions of lines of code over the course of my career. The computer scientist generally looks at small code snippets within the context of algorithmic study, whereas large code repositories and installations generally require software engineering methods and principles.

I’d like to suggest, though, that areas such as Software Studies and CCS are most worthy of recognition by computer scientists. I have become to believe that our cultural differences lay mainly in what “theories” and “methods” we apply. But, we all do apply theories and methods — like donning lenses when we study something.  I will take a walk outside with my computer hat on my head, and may use set theory or graph theory to produce knowledge of the world. For computer scientists and mathematicians, this is how we see and “read” the world text. I would probably not use critical theory (an area within the humanities and in cultural studies in particular), probably because that type of theory does not give me knowledge and understanding that I value as much as the other theories. So, yes, this is a question of differences in values as well. Each of us has a different value system when we study something like code.

Acknowledging our differences, let’s step back and look at our similarities given the plethora of theories at our disposal. First and foremost, those in CCS believe that software is a cultural product, and most of them believe that they should be promoting procedural literacy in the humanities. Computer scientists need to think on this, because it is an amazing occurrence. We have long been trying to achieve the same effects in our discipline–explaining to the rest of the university why computing and procedural literacy are vital. Now, we have friends across the university who want to help. Some of our theories could be different but that’s fine–we know the world in many ways. That is the major take-away from CCS for computer scientists: a mutual agreement on the importance of procedural literacy.

Where can computer scientists and those in CCS and Software Studies collaborate? There is certainly the “tool model” where the computer scientist produces text analytics tools for artists and humanities scholars. This model, as long as there is research for the scientists in this endeavor, is a good working model. However, I’d like to boldly, or radically, suggest that there are potentially deeper collaborative opportunities. What if some of the theories used by humanists, artists, and computer scientists were the same? As mentioned, there are many differences in our respective theories. And yet, there are bridges opening up. Some sociologists and humanities scholars are promoting the use of things like graph theory and database theory to understand their texts. Also, for my own work in Aesthetic Computing, I use a combination of embodiment theory and semiotics. Embodiment theories are situated in many areas: linguistics, neuroscience, philosophy, psychology, art, humanities, and computing. Semiotics is a theory that resonates with many computer scientists who study human interfaces. It is also widely used in art and the humanities. So, if some of us can agree not only on the same target (e.g., code), but also on the same collection of theories (e.g., embodiment,semiotics), that will truly be a remarkable intersection of cultures and disciplines. It is a place to begin to collaborate effectively beyond the “I am building a tool for you to use” approach.

We need to be careful here as well. The applied theories and methods, being often quite different, may cause some to reject each others’ approaches, findings, and even disciplines. However, this opportunity to collectively come together on the vital cultural relevance of computing, and code, is too important to be held back by the usual divisions that may separate us.

Share and Enjoy:
  • email
  • Facebook
  • Twitter
  • LinkedIn
  • Google Bookmarks
  • Add to favorites
  • Digg
  • Reddit
  • Technorati
This entry was posted in 1D, 2D, 3D, Play, Uncategorized, Visual and tagged , , , , . Bookmark the permalink.

One Response to Humanizing Code

  1. Pingback: Post Position » CS and CCS

Leave a Reply

Your email address will not be published. Required fields are marked *


You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>