home · mobile · calendar · bactac · 2008-2009 · 

BACTAC - Elumeze

Ambient Programming: Spreading Program Throughout a Physical Setting
Graduate Student

Traditionally, programming is conceived (and taught) as a highly structured, abstract, sedentary, and time-intensive activity. By contrast, the notion of ambient programming reconceives the practice of programming as (at least partially) informal, opportunistic, physically active, and playful; likewise, ambient programming places a greater emphasis on the interweaving of abstract coding with tangible materials and construction.

Consider a small Lego car equipped with a PIC microprocessor and a sensor that can read the reflectance of the surface underneath it. Bits of program are written out as bar code on cards, and the car reads the instructions as it rolls over them. If it rolls over (and thus reads) a "turn left" instruction, it would turn and continue on its way. By creating a small set of distinct commands that the car can read and laying them out on the floor, one can in effect "write a program" on the floor of one's room.

This prototype exemplifies the goals and style of ambient programming; integrates programming with tangible construction; illustrates the idea of embedding "low-tech" programming instructions in physical objects; and demonstrates the feasibility of informal (hand-drawn) programming.

Department of Computer Science
University of Colorado Boulder
Boulder, CO 80309-0430 USA
May 5, 2012 (14:24)