Ambient programming

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.

[1]  Michael Eisenberg,et al.  The rototack: designing a computationally-enhanced craft item , 2000, DARE '00.

[2]  M.N. Sastry,et al.  Structure and interpretation of computer programs , 1986, Proceedings of the IEEE.

[3]  Caitlin Kelleher,et al.  Using storytelling to motivate programming , 2007, CACM.

[4]  Fred Martin,et al.  Ideal and Real Systems: A study of notions , 1996 .

[5]  Amanda J. Parkes,et al.  Beyond record and play , 2006 .

[6]  Andy Cockburn,et al.  Do it this way: equal opportunity programming for kids , 1996, Proceedings Sixth Australian Conference on Computer-Human Interaction.

[7]  Todd Oppenheimer,et al.  The Flickering Mind: Saving Education from the False Promise of Technology , 2003 .

[8]  Hiroshi Ishii,et al.  Audiopad: A Tag-based Interface for Musical Performance , 2002, NIME.

[9]  Michael S. Horn,et al.  Designing tangible programming languages for classroom use , 2007, TEI.

[10]  Jie Qi,et al.  Electronic popables: exploring paper-based computing through an interactive pop-up book , 2010, TEI '10.

[11]  Fred Martin,et al.  MetaCricket: A designer's kit for making computational devices , 2000, IBM Syst. J..

[12]  Thomas R. Flowers,et al.  Empowering students and building confidence in novice programmers through Gauntlet , 2004, 34th Annual Frontiers in Education, 2004. FIE 2004..

[13]  Michael Eisenberg,et al.  Programming in Scheme , 1988 .

[14]  Andrew Cyrus Smith Handcrafted physical syntax elements for illetterate children: initial concepts , 2008, IDC.

[15]  G. W. Teuscher The hand that rocks the cradle... , 1988, ASDC journal of dentistry for children.

[16]  Jane M. Healy,et al.  Failure to Connect: How Computers Affect Our Children''s Minds-for , 1998 .

[17]  Kenneth M. Kahn,et al.  Drawings on napkins, video-game animation, and other ways to program computers , 1996, CACM.

