Software Studies / Aesthetic Programming

From Software Studies
Jump to: navigation, search

This is a page that shares the curriculum of the BA course Software Studies/Aesthetic Programming.


For first year undergraduates in the second semester, the Digital Design programme at Aarhus University offers two linked courses that operate together (together making 30 ECTS).

Software Studies:

The course introduces the field of Software Studies, referring to ways of thinking about software and computational cultures to understand wider political, cultural, social and aesthetic phenomena. We follow the principle that the growing importance of software requires a new kind of cultural thinking that can account for, and with which to understand, the politics and aesthetics of algorithms, loops, variables, and other key concepts. We believe that these key computational concepts offer the possibility to open up new insights into aesthetics and design processes, and offer new perspectives on cultural phenomena increasingly subject to computational procedures and logic.

The course deals with and communicates knowledge of software as a cultural form via analyses of examples of actual works, and students are thus able to develop an analytical understanding of digital culture from an engagement with its inner workings at the level of code. Emphasis is placed on the student acquiring theoretical skills of expression. The course is designed to complement the parallel course in AESTHETIC PROGRAMMING in order to stress that we consider practical knowledge to underpin critical understanding of the field.

Aesthetic Programming:

The course introduces programming as an aesthetic and critical endeavour beyond its functional application. It explores programming as cultural phenomenon, as a way of thinking in the world, and understanding the complex procedures that underwrite our experiences and realities. The course deals with, and communicates, knowledge of software as a cultural form via analyses of examples of actual works and students are thus able to develop an analytical understanding of digital culture. Emphasis is placed on the student acquiring practical skills of expression through a practical introduction to programming that serves as a foundation for further courses on Digital Design.

The course begins with a discussion of aesthetics and digital aesthetics in general before focusing on computational aesthetics and the aesthetics of programming in particular. It is designed to complement the parallel course in SOFTWARE STUDIES where further critical work will be developed and expanded but without losing sight of programming as critical work in itself. Examples of artists and designers will be introduced that work with programming as their expressive material.

Selected Works

The book Software Studies: A Lexicon Version 2.0, which includes all the texts submitted by students on the course, is also available for download. It includes topics such as ANTI-TRACKING, DATAFICATION, DELETE, EPHEMERALITY, EROTIC CODING, FEMINISM, GENETIC ALGORITHMS, KAFKAESQUE PROGRAMMING, MISOGYNY, OBFUSCATION, PSEUDORANDOMNESS, QUANTIZATION, UNCONVENTIONAL CODE. Sample texts include:

Text 1: Delete by Louise Maarup Nykjær

Text 2: Obfuscation by Frederik Thielke Mølgaard

Text 3: Misogyny by Louise Marine Scheer

Sample projects include (see the task here):

Project 1: Cloud-Sync Updater (2015) by Malthe Stavning Erslev, Emil Pedersen, Andrei Scarlatescu, Mathias Lolzwa Romvig

Project 2: Datanism (2015) by Amalie Løgstrup Johnsen, Jakob Mølgaard Nielsen, Fritjof Krabbe Nørretranders, Tilde Lageri Damborg

Project 3: The Obfuscator (2015) by Sali Hayek, Louise Maarup Nykjær, Tobias Stenberg Christensen, Frederik Thielke Mølgaard


Week Software Studies Aesthetic Programming

In preparation for the course, it is suggested that you either attend the transmediale festival or spend some time visiting the website and following links to the lectures and events. Previous editions of the festivals are also archived.


The book Software Studies: A Lexicon (ed. Matthew Fuller, 2008) operates as a core text in terms of its style of approach.

You will also find a list of relevant materials dedicated to the field on an online wiki

For other relevant texts, also please look at the Computational Culture journal at

TASK: Begin an annotated bibliography.

Trip to Transmediale festival for those who can make it (28 Jan – 1 Feb 2015)


No weekly mini-ex


Hello World! - an introduction to software studies


Matthew Fuller, "Introduction, the Stuff of Software", in Fuller, op. cit., pp. 1-13.

Andrew Goffey, "Algorithm", in Fuller, op. cit., pp. 15-20.

Richard Stallman, “Why Software Should Not Have Owners”,

Also see

Introduction: the course, some artworks, Processing and Programming


  • Olga Goriunova, Fun and Software: Exploring Pleasure, Paradox and Pain in Computing, Bloomsbury 2014. pp.1-11 [see Blackboard\Literatures]

Weekly mini-ex (due in class 4):

