Design Tool Studio

Patrick Hebron

Process is everything.

Any programming language can theoretically produce any program. In practice, though, every tool has its own proclivities and point-­‐of-­‐view, which subtly embed themselves in every aspect of the user’s output. In this class, we will explore software-­‐based toolmaking as an artistic practice in its own right. We will study the process of decomposing complex, high-­‐level features into their granular programmatic elements within a low-­‐level, multiparadigm language, C++. Through the granular control of C++, we will think critically about the process of curating a set of high-­‐level features within a tool and form opinions about how these curations influence the user’s own creative process.

Each student will test his or her ideas through an iterative, semester-­‐long software development project of the student’s own choosing. Though broadly interpretable, projects should relate to the theme of building software that aids its user in a creative or intellectual process. This could be a user-­‐facing design application (a la Photoshop, Maya, Logic, etc, though obviously less full-­‐featured than those commercial applications) or a developer-­‐facing code library. Students can think expansively about these definitions and challenge these delineations.

Weekly assignments will be given to help guide the design, development and
presentation elements of the final project. Students will also be expected to spend time engaging with and responding to the tools built by their peers. Our technical work will be supplemented with theoretical readings from Seymour Papert, Nicholas Negroponte, Buckminster Fuller and others.