Software Studies / Aesthetic Programming
This is a page that shares the curriculum of the BA course Software Studies/Aesthetic Programming.
Outline
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
Schedule
Week | Software Studies | Aesthetic Programming |
---|---|---|
1 |
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. www.transmediale.de READING: 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 http://softwarestudies.projects.cavi.au.dk/index.php/Main_Page. For other relevant texts, also please look at the Computational Culture journal at http://computationalculture.net/. TASK: Begin an annotated bibliography. |
Trip to Transmediale festival for those who can make it (28 Jan – 1 Feb 2015) READING:
|
2 |
Hello World! - an introduction to software studies READING: 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”, https://www.gnu.org/philosophy/why-free.html Also see http://softwarestudies.projects.cavi.au.dk/index.php/Main_Page |
Introduction: the course, some artworks, Processing and Programming READING:
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. |
3 |
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 Esoteric.codes, 2014, http://esoteric.codes/post/104079889888/code-art-code-poetry-and-esolangs 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)
PRACTICE:
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? |
4 |
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
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. https://processing.org/reference/ |
5 |
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, http://computationalculture.net/article/algorhythmics-understanding-micro-temporality-in-computational-cultures [GROUP 8] Simon Yuill, “All Problems of Notation Will be Solved by the Masses”, in MUTE, 2008, http://www.metamute.org/en/All-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 http://aksioma.org/Geoff-Cox-Real-time-for-Pirate |
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
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: http://extrapixel.github.io/gif-animation/ ] -see other references: |
6 |
Software aesthetics - decidedly, not software to make art but software as art READING: Geoff Cox, Alex McLean, Adrian Ward, "The Aesthetics of Generative Code", 2000; available at http://www.generative.net/papers/aesthetics/index.html. 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 http://www.netzliteratur.net/cramer/concepts_notations_software_art.html 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 http://monoskop.org/images/7/70/From_Software_exhibition_1970.pdf TASK: Close reading - and expression in code. |
Structure: Libraries, Conditionals, Functions and Arguments, Blackbox, Flow Diagram
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. |
7 |
Generators and other automatisms - seemingly random and unpredictable processes READING: 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
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. Suggestion:
|
8 |
What is code, and can it really be critical? READING: 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, http://computationalculture.net/article/field-report-for-critical-code-studies-2014%E2%80%A8 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
|
9 | Revision | Mid term presentation
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. -https://processing.org/reference/libraries [Optional Challenge: Can you adjust the bouncing ball in this moving pattern?] |
10 |
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 http://www.ucl.ac.uk/art-history/events/past-imperfect/chun-reading (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, http://computationalculture.net/article/no-sql-the-shifting-materialities-of-database-technology 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 http://activearchives.org/wiki/Archiving_the_Data-body:_human_and_nonhuman_agency_in_the_documents_of_Kurenniemi |
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
Find any data source on the Internet, and then try to base on it and produce a sketch/visualization in Processing. |
11 |
Big data and the datafication of everything, including yourself READING: 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, http://www.foreignaffairs.com/articles/139104/kenneth-neil-cukier-and-viktor-mayer-schoenberger/the-rise-of-big-data Jean Burgess, The Politics of Twitter Data [ttp://www.academia.edu/7762825/The_Politics_of_Twitter_Data http://www.academia.edu/7762825/The_Politics_of_Twitter_Data] Various articles in Christian Ulrik Andersen & Geoff Cox, eds., Datafied Research, APRJA: A Peer-reviewed Journal about Datafied Research, 4.1, 2015; available at http://www.aprja.net/?page_id=2283 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
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
|
12 |
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. READING: Matthew Fuller, “It Looks Like You’re Writing a Letter: Microsoft Word”, in Behind the Blip, New York: Autonomedia, 2003; early version available at http://www.nettime.org/Lists-Archives/nettime-l-0009/msg00040.html |
Data Processing III: Text-to-Speech, JSON API examples: weather, news, social media
|
13 | Group tutorials | Studio time/discussion and questions from students
|
14 | Group tutorials | Preparation week: no lecture but still with tutorial session
|
15 | Feedback on draft essays | Final Presentation |
Task
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.
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 |
Skills
Software Studies | Aesthetic Programming |
---|---|
|
|
Resources
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 http://softwarestudies.projects.cavi.au.dk/index.php/Main_Page. For other relevant texts, also please look at the Computational Culture journal at http://computationalculture.net/. |
CORE TEXTS:
LINKS (Practice):
>> Additional texts and links will be provided during class. |