An empirical investigation of the tacit plan knowledge in programming
Human factors in computer systems
SMALLTALK-80: the interactive programming environment
SMALLTALK-80: the interactive programming environment
The Psychology of How Novices Learn Computer Programming
ACM Computing Surveys (CSUR)
A user-friendly software environment for the novice programmer
Communications of the ACM
EMACS the extensible, customizable self-documenting display editor
Proceedings of the ACM SIGPLAN SIGOA symposium on Text manipulation
Two systems which produce animated representations of the execution of computer programs
SIGCSE '75 Proceedings of the fifth SIGCSE technical symposium on Computer science education
Computer
Education and Information Technologies
Hi-index | 0.00 |
This paper aims at the principled design of a computational environment; it aims at being as explicit as possible about the space of possibilities and about the assumptions made in choosing from among them in the design process. The point is to develop a more systematic, if not yet scientific, basis for the design of complex but understandable artifacts. The particular object of design here is a simple but multifunctional system for naive and inexperienced users. We begin theoretically by elaborating the notion of understandability, the key characteristic for which we must design. We present various models people can make of computational systems, each with its own learning curve, advantages, and disadvantages. Then we propose a pragmatic framework for a particular system. The framework includes the principle of naive realism: that users should be able to pretend that they see the system itself in the display. It also includes the pervasive use of a spatial metaphor whereby users' commonsense spatial knowledge is used to make the system easy to understand. The theoretical and pragmatic levels are linked, in that a number of important decisions about issues (such as reference, scoping and the meaning of evaluation) are based on the theoretical modeling considerations.