Live Coding: Code as Performance

Fall 2026

Prof. Mark Santolucito

Wednesdays 6:10 - 8:00 PM, Computer Music Center, Columbia University

Summary

This seminar explores live coding: the practice of writing and modifying programs as they execute in real time as an artistic performance practice. We will study the design of programming languages built for live coding (TidalCycles, SuperCollider, Sonic Pi, Strudel, Hydra), asking what makes a language good to perform with rather than just to program with. What is the human element of designing a programming language. We will engage with live coding as an artistic practice - its history, its communities (TOPLAP, algoraves), and its aesthetics of liveness, risk, and error. Finally, we will ask what code as performance means in the age of AI: when machines can generate code, what is the value of a human writing it live? How can the AI assisted generation of bespoke programming languages change live coding?

Students will read and discuss key texts, develop their own live coding practice, and perform.

Course Structure

Each week combines seminar discussion of readings with hands-on live coding practice. Every student will lead at least one discussion during the semester and post a short reading response before each class. Alongside the readings, students will develop a personal live coding practice through a series of short in-class performances (études). The final étude asks each student to design - with AI assistance - a small bespoke live coding language of their own and perform in it. The course culminates in a final performance and an accompanying written artist statement situating the work in the ideas of the course.

Grading: participation and reading responses, discussion leading, études, and the final performance and writeup. (Exact breakdown on the syllabus.)

Schedule

Schedule and readings are tentative and will be adjusted as the semester progresses.

Module 1 - What is Live Coding?

Week 1 - Class introduction: code as performance, performance as code

Week 2 - Histories and communities

Module 2 - Languages to Perform With

Week 3 - Language design for liveness: SuperCollider and just-in-time programming

Week 4 - Patterns as programs: TidalCycles and Strudel

Week 5 - Notation, instruments, and the human element of language design

Week 6 - Live coding beyond sound: visuals with Hydra, live coding in education with Sonic Pi

Module 3 - The Artistic Practice of Live Coding

Week 7 - Liveness, risk, and error

Week 8 - Show us your screens: projection, legibility, and the audience

Week 9 - Embodiment and virtuosity (études showcase)

Module 4 - Code as Performance in the Age of AI

Week 10 - When the machine writes the code: LLMs in live coding; authorship, labor, and the value of writing code live

Week 11 - Languages on demand: AI-assisted design of bespoke live coding languages

Week 12 - Final performance workshop

Week 13 - Final performances + course wrap-up