Stresa, Italy
September 5-7, 2001

Tutorial 2

Programming by Example: Intelligent Interfaces for Teaching New Behavior to a Machine
Henry Lieberman (Media Lab, Massachusetts Institute of Technology)

Synopsis

Programming by Example (also called Programming by Demonstration) is a powerful new technology that lets end-users create programs by recording actions in the user interface rather than by typing statements in a programming language. The user demonstrates a sequence of actions on a concrete example in a graphical user interface, and the system records the actions. Machine Learning and agent technologies are used to generalize programs that can be used in future situations that are analogous to, but not the same as, the situation on which the system was.

This tutorial will present this technology, which shows how intelligent user interfaces can dramatically improve the process of software development and make it accessible to users who do not have prior experience with programming. The ideas are, of course, best presented by example. We will survey many systems of this type, including live demonstrations. We will also do in-class design exercises, exercises to give attendees hands-on experience with the technology.

Outline:

Introduction

Design Issues in Programming by Example:

Survey of Programming by Example Systems for:

Last update: May 8, 2001