Watch What I Do
Programming by Demonstration
Programming by Demonstration is a method that allows end users to create, customize, and extend programs by demonstrating what the program should do.
Until recently most programming power has been in the hands of the professional programmer rather than the end user. Programming by Demonstration is a method that allows end users to create, customize, and extend programs by demonstrating what the program should do. Programming by Demonstration systems have existed since 1975, yet this is the first time that information on all of the best of these systems has been gathered in one place. The first section of the book describes 18 computer implementations of Programming by Demonstration, and the second section discusses the problems and opportunities for this method in more general terms. Included in the appendices is a test suite, a collection of practical examples illustrating the broad variety of tasks that are amenable to Programming by Demonstration. The test suite is also useful for researchers, who can evaluate their own systems in terms of how well they are able to automate these tasks.
Contents Introduction • Section 1: Systems • Pygmalion • Tinker • A Predictive Calculator • Rehearsal World • SmallStar • Peridot • Metamouse • TELS, Eager • Garnet • The Turvy Experience • Chimera • The Geometer's Sketchpad • Tourmaline • A History-Based Macro by Example System • Mondrian • Triggers • The AIDE Project • Section II: Components • A History of Editable Graphical, Histories • Graphical Representation and Feedback in a PBD System • PBD Invocation Techniques • A System-Wide Macro Facility Based on Aggregate Events • Making Programming Accessible to Visual Problem Solvers • Using Voice Input to Disambiguate Intent • Section III: Perspectives • Characterizing PBD Systems • Demonstrational Interfaces • Just-in-Time Programming