Abstract
The presentation of a new concept lying totally outside of the student's prior experience constitutes a major challenge. Somehow no amount of explanation, handwaving, whatever, can take the place of direct personal experience. Many instructors just ignore the problem and go right on, leaving the students oto pick up an understanding piecemeal on their own. A more conscientious instructor will attempt to provide the students with some kind o personal exposure to the new concept. In physics, for instance, the lecturer always has a table full of demonstration apparatus at hand. In sum, a picture can be worth a thousand words, and the real things is ever better. Imagine how you'd explain about theatrical drama to someone who'd never seem a play! Computer Science contains a large number of new concepts will outside most students' prior experience. An important characteristic of many of these concepts is their dynamic nature: the execution of a program, assignment of a value to a variable, change of machine state following an interrupt, convergence on a root. By using the computer itself as my demonstration apparatus, I propose to give the students personal exposure to the concepts of action. With a low-cost interactive CRT terminal and video projector, I can show various aspects of a program executing, for instance, at comparatively low investment in machine and people time. Personal exposure seems to be the basic key to deep understanding. To teach, we use all sorts of other techniques to reach the students: -we describe endlessly, aided by blackboard, sometimes by pictures; -we appeal to similar ideas in other areas, constructing analogies to experiences we hope the student has actually had (and hoping the analogies won't be too misleading...) -we demonstrate the new concepts (e.g. a film class is shown movies, a physics class is shown demonstration apparatus); -we provide actual contact with the new concept, through homework, laboratory and field trips. Computer Science, like other subjects, is taught using these traditional methods, with reasonable success. The situation is far from optimal, however description is often awkward and incomplete due to the dynamic nature of the concepts involved, and the static character of the blackboard. Also, the strict mechanistic nature of the subject demands a level of precision and accuracy not easily attained by a lecturer an appeal to similar ideas is often very difficult, since computer science is quite different from most of the student's prior experience. The ubiquitous few examples which are workable (recipes, changing a tire) merely attest to the paucity of alternatives. -demonstration of the concept is the subject of this paper. Direct demonstration is, of course, infeasible, since the actual information resides in electrical signals of extremely transient nature; not even access to an actual machine and its lights will be of much help achieving actual contact is even a bit hard. The student's most direct contact is through the programs he writes and runs; but printout supplies him mainly with the results if having run a program, from which he must deduce what actually transpired. (c. f. Dijkstra. 1972) , p.16).