[18]  Mark D. Gross,et al.  A Brief Survey of Distributed Computational Toys , 2007, 2007 First IEEE International Workshop on Digital Game and Intelligent Toy Enhanced Learning (DIGITEL'07).

[19]  Darren Leigh,et al.  Very Low-Cost Sensing and Communication Using Bidirectional LEDs , 2003, UbiComp.

[20]  Leah Buechley,et al.  Boda blocks: a collaborative tool for exploring tangible three-dimensional cellular automata , 2007, CSCL.

[21]  James A. Hendler,et al.  Physical programming: tools for kindergarten children to author physical interactive environments , 2003 .

[22]  B. Rogoff The Cultural Nature of Human Development , 2003 .

[23]  B. Sutton-Smith,et al.  Toys As Culture , 1986 .

[24]  William J. Mitchell,et al.  Urban pixels: painting the city with light , 2009, CHI.

[25]  Shojiro Nishio,et al.  A system for controlling LED blink in wearable fashion , 2007, IWCMC.

[26]  Mitchel Resnick,et al.  Scratch: A Sneak Preview , 2004 .

[27]  Matthias Felleisen,et al.  The structure and interpretation of the computer science curriculum , 2004, J. Funct. Program..

[28]  Flemming Nielson,et al.  Interprocedural Control Flow Analysis , 1999, ESOP.

[29]  Mitchel Resnick,et al.  Digital manipulatives: new toys to think with , 1998, CHI.

[30]  Tommy Burnette,et al.  Alice: lessons learned from building a 3D system for novices , 2000, CHI.

[31]  Gerhard Fischer,et al.  Beyond Object-Oriented Technology: Where Current Approaches Fall Short , 1995, Hum. Comput. Interact..

[32]  Michael Herczeg,et al.  Tangicons: algorithmic reasoning in a collaborative game for children in kindergarten and first class , 2008, IDC.

[33]  Allison Druin NOOBIE: the animal design playstation , 1988, SGCH.

[34]  Stephen Bannasch Educational Innovations in Portable Technologies , 2001 .

[35]  Peta Wyeth,et al.  Electronic Blocks: Tangible Programming Elements for Preschoolers , 2001, INTERACT.

[36]  Mark D. Gross,et al.  The robot is the program: interacting with roBlocks , 2008, Tangible and Embedded Interaction.

[37]  Tim McNerney,et al.  Tangible programming bricks : an approach to making programming accessible to everyone , 1999 .

[38]  J. Tudge Processes and Consequences of Peer Collaboration: A Vygotskian Analysis , 1992 .

[39]  Michael Eisenberg,et al.  Quilt Snaps: a fabric based computational construction kit , 2005, IEEE International Workshop on Wireless and Mobile Technologies in Education (WMTE'05).

[40]  Kirsten N. Whitley Visual Programming Languages and the Empirical Evidence For and Against , 1997, J. Vis. Lang. Comput..

[41]  Ian H. Witten,et al.  Inducing programs in a direct-manipulation environment , 1989, CHI '89.

[42]  David A. Gudeman,et al.  Representing Type Information in Dynamically Typed Languages , 1993 .

[43]  Michael Eisenberg,et al.  The programmable hinge: toward computationally enhanced crafts , 1998, UIST '98.

[44]  Michael Eisenberg,et al.  Electronic/computational textiles and children's crafts , 2006, IDC '06.

[45]  Hiroshi Ishii,et al.  Tangible bits: towards seamless interfaces between people, bits and atoms , 1997, CHI.

[46]  Rob Tieben,et al.  actDresses — Interacting with robotic devices — fashion and comics , 2010, 2010 5th ACM/IEEE International Conference on Human-Robot Interaction (HRI).

[47]  G. Hatano,et al.  TWO COURSES OF EXPERTISE , 1984 .

[48]  Michael L. Dertouzos The user interface is the language , 1992 .

[49]  M. Resnick,et al.  Programmable Bricks: Toys to Think With , 1996, IBM Syst. J..

[50]  Andrew C. Smith Using magnets in physical blocks that behave as programming objects , 2007, Tangible and Embedded Interaction.

[51]  Jiao Jian-li Literature Review in Learning with Tangible Technologies , 2008 .

[52]  Nwanua Onochie Elumeze SmartTiles: Towards room-sized, child-programmable computational artifacts , 2007 .

[53]  S. Griffis EDITOR , 1997, Journal of Navigation.

[54]  B. Rogoff Apprenticeship in Thinking: Cognitive Development in Social Context , 1990 .

[55]  Hiroshi Ishii,et al.  Ambient Displays: Turning Architectural Space into an Interface between People and Digital Information , 1998, CoBuild.

[56]  Mark D. Gross,et al.  roBlocks: a robotic construction kit for mathematics and science education , 2006, ICMI '06.

[57]  Michael Eisenberg,et al.  Programming computationally enhanced craft items , 2002 .

[58]  Leah Buechley,et al.  The LilyPad Arduino: using computational textiles to investigate engagement, aesthetics, and diversity in computer science education , 2008, CHI.

[59]  Michael Eisenberg,et al.  Self-disclosing design tools: a gentle introduction to end-user programming , 1995, Symposium on Designing Interactive Systems.

[60]  Cyndi Rader,et al.  Degrees of comprehension: children's understanding of a visual programming environment , 1997, CHI.

[61]  Sara Johansson,et al.  Sniff: designing characterful interaction in a tangible toy , 2009, IDC.

[62]  Paul G. Bahn Charting the past , 2004, Nature.

[63]  Michael Eisenberg,et al.  Programmable applications: interpreter meets interface , 1995, SGCH.

[64]  Clayton Lewis NoPumpG: Creating Interactive Graphics With Spreadsheet Machinery , 1987 .

[65]  Mark Yim,et al.  PolyBot: a modular reconfigurable robot , 2000, Proceedings 2000 ICRA. Millennium Conference. IEEE International Conference on Robotics and Automation. Symposia Proceedings (Cat. No.00CH37065).

[66]  James H. Aylor,et al.  Computer for the 21st Century , 1999, Computer.

[67]  Michael Eisenberg,et al.  Invisibility Considered Harmful: Revisiting Traditional Principles of Ubiquitous Computing in the Context of Education , 2006, 2006 Fourth IEEE International Workshop on Wireless, Mobile and Ubiquitous Technology in Education (WMTE'06).

[68]  Hiroshi Ishii,et al.  curlybot: designing a new class of computational toys , 2000, CHI.

[69]  Luca Cardelli,et al.  A language with distributed scope , 1995, POPL '95.

[70]  Scott E. Hudson,et al.  The information percolator: ambient information display in a decorative object , 1999, UIST '99.

[71]  Ben Shneiderman,et al.  Direct Manipulation: A Step Beyond Programming Languages , 1983, Computer.

[72]  Radia Perlman,et al.  Using Computer Technology to Provide a Creative Learning Environment for Preschool Children. AI Memo 360. , 1976 .

[73]  Henry Lieberman,et al.  A goal-oriented Web browser 4 , 2006 .

[74]  Peta Wyeth,et al.  How Young Children Learn to Program With Sensor, Action, and Logic Blocks , 2008 .

[75]  L. S. Vygotksy Mind in society: the development of higher psychological processes , 1978 .

[76]  Hiroshi Ishii,et al.  Topobo: a constructive assembly system with kinetic memory , 2004, CHI.

[77]  Hiroshi Ishii,et al.  I/O brush: drawing with everyday objects as ink , 2004, CHI.

[78]  Michael Eisenberg,et al.  ButtonSchemer: ambient program reader , 2008, Mobile HCI.

[79]  Taiichi Yuasa,et al.  XS : Lisp on Lego MindStorms , 2003 .

[80]  Andrea A. diSessa,et al.  Changing Minds: Computers, Learning, and Literacy , 2000 .

[81]  Hideaki Kuzuoka,et al.  Mediating awareness and communication through digital but physical surrogates , 1999, CHI Extended Abstracts.

[82]  S. Fernberger The language and thought of the child. , 1927 .

[83]  Fabian Hemmert,et al.  Living interfaces: the impatient toaster , 2009, Tangible and Embedded Interaction.

[84]  Charles Antony Richard Hoare,et al.  Hints on programming language design. , 1973 .

[85]  Bonnie A. Nardi,et al.  A small matter of programming , 1993 .

[86]  Mark Weiser,et al.  Some computer science issues in ubiquitous computing , 1993, CACM.

[87]  G Hildebrandt,et al.  Wheels , 1974 .