Title: Keeping Track: Coordinating Multiple Representations in Programming
1Keeping Track Coordinating Multiple
Representations in Programming
- Pablo Romero, Benedict du Boulay Rudi Lutz
- IDEAs Lab,
- Human Centred Technology Research Group,
- School of Science and Technology,
- University of Sussex.
2Background
- Computer programs can be looked at from different
perspectives - Experienced programmers mental representations
include multiple perspectives and mappings
between them - SDEs often provide multiple, multimodal, linked
and concurrent displays (code, visualisation(s),
output) - Programming requires co-ordination of these
BlueJ Java tutoring Environment Kolling
(2000) Monash University
3Some Research Questions
- Are there patterns of interaction which
characterise better debugging performance? - Representation use (attention and switches)
- Tool use
- Are graphical representations more helpful than
textual ones? - Is debugging performance associated with any
individual difference variable values?
4Contents
- Programming is a multi-representation and
multi-faceted activity - Debugging
- Experiments
- Static System
- Dynamic system
- Conclusions
5Representations - The Problem
- The original problem in real world terms
- The abstraction of the problem, in real world
terms, but omitting irrelevant detail - The realisation of the real world abstraction in
terms of programming forms e.g. general
computational methods of approach - The detailed realisation of the program in terms
of the kinds data-structures and algorithms
available to be used in the given language
6Representations - The Code
- The code itself as data-structures and
algorithms - The input/output behaviour of the code when run
- Dynamic representations of different aspects of
the code, e.g. control-flow and data-structure
representations
7Representations - The Context
- The workings of the underlying virtual machine
- The workings of the programming environment
itself - Descriptions of the code produced by
static/dynamic analysis tools
8Programming Skills Debugging
- Subdivision of the task
- Strategies for divide and conquer and for keeping
track within and between representations - Reasoning about overall strategy
- Reasoning in the problem and programming domains
- Forwards from code to behaviour, and backwards
from behaviour to code - Between representations
- Instrumenting the situation
- Tools for observing hidden events e.g. print
statements
9Dynamic SDE experiment
- 42 participants (1st 2nd year ug)
- Verbal and graphical abilities pre-tests
- 5 programs
- 1 control,
- Graphical-textual visualisations,
- Control-flow, data structure errors
- 1 error each
- Static SDE with 4 windows
- Code
- Objects
- Call sequence
- Output
- Breakpoints
10The experimental tool
- Modified version of Restricted Focus Viewer
- Presents blurred image stimuli
- User moves unblurred foveal area around screen
- Logs user actions and records audio
11Experimental data
- Debugging performance
- Accuracy
- Spotting time
- Representation use
- Fixation periods
- Switching
- Individual differences
- (Verbal protocols)
12Debugging accuracy results
13Window fixation results
14Window switching results
15Window switching results
16Breakpoint fixation results
17Critical window fixation results
18Results summary
- Visualisations helpful
- More interaction for intermediates
- Graphical condition associated with more
efficient use for best performers - Positive correlation between graphical literacy
and debugging accuracy
19Questions and Conclusions
- How far does window blurring alter programming
strategy? e.g. Peripheral vision - How far can we assume that the unblurred window
is the focus of attention? - How do we interpret time spent focusing on a
representation? Utility vs. difficulty - How do we interpret different patterns of
switches? E.g. rapidly between a pair or reps.,
leisurely between a pair of reps. - Should we expect stronger interactions between
graphical/spatial/textual abilities and
representation preferences
20AcknowledgementsRichard CoxEPSRC
www.cogs.susx.ac.uk/projects/crusade/
21The End
22BlueJ Java tutoring Environment Kolling
(2000) Monash University
23Background
- Computer programs can be looked at from different
perspectives - Experienced programmers mental representations
include multiple perspectives and mappings
between them - SDEs often provide multiple, multimodal, linked
and concurrent displays (code, visualisation(s),
output) - Programming requires co-ordination of these
24Some of the Tasks.
- Understanding the problem
- Constructing general approach
- Specifying sequences, entities and relationships
- Coding
- Debugging (at any of the above stages)
- Maintenance
25Static SDE experiment
- 48 participants (1st 2nd year UG)
- Verbal and spatial abilities pre-tests
- 4 programs to debug
- 4 errors each
- Static SDE with 3 windows
- Code
- Visualisation
- Output
26Debugging strategy results
- Qualitative analysis for 2 contrasting
participants - Experience
- Verbal ability
- Initial code browsing episode
- Two ways of detecting bugs
- by spotting something odd in code browsing
episode - by coordinating representations
27Window fixation results
- Poor performers focus on the code a lot
- Good performers also focus on objects window
28Visualisations
29Sample class of DrinkMachine program
buggy output
30Representation Issues.
- Cognitive
- Relationships between internal and external
representations - Structure of knowledge and nature of expertise
- Educational
- Evolution of knowledge and its organization from
novice to expert - Activities to support learning
- Scaffolding needed at various stages
- Aesthetic and Motivational
- Nature of the experience
- Quality of the artifacts
31Crusade overall aims
- Investigate the co-ordination of multiple
external representations in OO program
comprehension - Investigate role of perspective, modality and
individual differences in representation
co-ordination in programming. - Develop set of design principles for program
comprehension tools - Develop computerised experimental tool to study
representation co-ordination in programming