Programming by Demonstration , Allen Cypher, ed., MIT Press, 1993.
Programming is the art of teaching procedures to a computer.
Making a good programming environment for beginning programmers is an enterprise that can exploit strong connections between principles of human learning and machine learning . My experience as a teacher led me to the conviction that working with concrete examples is the best approach both for a teacher to explain ideas to a student, and for a student to learn. This paper presents Tinker , a system that permits a beginning programmer to write Lisp programs by providing concrete examples of input data, and typing Lisp expressions or providing mouse input that directs the system how to handle each example. The user explicitly indicates which objects serve as examples, and may present multiple examples that serve to illustrate conditional procedures. The machine records the steps of the computation, and formulates a program to handle the general case.