Pict: An Interactive Graphical Programming Environment

Mday finding that they are able to successfully use computers, especially personal and home computers, thanks to an abundance of well-designed "canned" software. Those who wish to progress beyond the canned software stage, however, discover that programming is painstaking work. Worse yet, learning to program is, for many, even more forbidding ; indeed, the attempt is often eventually abandoned in frustration. Frustration comes largely from inadequacies in common procedural, text-based programming languages. As Smith has pointed out, "The representation of a problem in most programming languages bears little resemblance to the thought processes that occurred in its solution."' Why do programmers-especially novices-often encounter difficulties when they attempt to transform the human mind's multidimensional, visual, and often dynamic conception of a prob-lem's solution into the one-dimensional , textual, and static representation required by traditional programming languages? The groups of italicized antonyms in the preceding sentence may give one hint. Another reason may be that the type and variable names we use in our programs , such as "x" or "root," are signs that bear no resemblance to their values (an integer, say, or a pointer to a binary tree of records of some type). Yet another explanation may be that the von Neumann paradigm of procedural programming is inherently unsuitable; some other method of programming, perhaps more functional, might prove easier to assimilate. Because of this general dissatisfaction , repeated attempts have been made to design "new, im-proved" programming languages. We believe that a radical departure from current programming styles is necessary if programming is to be made more accessible. Attempts to evolve new varieties of conventional languages will not suffice. With the cost of graphics displays decreasing and availability, most notably as integral components of personal computers, increasing-we believe it is time to take advantage of the human brain's ability to process pictures more efficiently than text. As Malone said, "Perhaps the best use of sound and graphics ... is to represent and convey information more effectively than [is possible] with words or numbers."2 In this article we describe our work on developing a programming methodology called Pict that permits humans to use their native intelligence in programming. Our results represent but an imperfect collection of beginnings in a field now in its infancy. Still, our work straddles the interface of several established disciplines , the primary ones being (1) the design and implementation of programming systems (including languages) and …

[1]  Steven P. Reiss,et al.  PECAN: Program Development Systems that Support Multiple Views , 1984, IEEE Transactions on Software Engineering.

[2]  Henry Lieberman,et al.  A session with Tinker: Interleaving program testing with program design , 1980, LISP Conference.

[3]  P. R. Innocent,et al.  Towards self-adaptive interface systems , 1982 .

[4]  Herbert E. Dunsmore,et al.  On the relative comprehensibility of various control structures by novice Fortran programmers , 1982 .

[5]  Kenneth N. Lodding,et al.  Iconic Interfacing , 1983, IEEE Computer Graphics and Applications.

[6]  Fred Lakin,et al.  A structure from manipulation for text-graphic objects , 1980, SIGGRAPH '80.

[7]  Ivan E. Sutherland,et al.  Sketchpad a Man-Machine Graphical Communication System , 1899, Outstanding Dissertations in the Computer Sciences.

[8]  Alan Borning,et al.  The Programming Language Aspects of ThingLab, a Constraint-Oriented Simulation Laboratory , 1981, TOPL.

[9]  Robert Sedgewick,et al.  SYSTEM FOR ALGORITHM ANIMATION. , 1984 .

[10]  Warren Teitelman,et al.  A Display Oriented Programmer's Assistant , 1977, IJCAI.

[11]  M. Fitter Towards more “natural” interactive systems , 1979 .

[12]  Moshé M. Zloof A Language for Office and Business Automation , 1979, Data Base Design Techniques II.

[13]  Ruven E. Brooks,et al.  Studying programmer behavior experimentally: the problems of proper methodology , 1980, CACM.

[14]  B. Shneiderman,et al.  Flowchart techniques for structured programming , 1973, SIGP.

[15]  Richard E. Mayer,et al.  The Psychology of How Novices Learn Computer Programming , 1981, CSUR.

[16]  Andrew Arblaster Human factors in the design and use of computing languages , 1982 .

[17]  J. E. Sammet,et al.  Software psychology: human factors in computer and information systems , 1983, SGCH.

[18]  B. E. J. Clark,et al.  A Graphically Interacting Program Monitor , 1983, Comput. J..

[19]  Robert Sedgewick,et al.  A system for algorithm animation , 1984, SIGGRAPH.

[20]  Christopher F. Herot,et al.  Program Visualization: Graphics Support for Software Development , 1983, 20th Design Automation Conference Proceedings.

[21]  Daniel Thalmann,et al.  The Use of High-Level 3-D Graphical Types in the Mira Animation System , 1983, IEEE Computer Graphics and Applications.

[22]  Brad A. Myers INCENSE: A system for displaying data structures , 1983, SIGGRAPH.

[23]  Mayer D. Schwartz,et al.  Viewing a programming environment as a single tool , 1984 .

[24]  Stephen R. Schach,et al.  A Very High-Level Interactive Graphical Trace for the Pascal Heap , 1983, IEEE Transactions on Software Engineering.

[25]  George McCleary,et al.  An Effective Graphic "Vocabulary" , 1983, IEEE Computer Graphics and Applications.

[26]  T. O. Ellis,et al.  THE GRAIL PROJECT: AN EXPERIMENT IN MAN-MACHINE COMMUNICATIONS , 1969 .

[27]  G. A. Miller THE PSYCHOLOGICAL REVIEW THE MAGICAL NUMBER SEVEN, PLUS OR MINUS TWO: SOME LIMITS ON OUR CAPACITY FOR PROCESSING INFORMATION 1 , 1956 .

[28]  Gael A. Curry,et al.  Programming by abstract demonstration. , 1978 .

[29]  Farhad Mavaddat Another experiment with teaching of programming languages , 1981, SGCS.

[30]  M. C. Pong,et al.  PIGS—A system for programming with interactive graphical support , 1983, Softw. Pract. Exp..

[31]  Lawrence H. Miller A study in man-machine interaction , 1977, AFIPS '77.

[32]  Robert W. Swezey,et al.  Human Factors Guidelines in Computer Graphics: A Case Study , 1983, Int. J. Man Mach. Stud..

[33]  David J. Gilmore,et al.  An Investigation of the Utility of Flowcharts During Computer Program Debugging , 1984, Int. J. Man Mach. Stud..