300 likes | 398 Views
Keeping 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. Background.
E N D
Keeping 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.
Background • 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
Some 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?
Contents • Programming is a multi-representation and multi-faceted activity • Debugging • Experiments • Static System • “Dynamic” system • Conclusions
Representations - 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 computationalmethods 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;
Representations - 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;
Representations - 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;
Programming 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
Dynamic 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
The 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
Experimental data • Debugging performance • Accuracy • Spotting time • Representation use • Fixation periods • Switching • Individual differences • (Verbal protocols)
Results 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
Questions 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
AcknowledgementsRichard CoxEPSRCwww.cogs.susx.ac.uk/projects/crusade/
BlueJ Java tutoring Environment Kolling (2000) Monash University
Background • 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
Some of the Tasks…. • Understanding the problem • Constructing general approach • Specifying sequences, entities and relationships • Coding • Debugging (at any of the above stages) • Maintenance
Static 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
Debugging 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
Window fixation results • Poor performers focus on the code a lot • Good performers also focus on objects window
Representation 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
Crusade 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