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.
Similar content being viewed by others
References
Finzer, W. and Gould, L. (1984). ‘Programming by rehearsal,’ Byte, June.
Lawler R. (1985). Computer Experience and Cognitive Development. Chichester: Ellis Horwood, Ltd./New York: John Wiley & Sons Inc.
Lieberman, H. (1982). ‘Constructing graphical user interfaces by example,’ In Graphics Interface Conference. Toronto, Canada.
Lieberman H. (1982). ‘Designing interactive systems from the user's viewpoint,’ In P. Degano and E. Sandewall, (Eds.), Integrated Interactive Computer Systems. Amsterdam: North Holland.
Lieberman, H. (1984a). ‘Video games by example,’ SigGraph Video Review (videotape) 12(1).
Lieberman, H. (1984b). ‘Seeing what your programs are doing,’ International Journal of Man-Machine Studies 21(4).
Lotus Documentation Dept. (1983). Lotus 1-2-3 Manual, Lotus Development Corp.
Papert S. (1981). Mindstorms. New York: Basic Books.
Stallman, R. M. (1981). ‘Emacs: the extensible, customizable, self-documenting display text editor,’ In ACM SigOA Conference on Text Manipulation.
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Lieberman, H. An example based environment for beginning programmers. Instr Sci 14, 277–292 (1986). https://doi.org/10.1007/BF00051824
Issue Date:
DOI: https://doi.org/10.1007/BF00051824