Your Wish is My Command

Programming By Example


  • Henry Lieberman, Massachusetts Institute of Technology

As user interface designers, software developers, and yes-as users, we all know the frustration that comes with using "one size fits all" software from off the shelf. Repeating the same commands over and over again, putting up with an unfriendly graphical interface, being unable to program a new application that you thought of yourself-these are all common complaints. The inflexibility of today's computer interfaces makes many people feel like they are slaves to their computers. Shouldn't it be the other way around? Why can't technology give us more "custom-fitting" software?

On the horizon is a new technology that promises to give ordinary users the power to create and modify their own programs. Programming by example (PBE) is a technique in which a software agent records a user's behavior in an interactive graphical interface, then automatically writes a program that will perform that behavior for the user.

Your Wish is My Command: Programming by Example takes a broad look at this new technology. In these nineteen chapters, programming experts describe implemented systems showing that PBE can work in a wide variety of application fields. They include the following:

The renowned authors and their editor believe that PBE will some day make it possible for interfaces to effectively say to the user, "Your wish is my command!"

View full description


Professionals involved in the areas of HCI and AI, designers of complex systems and programming environments including researchers and software developers specializing in agent technology.


Book information

  • Published: February 2001
  • ISBN: 978-1-55860-688-3

Table of Contents

Foreword Ben Shneiderman Introduction Henry Lieberman 1) Novice Programming Comes of Age David Canfield Smith, Allen Cypher, Larry Tesler 2) Generalizing by Removing Detail: How Any Program Can Be Created by Working with Examples Ken Kahn 3) Demonstrational Interfaces: Sometimes You Need a Little Intelligence; Sometimes You Need a Lot Brad A. Myers, Richard McDaniel 4) Web Browsing by Demonstration Atsushi Sugiura 5) Programming by Demonstration for Information Agents Mathias Bauer, Dietmar Dengler, Gabriele Paul 6) End Users and GIS: A Demonstration is Worth a Thousand Words Carol Traynor and Marian Williams 7) Bring Programming by Demonstration to CAD Users Patrick Girard 8) Demonstrating the Hidden Features That Make an Application Work Richard McDaniel 9) A reporting tool using programming by example for format designation Tetsuya Masuishi and Nobuo Takahashi 10) Composition by Example Toshiyuki Masui 11) Learning Repetitive Text-editing Procedures with SMARTedit Tessa Lau, Steve Wolfman, Pedro Domingos and Daniel S. Weld 12) Training Agents to Recognize Text by Example Henry Lieberman, Bonnie A. Nardi and David J. Wright 13) SWYN: A Visual Representation for Regular Expressions Alan Blackwell 14) Learning Users' Habits to Automate Repetitive Tasks Jean-David Ruvini and Christophe Dony 15) Domain-independent programming by demonstration in existing applications Gordon W. Paynter and Ian H. Witten 16) Stimulus-Response PBD: Demonstrating When as Well as What David Wolber and Brad A. Myers 17) Pavlov: Where PBD Meets Macromedia's Director David Wolber 18) Programming by Analogous Examples Alexander Repenning and Corrina Perrone-Smith 19) Visual Generalization in Programming by Example Robert St. Amant, Henry Lieberman, Richard Potter, and Luke Zettlemoyer