An example based environment for beginning programmers
Generate an AI Snapshot to get a quick, structured summary of this paper.
A concise AI-generated summary of the paper will appear here once you click Generate AI Snapshot.
TL;DR
A programming environment called Tinker is described, in which a beginning programmer presents examples to the machine, distinguishing accidental and essential aspects of the examples, and the machine formulates a procedure for handling the general case.
Abstract
Making a good programming environment for beginning programmers is an enterprise which can exploit the strong connections between machine learning and human learning. Applying what we know about teaching and learning to improve the programming environment can result in a system which allows beginners to more readily acquire programming skills. Surprisingly, a universally accepted principle of good teaching and good learning has not been taken seriously enough in designing programming environments-learning by example. A good teacher presents examples of how to solve problems, and points out what is important about the examples. The student generalizes from the examples to learn principles and techniques. This paper describes a programming environment called Tinker, in which a beginning programmer presents examples to the machine, distinguishing accidental and essential aspects of the examples. The programmer demonstrates how to handle the specific examples, and the machine formulates a procedure for handling the general case. Because people are much better at thinking about concrete examples than they are at thinking about abstractions, and because examples provide immediate feedback, Tinker is a more congenial environment for a beginner than conventional programming systems.
