clone your own copy | download snapshot

Snapshots | iceberg

Inside this repository

Download raw (8.2 KB)

Title: Introduction 
page_order: -1

## About the book project

### Aesthetic Programming: A Handbook of Software Studies

by Winnie Soon and Geoff Cox

The book is aimed at those who would like to learn how to read, write and think with program code, both on technical and conceptual levels. Most programming books are written with a primary objective of teaching readers how to learn a programming language to become a (better) programmer. There is a strong emphasis on state-of-the-art technology, as well as practical example that is explained and then designed to be deployed in IT-related industries. Not many programming books address the cultural and aesthetic dimensions of programming as a means to think critically and computationally: to gain an expanded ‘coding literacy’. In emerging inter-disciplinary fields involving computational technology - such as software studies, platform studies, media arts and digital humanities - the practices of programming is incorporated into the object of study/research and the teaching curriculum but little practical advice is provided, especially to those studying non science and engineering disciplines.

This book attempts all these things, responding to this perceived gap in literature and a growing interest in ‘computational thinking’ (Berry 2017; Fuller 2017; Vee 2017) thereby expanding programming beyond the confines of computer science and engineering and emphasizing a ‘critical aesthetics’ of code. Whilst operating broadly in the spirit of Software Studies, the book offers an overtly practice-oriented approach to understanding the centrality of reading, writing and thinking with soft-ware as a critical tool for our times - one rooted in computational literacy and in recognition of the way in which our experiences are ever more programmed. It is offered as a deep learning tool - a handbook for those unaccustomed to the field - and one that allows for the agency of the student-programmer to develop as they become more proficient in both their technical and conceptual skills. More specifically, the programming language JavaScript is introduced alongside core programming concepts as material for thinking with, and for thinking through complex ideas and dynamic concepts.

The proposed book, Aesthetic Programming, unlike those traditional books with only text materials, but also include software and program code that would be stored in an open-access repository. The program code can be run online via a web browser. The overall publishing process, including writing, editing, coding, printing would require supporting both text, graphics, multimedia and software performance. Additionally, it is important to keep the versioning and open access of the text and program code changes for the whole writing process to increase accessibility and transparency. To support this kind of non-traditional and emerging publishing plat-form, a collective called Open Source Publishing, a Brussel-based organization as part of CONSTANT, will run workshop, design and support this special form.

### Background

The term ‘Aesthetic Programming’ is closely related to ‘creative coding’ (Maeda, 2004; Peppler & Kafai, 2009) and ‘exploratory programming’ (Montfort 2016) that have been introduced in related literature in recent years. Such terms emphasize the expressivity of computer programming beyond something pragmatic and functional, in which aesthetic production, or critical thinking through practice, can be cultivated and developed through learning and understanding programming from the broad perspectives of aesthetic theory and cultural studies.

Aesthetic Programming is also the title we have given to one of the undergraduate courses in the Digital Design at Aarhus University, which has been taught in parallel to a course in Software Studies since 2013. Together the courses offer ways of think-ing about software and computational culture to understand wider political, cultural, social and aesthetic phenomena, and the ways in which our experiences of the world are ever more underscored by computational processing. Taking its lead from these courses, the book aims to explore programming as cultural practice and phenomenon, as ways of thinking and doing in the world, to understand some of the complex procedures that underwrite our lived realities.

Similarly, we draw upon Software Studies to deal with and communicate knowledge of software as a cultural form via analyses of examples of software artefacts and close readings of theoretical texts, developing a critical understanding of digital culture. We have been working with key concepts from programming as the starting point for analysis; not reading cultural phenomena in relation to programming concepts but rather an approach where the programming leads the discussion through a deep under-standing of the way it is constructed and is operationalized. The common ground therefore with both courses promotes the practical understanding and knowledge of programming to underpin critical understanding of techno-cultural systems.

In this spirit, it also draws upon concrete examples and makes an argument for the inherent interplay of aesthetics and technology. More specifically, there are increasing numbers of artists/programmers whose works explore computational culture and computer processing with a critical attitude (including the works of Winnie Soon, Daniel Howe, Shelly Knotts and many more). In such examples, ‘software art’ is often not considered as a practical tool that produces an artwork but as a critical-aesthetic object in itself. As media theorist Tilman Baumgärtel clarifies:

>Software art is not art that has been created with the help of a computer but art that happens in the computer. Software is not programmed by artists, in order to produce autonomous work, but the software itself is the artwork. What is crucial here is not the result but the process triggered in the computer by the program code. (cited in Cox, 2007, p. 150)

In order to discuss the expressivity and aesthetic dimensions of code and computational processes, this book incorporates and presents artistic works that explore the materiality of software and computational processes alongside the practical and theoretical examination of programming. We take this approach broadly from cultural studies and aesthetic theory inasmuch as such works demonstrate an expanded critical capacity and potential for commentary on contemporary conditions. The term Aesthetic Programming thereby is useful as it points to computational processes and code as expressive materials to reflect the technical, cultural and political implications of tech-no-cultural systems.

In overall terms, readers will acquire key skills of programming in order to read, write and think with, and through, code. We see that it is important to fully explore the intersections of technical and cultural aspects of code in order to reflect deeply on the pervasiveness of computational culture and its effects, from the language and politics of human-machine languages to datafication and recent developments in automated machine intelligence. The book embraces both the technical aspect and formal qualities of code as well as critical discourses and thinking around code, particularly in terms of nonhuman agency and feminist new materialism. Thus it proposes a material-discursive practice with which to acknowledge the conditions of programming practice, including the agency of code itself.

We consider our approach to be distinctive from other programming books on the market that are more focused on programming languages from an engineering perspective, as well as distinctive from other theoretical books where source code becomes an illustration of thinking or too-easy analogy (if not ignored altogether). We aim to bridge the gap between theories of computational culture, aesthetic theory and cultural studies and the practice of programming and thereby provide epistemic insights. As part of this, we take a particular interest in power relations rarely acknowledged, such as class, gender, race, and authoritarianism, built into technological systems. In short, the handbook introduces and demonstrates a distinctive approach through the combined and reflexive practice of aesthetic programming and offers a means to learn programming critically.