HOME

TheInfoList



OR:

In
computer science Computer science is the study of computation, automation, and information. Computer science spans theoretical disciplines (such as algorithms, theory of computation, information theory, and automation) to practical disciplines (includin ...
, programming by example (PbE), also termed programming by demonstration or more generally as demonstrational programming, is an
end-user development End-user development (EUD) or end-user programming (EUP) refers to activities and tools that allow end-users – people who are not professional software developers – to program computers. People who are not professional developers can use EUD ...
technique for teaching a computer new behavior by demonstrating actions on concrete examples.A Machine Learning Framework for Programming by Example - Microsoft
/ref> The system records user actions and infers a generalized program that can be used on new examples. PbE is intended to be easier to do than traditional
computer programming Computer programming is the process of performing a particular computation (or more generally, accomplishing a specific computing result), usually by designing and building an executable computer program. Programming involves tasks such as anal ...
, which generally requires learning and using a
programming language A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language. The description of a programming l ...
. Many PbE systems have been developed as research prototypes, but few have found widespread real-world application. More recently, PbE has proved to be a useful paradigm for creating scientific work-flows. PbE is used in two independent clients for the BioMOBY protocol
Seahawk
an
Gbrowse moby
Also the programming by demonstration (PbD) term has been mostly adopted by robotics researchers for teaching new behaviors to the robot through a physical demonstration of the task. The usual distinction in literature between these terms is that in PbE the user gives a prototypical product of the computer execution, such as a row in the desired results of a query; while in PbD the user performs a sequence of actions that the computer must repeat, generalizing it to be used in different data sets. For final users, to automate a workflow in a complex tool (e.g.
Photoshop Adobe Photoshop is a raster graphics editor developed and published by Adobe Inc. for Windows and macOS. It was originally created in 1988 by Thomas and John Knoll. Since then, the software has become the industry standard not only in ras ...
), the most simple case of PbD is the
macro recorder A macro recorder is software that records macros for playback at a later time. The main advantage of using a macro recorder is that it allows a user to easily perform complex operations much faster and with less effort without requiring custom com ...
.


See also

* Query by Example * Automated machine learning * Example-based machine translation * Inductive programming * Lapis (text editor), which allows
simultaneous editing In human–computer interaction, simultaneous editing is an end-user development technique allowing a user to make multiple simultaneous edits of text in a multiple selection at once through direct manipulation. Multiple selections and curs ...
of similar items in multiple selections created by example * Programming by demonstration *
Test-driven development Test-driven development (TDD) is a software development process relying on software requirements being converted to test cases before software is fully developed, and tracking all software development by repeatedly testing the software against a ...


References


External links


Henry Lieberman's page on Programming by Example

Online copy of Watch What I Do, Allen Cypher's book on Programming by Demonstration

Online copy of Your Wish is My Command, Henry Lieberman's sequel to Watch What I Do

A Visual Language for Data Mapping, John Carlson's description of an Integrated Development Environment (IDE) that used Programming by Example (desktop objects) for data mapping, and an iconic language for recording operations
User interfaces Programming paradigms Machine learning {{comp-sci-stub