Home / Events / Digital Culture Speaker Series: Tools for Transforming Creative Coding Messes into Helpful Example Programs

This event has been moved online. Join the discussion on YouTube: https://youtu.be/xCgyCuUfQ2w


Tools for Transforming Creative Coding Messes into Helpful Example Programs // Andrew Head

Abstract: One of the most pervasive (yet invisible) creativity support tools is the code editor. Yes, the same code editor you use to edit JavaScript, Processing or Arduino code! The code editor is where we sketch, think about and write about code.

Like many other environments for creative exploration, code editors get messy: Programs get long. They become littered with commented-out code. They get studded with obsolete notes. And the code gets tangled into complex structures. When it becomes time to share that code with others (i.e., as a clean code snippet), it takes considerable effort to clean it up.

Could everyday creativity support tools like the code editor help authors transform their messy work into clean examples for others to build on? This talk presents a vision of a type of interactive system called a “distillation tool,” which helps creators transform messes into useful examples for others with the assistance of algorithms. An interview study is presented where programming bloggers describe how they transform messy code into examples. Then, interactive tools are introduced for “distilling” messy code. The tools provide interactive features for simplifying, untangling and restructuring messy code into example programs like snippets and tutorials. They extend a coder’s expressive leverage by supporting an interactive loop wherein a coder works together with incremental algorithms for program dependency analysis and dynamic analysis of the program's behavior. Evidence from usability studies suggest that the tools help coders efficiently and flexibly transform messy code into example programs.

Bio: Andrew studies how humans and algorithms can work together to perform complex creative tasks. His focus is on designing tools that help experts share their knowledge, whether by helping scientists disseminate their research, or helping programmers learn on the job. Andrew is a post-doctoral researcher at UC Berkeley. There, he is currently designing interactive tools that combine novel interfaces and artificial intelligence to support scholarly communication. In his PhD at UC Berkeley, Andrew worked with Björn Hartmann and Marti Hearst on the design of interactive systems to support the authoring of programming tutorials. Andrew’s work has been supported by the Sloan Foundation, the Allen Institute for AI, an NDSEG fellowship and internships with Google and Microsoft Research. His papers have received numerous nominations and best paper awards at CHI, the premier ACM conference on human-computer interaction. One of his projects, “gather,” has been turned into an extension for the popular VSCode programming editor by the VSCode Python team. To date, the extension has been installed by programmers more than 3k times.

For more information please contact:
Kayla Elizondo-Núñez
School of Arts, Media and Engineering