Welcome to the new home page for

Programming by Example


New!

Your Wish is My Command: Giving Users the Power to Instruct Their Software

, This new book with 19 articles on Programming by Example will be published later this year by Morgan Kaufmann. Read the introduction, foreward and Table of Contents, here. Also see the March 2000 Communications of the ACM for a preview.

The full text of the book "Watch What I Do" is online!


What is Programming by Example?

Often, in computer interfaces, users wind up doing the same or similar sequences of operations over and over again in different situations. But if computers are so good at repetition, why is it that the users are the ones who keep repeating things?

Programming by example [or "programming by demonstration"*] is a technique for teaching the computer new behavior by demonstrating actions on concrete examples. The system records user actions and generalizes a program that can be used in new examples.

  • Where can I learn about Programming by Example?

  • Can I see some examples of Programming by Example?

  • Who works on Programming by Example?

  • I'm working on a Programming by Example related project, and I'd like to contribute to this page.


  • *(We decided to call this page "Programming by Example", but "Programming by Demonstration" is also used to designate this research area.


    This page is maintained by

    Henry Lieberman

    lieber@media.mit.edu