September 15 – 20 , 2013, Dagstuhl Seminar 13382
Collaboration and learning through live coding
1 / 2 >
For support, please contact
The goal of this seminar was to understand and develop the emerging practice, characteristics and opportunities in live coding, with an emphasis on three perspectives: the humanities, computing education, and software engineering. The opening days of the seminar were broadly structured to provide thematic introductions followed by facilitated discussions on each of these three perspectives. These were interspersed with live coding performances and experiments, in order to ensure that theoretical concerns remained grounded within this discipline that fundamentally blurs the separation of concerns between theory and practice.
The second half of the seminar was problem-oriented, resulting in concrete progress on specific technical topics, together with development of a research roadmap, publications and policy strategy to realise the significant benefits that live coding promises in a number of fields. Finally, in the spirit of both practice as a form of theory and theory as a form of practice, the seminar included some exciting musical experiences -- an Algorave club night in London, with performances by delegates who were traveling from other countries on their way to the seminar; an inter-continental collaborative performance hosted jointly with the IEEE VL/HCC conference in San Jose; a conceptual proposal for an interactive sound installation in the Schloss Dagstuhl garden; and live-coded jam sessions in venues ranging from the woods of the old castle, to evening cabaret entertainment in the beautiful Dagstuhl music room.
Our main findings in relation to the three contrasting research perspectives were as follows:
- Live coding illuminates the ways in which programming can be an artistic practice, software-as-art, going beyond a mere supporting role, and illustrating that software is itself a cultural artefact, not simply an infrastructure commodity. We see many opportunities for nuanced, cross-disciplinary contributions to the digital humanities, for example in a revitalisation of the historical connection between computation and weaving, insights into the role of practice and experiment, and an enrichment of the notion of computation itself. Indeed, as computing becomes embedded in culture, the live, everyday authorship of computation becomes a socio-political question of freedom of speech and empowerment.
- Live coding can play an important role in computing education, because it allows programming to be demonstrated and learned in a simple but authentic context. At the same time, it can support an affective teaching strategy where learners are not only motivated by the production of sound, visuals and other phenomena, but are also clear on the distinctly human activity which produces them. Thereby, however, it maintains a sense of discovery of something unanticipated and not prefigured. Of particular importance for learning is the potential for deeper engagement with the non trivial nature of computing, rather than an occupation with the operation of end-user application software.
- Live coding offers new insights with regard to software engineering processes. The history of software engineering process can be seen as a move from heavyweight lock-step approaches to more agile approaches with fast cycles of development and feedback. At their heart, the new approaches rely on collaboration, as developers, designers, and customers work together to steer the process toward mutual success. Live coding demonstrates this kind of approach in a compelling way, with simple tools, a short time frame, but still allowing improvisational collaboration between performers and various audiences.
Perhaps more significant than any of these individual considerations is an ambitious holistic vision: that live coding can entirely change the way we think about programming. Indeed, the common experience articulated at the workshop is that live coding exemplifies both the power and the excitement of programming -- in a small space, in a short time, available and accessible to anyone. Live coding exposes the soul of programming.
Our next steps are a series of collaborative workshops and programs to articulate and demonstrate this collection vision of a broad and expanding role for live coding.
This report is a collection of texts that were direct outcomes of the seminar rather than having been set up in advance. Taking the role of editor seriously, Jochen Arne Otto has diligently collected, arranged and revised the heterogeneous materials, a synthesis without which such a concise paper would not have been possible. While taking responsibility for all remaining mistakes and omissions, we would like to thank Jochen very much for his commitment to this difficult task.
Creative Commons BY 3.0 Unported license
Alan Blackwell and Alex McLean and James Noble and Julian Rohrhuber
- Society / Human-computer Interaction
- Software Engineering
- Live coding
- Software engineering
- Agile development
- Learning and teaching