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 Applied science, practical discipli ...
, 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 Program, programme, programmer, or programming may refer to: Business and management * Program management, the process of managing several related projects * Time management * Program, a part of planning Arts and entertainment Audio * Progra ...
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 ana ...
, 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 ...
. 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 BioMOBY is a registry of web services used in bioinformatics. It allows interoperability between biological data hosts and analytical services by annotating services with terms taken from standard ontologies. BioMOBY is released under the Artistic ...
protocol
Seahawk
an
Gbrowse moby
Also the
programming by demonstration In computer science, programming by demonstration (PbD) is an end-user development technique for teaching a computer or a robot new behaviors by demonstrating the task to transfer directly instead of programming it through machine commands. The te ...
(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 raster ...
), 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 co ...
.


See also

*
Query by Example Query by Example (QBE) is a database query language for relational databases. It was devised by Moshé M. Zloof at IBM Research during the mid-1970s, in parallel to the development of SQL. It is the first graphical query language, using visual ...
*
Automated machine learning Automated machine learning (AutoML) is the process of automating the tasks of applying machine learning to real-world problems. AutoML potentially includes every stage from beginning with a raw dataset to building a machine learning model ready ...
*
Example-based machine translation Example-based machine translation (EBMT) is a method of machine translation often characterized by its use of a bilingual corpus with parallel texts as its main knowledge base at run-time. It is essentially a translation by analogy and can be vi ...
*
Inductive programming Inductive programming (IP) is a special area of automatic programming, covering research from artificial intelligence and programming, which addresses learning of typically declarative (logic or functional) and often recursive programs from inc ...
*
Lapis (text editor) Lapis is an experimental web browser and text editor allowing simultaneous editing of text in multiple selections. Lapis is able to infer the list of selected elements automatically from positive and negative examples given by the user, during a ...
, 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 curso ...
of similar items in
multiple selection In computing and user interface engineering, a selection is a list of items on which user operations will take place. The user typically adds items to the list manually, although the computer may create a selection automatically. Selections ar ...
s created by example *
Programming by demonstration In computer science, programming by demonstration (PbD) is an end-user development technique for teaching a computer or a robot new behaviors by demonstrating the task to transfer directly instead of programming it through machine commands. The te ...
*
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 al ...


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