Synonyms
Definition
Programming by demonstration (PBD) describes a collection of approaches for the support of end-user programming with the goal of making the power of computers fully accessible to all users. The general objective is to teachcomputer systems new behavior by demonstrating (repetitive) actions on concrete examples. A user provides examples of how a program should operate, either by demonstrating trace steps or by showing examples of the inputs and outputs, and the system infers a generalized program that achieves those examples and can be applied to new examples. Typical areas of application are macro generation (e.g., for text editing), simple arithmetic functions in spreadsheets, simple shell programs, XML transformations, or query-replace commands, as well as the generation of helper programs for web agents, geographic information systems, or computer-aided design. The most challenging approach to PBD is to obtain generalizable examples by...
This is a preview of subscription content, log in via an institution.
Recommended Reading
Cypher, A. (1993a). Programming repetitive tasks by demonstration. In A. Cypher (Ed.), Watch what I do: Programming by demonstration (pp. 205–217). Cambridge, MA: MIT Press.
Cypher A. (Ed.) (1993b). Watch what I do: Programming by demonstration. Cambridge, MA: MIT Press.
Lieberman, H. (Ed.) (2001). Your wish is my command: Programming by example. San Francisco, CA: Morgan Kaufmann.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2011 Springer Science+Business Media, LLC
About this entry
Cite this entry
Flener, P., Schmid, U. (2011). Programming by Demonstration. In: Sammut, C., Webb, G.I. (eds) Encyclopedia of Machine Learning. Springer, Boston, MA. https://doi.org/10.1007/978-0-387-30164-8_673
Download citation
DOI: https://doi.org/10.1007/978-0-387-30164-8_673
Publisher Name: Springer, Boston, MA
Print ISBN: 978-0-387-30768-8
Online ISBN: 978-0-387-30164-8
eBook Packages: Computer ScienceReference Module Computer Science and Engineering