Date of Award

Spring 1-1-2010

Document Type


Degree Name

Doctor of Philosophy (PhD)


Computer Science

First Advisor

Michael Eisenberg

Second Advisor

Clayton Lewis

Third Advisor

Leysia Palen


Increasingly powerful and tiny electronics are finding their way into clothing, accessories, and everyday environments. It is becoming common to find computers in shoes, bracelets, hats, walls, pendants, and so on. However, the domain of computer programming has remained on the desktop: in order to customize their behavior, one must still connect these artifacts to a larger, general-purpose computer, ironically taking one out of the very physical context of use that ambient computing is intended for.

This document addresses the notion of end-user programmability of ambient artifacts. Specifically, it discusses how we may customize the behavior of a variety of embedded computational devices, some wearable and highly portable, and others part of the built environment. It builds on the rich tradition of end-user programming research, and introduces some ideas about how the nature of programming might change when users are empowered with new kinds of ambient interfaces and input sources.

Ambient programming might be seen as a natural corollary to ambient computing: the advent of a plethora of small, embedded, and mobile computational devices facilitates the creative expansion of informal techniques for communicating symbolic information to those devices. In contrast with the notions of traditional programming (e.g.) as a highly structured, abstract, and sedentary activity, ambient programming suggests a reconception of the practice of programming as (at least partially) informal, opportunistic, physically active, and playful. As the advent of embeddable computers helped change the traditional desktop-centric notions of computing, ambient programming suggests a new and potentially quite powerful means to challenge, complement, and extend the traditional desktop-centric notions of programming itself.