There’s a popular assignment among computer arts professors, in which students are asked to create a clock—a foundational exercise akin to drawing a skeleton in an introductory drawing class. The assignment is an ideal entry point for teaching creative coding, the use of computer programming techniques to create dynamic, expressive visual forms. Still, when Professor Golan Levin was chatting with NYU Assistant Professor Tega Brain at a conference several years ago, they were surprised to find that both had assigned the clock exercise, despite the fact that they were educated on opposite sides of the globe, Brain in Australia and Levin in the United States.
“So many of our peers had given this assignment over the years, but the only written descriptions of this assignment were tucked away in poorly maintained online courseware,” says Levin.
The two began an eight-year process to write and produce an essential guide for teachers of creative coding that brings together assignments and prompts from hundreds of instructors. Their book, Code as Creative Medium: A Handbook for Computational Art and Design, published by MIT Press, was released this month.
While hundreds of textbooks have been written to teach students the nuts and bolts of computer programming, Code as Creative Medium is the first guidebook written specifically for media arts educators who teach how programming can be applied to art, design, and other creative fields. Twenty years ago, only a few universities taught programming to art students, says Levin. Today, creative coding courses are common in art schools, and even some high schools. Yet until now, there was no common curricular resource for the educators teaching these courses.
Computer programming can be particularly frustrating for artists and creatives to learn, Levin explains, because it is often taught in a way that doesn’t accommodate many art students’ preferences for hands-on learning, their inclinations to work improvisationally, and their desire to create things that are self-directed, expressive and non-utilitarian. Coding can also feel like a very impersonal medium, says Levin. “For example, my command for drawing a circle is exactly the same as yours, so for us to develop personal ways of using a circle is quite a challenge.”
In addition to arts educators, the book is also intended for instructors in other fields, such as computer science or engineering, who want to introduce artistic creativity into coding.
The first section of Code as Creative Medium brings together twenty-three classic assignments illustrated with work by both exemplary students and professional artists. The book features CMU student and faculty work among its 170 color illustrations, including projects by Zainab Aliyu, Lee Byron, Alison Gondek, Michelle Ma, Steven Montinar, Paolo Pedercini, Miles Hiroo Peyton, Everest Pipkin, and Maddy Varner. All assignments included in the book include learning objectives, variations, and tips on how to make the prompt meaningful for students. Levin and Brain developed these assignments from the syllabi of artists and educators around the world, including from the work of CMU professors Paolo Pedercini, Rich Pell, and Levin himself.
The second section of the book contains over 200 brief exercises, while the last section contains interviews with thirteen renowned educators covering topics such as “Encouraging a Point of View,” “When Things Go Wrong,” and “Advice for New Educators.”
Paradoxically, one thing the book does not contain is code. “We didn’t want to kill trees in order to commit rapidly obsolescing code to print,” says Levin, who says that most books about programming become obsolete in five years or less. Rather, the book is designed to be used with virtually any coding language, and is accompanied by an online GitHub repository that provides sample projects in Java, JavaScript, and Python.
Though the book itself does not contain code, it is the first book published by MIT Press to be designed using code. Typically, a book is laid out by a designer in a program like Adobe InDesign, and the designer must continuously adapt the book’s layout each time there is a new edit. Instead, CMU School of Design Professor Kyuha Shim used the Basil.js scripting language to program design rules that automatically generated the book’s layout. Shim’s process, known as “computational book design,” was supported by a Media Arts grant from the National Endowment for the Arts.
While in some ways the book is an effort to codify a canon of creative coding assignments, Levin and Brain were also cognizant that coding education has often been exclusionary. Not only was it important that the illustrated examples demonstrate a breadth of diversity—of cultural and artist approaches, creator backgrounds, ages, and identities, and more—but it was also important that the prompts themselves welcome diversity. “It wasn’t enough for the assignments to be illustrated by diverse people,” says Levin. “The assignments themselves had to be written to allow for diverse approaches.”
Many CMU undergraduate student research assistants were instrumental in helping to realize Code as Creative Medium, including Chloé Desaulles, Lingdong Huang, Sarah Keeling, Tatyana Mustakos, Cassie Scheirer, Joyce (Xinyi) Wang, and T. James Yurek.
The book was developed through the Frank-Ratchye STUDIO for Creative Inquiry. In addition to the NEA grant, it was also supported by the Frank-Ratchye Fund for Art @ the Frontier and a professional development grant from IDeATe.