Watch What I Do: Programming by Demonstration

This book grew out of a workshop on Programming by Demonstration that was held at Apple Computer in March, 1992. The workshop was an opportunity for current researchers to discuss their work with the pioneers in the field. David Smith demonstrated a HyperCard simulation of his Pygmalion system, which was the first system for programming by demonstration and the inspiration for the work that has followed. Henry Lieberman ported his classic Tinker system to the Macintosh so that he could give a live demonstration at the workshop. This was followed by classic videos of the early systems, live demonstrations of the newer systems, and open discussion on topics in the field.

This book is not only intended for individuals who are actively working in the field of programming by demonstration. We have aimed to make this material accessible and interesting to a larger audience: students and researchers with an interest in end user programming, and individuals interested in user interface design and agent-based systems. It is not a book about machine learning or artificial intelligence. Rather, the focus is on ways to create the appropriate human-computer interaction so that end users can gain more control of their personal computers.

The motivation behind Programming by Demonstration is simple and compelling: if a user knows how to perform a task on the computer, that should be sufficient to create a program to perform the task. It should not be necessary to learn a programming language like C or BASIC. Instead, the user should be able to instruct the computer to “Watch what I do”, and the computer should create the program that corresponds to the user’s actions. This book investigates the various issues that arise in trying to make this idea practical. The first section of the book describes 18 computer implementations of Programming by Demonstration, and the second section discusses the problems and opportunities for Programming by Demonstration (PBD) in more general terms.

Chapters include:

I Systems

Pygmalion: An Executable Electronic Blackboard

Tinker: A Programming by Demonstration System for Beginning Programmers