Explore different applications/projects that are programmed with Processing in Art and Design world. Select one of your favorites and explain why. Share your reflection in class.


Having fun with code, software jokes, obfuscation and esoteric languages

READING + presentations: groups 1 / 2 / 3:

[GROUP 1] Andrew Goffey, “Technology, Logistics and Logic: Rethinking the Problem of Fun in Software”, in Olga Goriunova, ed. Fun and Software, London: Bloomsbury, 2014, pp. 21-40.

[GROUP 2] Florian Cramer, “Language”, in Fuller op. cit., pp. 168-174. & Michael Mateas, “Weird Languages”, in Fuller op cit., pp. 267-275.

[GROUP 3] Daniel Temkin, “Code Art, Code Poetry, and Esolangs”, in, 2014,

Additional reading:

Geoff Cox & Alex McLean, “Not Just for Fun”, in Olga Goriunova, ed. Fun and Software, London: Bloomsbury, 2014, pp. 157-173.

Reading and making week (no physical class)


  2. [The first session: Hello]


  1. Geoff Cox and Alex McLean, Speaking Code: Coding as Aesthetic and Political Expression, MIT Press 2013 pp.1-11 [See Blackboard\Literatures]
  2. Nick Montfort et al, 10 Print, MIT Press 2013 pp.106-118 [see here:]

Weekly mini-ex (due in class 4):

Experimenting Processing: Write a simple program within 10 lines of code. Run the program with no errors. How do you think about programming? What constitutes a program?


Everyone should learn to speak at least two languages - one human and one machine

READING + presentations: groups 4 / 5 / 6:

[GROUP 4] David M. Berry, “The Idea of Code”, in The Philosophy of Software: Code and Mediation in the Digital Age, Palgrave, 2011, pp.1-28.

[GROUP 5] Derek Robinson, "Variable", in Fuller, op. cit., pp. 260-266. & Friedrich Kittler, “Code (or, How You Can Write Something Differently)”, in Fuller, op. cit., pp. 40-47.

[GROUP 6] David M. Berry, “Reading and Writing Code”, in Berry op. cit., pp. 64-93.

Basics: Code element and expression, Variable and Data type, Coordinate System, Drawing shapes, Colors, Simple Interactivity and Events

Weekly mini-ex (due in class 5):

Fun drawing: Explore a new syntax that hasn’t been covered in the class. Design a creature using simple shapes. Draw the creature by hand. Then attempt to write the code for the creature, using the Processing commands. Remember to incorporate the new syntax that you have found. – The idea is not about how great you can draw, but more thinking about drawing in a computational perspective.


Temporalities - real-time, machine time and just-in-time (live) coding

READING + presentations: groups 7 / 8 / 9:

[all] Wilfried Hou Je Bek, "Loop", in Fuller, op. cit., pp. 179-183.

[GROUP 7] Shintaro Miyazaki, “Algorhythmics: Understanding Micro-Temporality in Computational Cultures”, in Computational Culture, issue 2,

[GROUP 8] Simon Yuill, “All Problems of Notation Will be Solved by the Masses”, in MUTE, 2008,­Problems-­of-­Notation-­Will-­be-­Solved-­by-­the-­Masses

[GROUP 9] David Berry, “Real-time Streams”, in Berry, op. cit., pp. 142-171.

Additional reading:

Geoff Cox, “Real-time for Pirate Cinema”, 2015; available at

Digital Design with Processing: Typography, Concept of array, Simple for-loop and repetition, Transformation (translate, rotation, scaling, pop/push Matrix)

- Mid term project will be introduced this week

Weekly mini-ex (due in class 6):

Enhanced drawing: Design a screen drawing that consists of text, shape and image. The drawing should express certain temporal quality. [Optional challenge: explore and use the GifAnimation library in your screen design: ]

-see other references:


Software aesthetics - decidedly, not software to make art but software as art


Geoff Cox, Alex McLean, Adrian Ward, "The Aesthetics of Generative Code", 2000; available at

Florian Cramer, "Concepts, Notations, Software Art", in Olga Goriunova and Alexei Shulgin, eds., Software Art: Thoughts. Catalog of Read_Me Festival 1.2. Moscow: Rosizo, State Centre for Museums and Exhibitions, 2002; available at

Cecile Crutzen and Erna Kotkamp, "Object Orientation", in Fuller, op. cit., pp. 200-207.

Additional reading:

Noah Wardrip-Fruin, Nick Montfort, "From Software - Information Technology: Its New Meaning for Art", in The New Media Reader, 2003; available at

