Int. J. Man-Machine Studies (1981) 14, 237-249 The black box inside the glass box" presenting computing concepts to novices BENEDICT DU BOULAY Department of Computing Science, University of Aberdeen TIM O'SHEA Institute of Educational Technology, The Open University AND JOHN MONK Faculty of Technology, The Open University Simplicity and visibility are two important characteristics of programming languages for novices. Novices start programming with very little idea of the properties of the notional machine implied by the language they are learning. To help them learn these properties, the notional machine should be simple. That is, it should consist of a small number of parts that interact in ways that can be easily understood, possibly by analogy to other mechanisms with which the novice is more familiar. A notional machine is the idealized model of the computer implied by the constructs of the programming language. Visibility is concerned with methods for viewing selected parts and processes of this notional machine in action. We introduce the term "commentary" which is the system's dynamic characterization of the notional machine, expressed in either text or pictures on the user's terminal. We examine the simplicity and visibility of three systems, each designed to provide programming experience to different populations of novices. Introduction One of the difficulties of teaching a novice how to program is to describe, at the right level of detail, the machine he is learning to control. Novices are usually ignorant about what the machine can be instructed to do and about how it manages to do it. Basing one's teaching on the idea of a notional machine is an effective strategy for tackling this difficulty. The notional machine is an idealized, conceptual computer whose properties are implied by the constructs in the programming language employed. That is, the properties of the notional machine are language, rather than hardware, dependent. For example, a novice learning BASIC will be learning how to v/ork a BASIC machine; and this is quite different from a LISP machine (say), both in terms of the mechanisms he must learn to understand and the class of problems that can be solved easily with those mechanisms. For a strategy based on a notional machine to be effective, the notional machine must conform to two important principles. First, the notional machine employed should be conceptually simple, and second, methods should be provided for the novice to observe certain of its workings in action. For example, Mayer (1979) represents the workings of a BASIC machine in terms of a small set of "transactions", where a transaction consists of an "operation", an 237 0020-7373/81/030237 + 13502.00/0 O 1981 Academic Press Inc. (London) Limited