This paper reports two studies justifying the use of diagrams and VPLs in software design, which aimed to elicit statements about mental imagery from expert programmers and thereby refine the claim that ''expert programmers use mental imagery in order to specify, predict and simulate program behaviour.''
``Despite considerable individual variation, multiple participants concurred in describing imagery that was stoppably dynamic, allowed local attention, had adjustable granularity of abstraction, was provisional and variable, had many dimensions and included information in multiple sensory modes - multiple images in addition to accessible labels.''
Study one involved detailed interviews with 10 expert programmers. Experts (of various languages) were asked to design (not implement) one of four problems as code. They were questioned during and after their task about their mental images.
``The first study used a combination of observation and interview techniques which had, in previous studies, proven effective at eliciting rich qualitative data of this ilk. It adopted a loose protocol of questions which appeared in pilot interviews to elicit descriptions that both surprised and satisfied those questioned. The ability to engender surprise and satisfaction have, in previous studies, been effective criteria for elicitation questions. When a subject is surprised during an interview, it suggests a divergence from routine rehearsed response, whether in the form of a new expression, a new perspective, or a re-consideration''
Study two was a questionnaire study of 200 users of a commercial VPL. These questionnaires were coded with specific interest paid to statements about mental representations. The majority of participants did not provide detailed information about mental representations.
The paper lists the types of imagery described in the programming tasks (and in the questionnaires, although this data was less interesting). This will be discussed in more depth seperately, but for the moment the list is as follows:
Imagery reports during programming tasks:
A) Dancing symbols
B) Mental description/discussion
C) Auditory imagery
D) Visual imagery
E) Machines in their minds
i. Abstract machines
ii. Pictures of implementations
iii. Mechanical analogy
F) Surfaces
G) Landscapes
H) Presences
Common Elements in Concurrent Reports:
1. Stoppably dynamic
2. Focal attention
3. Adjustable granularity of abstraction
4. Provisional, variable
5. Many dimensions
6. Multiplicity
7. `The name business'
It is also interesting to note that the imagery found related to solution construction and not debugging as some of the experts made comments which suggested that a different imagery would be used for this process.
Comments