TASK: Close reading - and expression in code.

Structure: Libraries, Conditionals, Functions and Arguments, Blackbox, Flow Diagram

Weekly mini-ex (due in class 7):

Artwork/Design work analysis: Pick any application in real world (example: games, electric appliances, online platforms, design/artistic projects); Based on your experience and what you see, try your best to understand (and decode) the logics and functions (blackbox) behind through drawing a flow diagram. *You may not be able to decode everything, but just try your best to imagine! – This exercise will help you to structure some code fragments and to understand how a program flows.


Generators and other automatisms - seemingly random and unpredictable processes


Geoff Cox, "Introduction", in David Link - Machine Heart, Series: Documenta 13: 100 Notizen - 100 Gedanken series No. 037, Ostfildern: Hatje Cantz 2012.

Noah Wardrip-Fruin, “Digital Media Archaeology: Interpreting Computational Processes”, in Erki Huhtamo & Jussi Parikka, eds., Media Archaeology: Approaches, Applications and Implications, Berkeley: University of California Press, 2011 pp. 302-322.

Nick Montfort, “Randomness”, in Montfort et al, 10 PRINT CHR$(205.5+RND(1)); : GOTO 10, Cambridge, MA: MIT Press, 2012, pp. 119-146.

Additional reading:

David Link, "Scrambling T-R-U-T-H: Rotating Letters as a Material Form of Thought", in Siegfried Zielinski and Eckhard Fürlus, eds., Variantology 4: On Deep Time Relations of Arts, Sciences and Technologies in the Arabic-Islamic World, Cologne: König, 2010, pp. 215–266.

TASK: Collaborative writing.

Generativity and object-oriented programming: Arrays (Continued), Randomness/Noise, Object/Class/Constructor, Object-Oriented Programming

Weekly mini-ex (due in class 8):

Peer learning/sharing: Work in a project group and try preparing a processing tutorial for up to 10 mins. The tutorial presentation is something that will benefit your classmates from working on the mid term project.


  • A particular function/library
  • Ways of styling/structuring your code
  • Revisit some basic processing syntax and function
  • Discuss a project that code with processing
  • Any others…

What is code, and can it really be critical?


Wendy Hui Kyong Chun, "On Sourcery and Source Codes", in Programmed Visions: Software and Memory. Cambridge, MA: MIT Press, 2011, pp. 19-54.

Mark C. Marino, “Field Report for Critical Code Studies, 2014”, in Computational Culture, issue 4,

Harwood, "Class library", in Fuller op. cit., pp. 37-39.

Additional reading:

David M. Berry, “What is Code?”, in Berry, op cit., pp. 29-63.

David M. Berry, “Running Code”, in Berry op. cit., pp. 94-118.

TASK: Close reading of Wendy Chun essay - make a flow diagram.

Revision, Studio time/discussion and questions from students

* No weekly mini-ex

9 Revision Mid term presentation

Weekly mini-ex (due in class 10):

Design at least two bouncing balls with variant characteristics: using class, object and array. The work should express the quality of automatism. Please explore and use at least one library that hasn’t been taught in class. -

[Optional Challenge: Can you adjust the bouncing ball in this moving pattern?]


Data, Archives, Repositories, Libraries, Databases - what's the difference?

READING: Warren Sack, “Memory”, in Fuller, op. cit., pp. 184-193.

Wendy Hui Kyong Chun, “The Enduring Ephemeral, or the Future Is a Memory”, in Critical Inquiry 35 (Autumn 2008), Chicago: University of Chicago; available at (also see Programmed Visions: Software and Memory, Cambridge, MA: MIT Press, 2011)

Wolfgang Ernst, “Media Archaeography: Method and Machine versus History and Narrative of Media”, in Erki Huhtamo & Jussi Parikka, eds., Media Archaeology: Approaches, Applications and Implications, Berkeley: University of California Press, 2011, pp. 239-255.

Paul Dourish, “NoSQL: The Shifting Materialities of Database Technology”, in Computational Culture, issue 4,

Additional reading:

Geoff Cox, Michael Mutaugh, Nicolas Maleve, “Archiving the Data-body: human and nonhuman agency in the documents of Kurenniemi”, in Joasia Krysa & Jussi Parikka, eds. Writing and Unwriting Media Art History, Cambridge Mass.: MIT Press 2015 (forthcoming); draft version available at

Data Processing: Concept of batch processing and real time processing, Reading static data and format conversion

- Guest Lecture by Lasse Steenbock Vestergaard on Open Data Project

