What is Programming by Demonstration?
In the AI field people generally know what you mean by the term "Programming by Demonstration." When you pin them down on the definition it seems to settle on: A computer learning a macro from what you are doing repetitively in a text editor.
But at a higher-level, more general level, what is it? All a computer can do is execute a program, so any machine learning is "programming" a computer. And all learning is learning from demonstrations of things. So from at least a linguistic standpoint, the phrase Programming by Demonstration seems pretty meaningless. Judging from the body of work that calls itself PBD though I would say that it has the following qualities:
1) "It" learns from a very small number of examples (like maybe 1).
2) "It" learns a procedural language from the examples.
3) "It" operates in a discrete environment without non-determinism.
Discuss amongst yourselves...