- Final project will be introduced this week

Weekly mini-ex (due in class 11):

Find any data source on the Internet, and then try to base on it and produce a sketch/visualization in Processing.


Big data and the datafication of everything, including yourself


Richard Wright, "Data Visualisation", in Fuller, op. cit., pp. 78-87.

Kenneth Neil Cukier & Viktor Mayer-Schoenberger, “The Rise of Big Data: How It's Changing the Way We Think About the World”, in Foreign Affairs, May/June 2013,

Jean Burgess, The Politics of Twitter Data [ttp://]

Various articles in Christian Ulrik Andersen & Geoff Cox, eds., Datafied Research, APRJA: A Peer-reviewed Journal about Datafied Research, 4.1, 2015; available at

See especially articles by James Charlton “Add to Shopping Basket”; Daniel Howe “Surveillance Countermeasures: Expressive Privacy via Obfuscation”; Audrey Samson “Erasure, an attempt to surpass datafication”; Winnie Soon “Zombification: the living dead in spam”. Read at least one of these.

Data Processing II: Dataset, Data Processing – steps, Text file reading, JSON file, Understanding data structure, APIs

Weekly mini-ex (due in class 12):

You might choose to work as a group. Find any data source on the Internet with API, and then try to base on it and produce a sketch/visualization in Processing (e.g Twitter, Facebook, Flickr and any others)

Objective: pay attention to the available data, and the processing of using API

  • For those who experience difficulty in this mini ex, you can simply follow this link, step by step to guide you through to work with Twitter data(reminder: code has been updated from time to time, you can easily find a workable code through other web users’ comment)

It looks like you are writing an exam paper of 10-15 pages (possibly using Microsoft Word)

Distribute template for essays based on Software Studies: A Lexicon.


Matthew Fuller, “It Looks Like You’re Writing a Letter: Microsoft Word”, in Behind the Blip, New York: Autonomedia, 2003; early version available at

Data Processing III: Text-to-Speech, JSON API examples: weather, news, social media

No Weekly mini-ex

13 Group tutorials Studio time/discussion and questions from students

No Weekly mini-ex

14 Group tutorials Preparation week: no lecture but still with tutorial session

No Weekly mini-ex

15 Feedback on draft essays Final Presentation


Software Studies Aesthetic Programming
Students are asked to write a fully-referenced critical text of of 10-15 pages in the style of an extended entry to the ‘Software Studies Lexicon’ (as if the second edition). It should be an analytical text but one that takes its cue from software itself. To pass this course students are required to both make a piece of software and to contextualise it critically. Details will be discussed in class.
  1. Individual weekly mini exercises - in the form of programming and/or artistic and design project criticism
  2. Mid term group project - in the form of a “readme” and a “runme” (software) packaged + in class presentation
  3. Final group project - in the form of a “readme” and a “runme” (software) packaged + in class presentation + oral exam

Final project task: Design an object-oriented program that utilizes online data. The outcome should express the notion of ‘temporality’, as well as criticizing the culture of data practices. Feel free to articulate your meaning of time through historical/philosophical/artistic/scientific/cultural or any other perspective(s).

Deliverable: You need to come up with a “readme” that incorporates the instructions of running your program (please indicate if it requires other libraries), a flow diagram and a brief synopsis. Additionally, a “runme” software should be able to execute successfully in Processing environment. Lastly, your group is required to present within 13-15 mins with a software demo, articulating your work in both conceptual and technical levels. The presentation will follow by a short Q & A session.

Keywords: data, liveness, temporality, dynamics, system, aesthetics, object/class


Software Studies Aesthetic Programming
  • critical writing
  • critical knowledge of software and computational culture
  • analysis of computational objects and artefacts
  • integration of theoretical and practical skills
  • provides an introduction to computer programming
  • analysis of computational artefacts
  • integration of practical and theoretical skills
  • thinking through making (computational thinking)


Software Studies Aesthetic Programming

The book Software Studies: A Lexicon (ed. Matthew Fuller, 2008) operates as a core text in terms of its style of approach.

You will also find a list of relevant materials dedicated to the field on an online wiki

For other relevant texts, also please look at the Computational Culture journal at


  • Daniel Shiffman, Learning Processing: A Beginner’s Guide to Programming Images, Animations, and Interaction, Morgan Kaufmann 2008
  • Casey Reas and Ben Fry, Processing: A Programming Handbook for Visual Designers and Artists, MIT Press 2007

LINKS (Practice):

>> Additional texts and links will be provided during class.