1 Keeping Track: Coordinating Multiple Representations in Programming Pablo Romero, Benedict du Boulay & Rudi Lutz IDEAs Lab, Human Centred Technology.

Slides:



Advertisements
Similar presentations
IT Technical Support South Nottingham College. Aims Knowledge of the Registry Discuss the tools available to support a technician Gain an understanding.
Advertisements

Fostering Learners’ Collaborative Problem Solving with RiverWeb Roger Azevedo University of Maryland Mary Ellen Verona Maryland Virtual High School Jennifer.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12Slide 1 Software Design l Objectives To explain how a software design may be represented.
 Retrospective view of Empirical and Experimental Research in Translation  In search of an efficient method to observe students´processes: Standing over.
Chapter 1 Object Oriented Analysis and Design. UML, Patterns, and Object-Oriented Analysis and Design  The essential skills for the creation of well-designed,
© 2005 Prentice Hall6-1 Stumpf and Teague Object-Oriented Systems Analysis and Design with UML.
Robert J. Mislevy & Min Liu University of Maryland Geneva Haertel SRI International Robert J. Mislevy & Min Liu University of Maryland Geneva Haertel SRI.
Supporting Design Managing complexity of designing Expressing ideas Testing ideas Quality assurance.
About metaphorical expressions The essence of a metaphor is understanding and experiencing one kind of things in terms of another Metaphor is pervasive.
Psychological Aspects Presented by Hanish Patel. Overview  HCI (Human Computer Interaction)  Overview of HCI  Human Use of Computer Systems  Science.
1 Objectives To introduces the concept of software Design. To introduce the concept of Object- Oriented Design (OOD). To Define various aspects about object.
Program Flow Charting How to tackle the beginning stage a program design.
Program Flow Charting How to tackle the beginning stage a program design.
The C++ Tracing Tutor: Visualizing Computer Program Behavior for Beginning Programming Courses Rika Yoshii Alastair Milne Computer Science Department California.
Translating between multiple representations: discussion EARLI Symposium Padua, August, 2003 Richard Cox HCT Group, University of Sussex
Copyright 2001 by Allyn and Bacon Social Cognitive and Constructivist Views of Learning: Chapter 9.
An Introduction to Software Visualization Dr. Jonathan I. Maletic Software DevelopMent Laboratory Department of Computer Science Kent State University.
COBOL for the 21 st Century Stern, Stern, Ley Chapter 1 INTRODUCTION TO STRUCTURED PROGRAM DESIGN IN COBOL.
WEL COME PRAVEEN M JIGAJINNI PGT (Computer Science) MCA, MSc[IT], MTech[IT],MPhil (Comp.Sci), PGDCA, ADCA, Dc. Sc. & Engg.
Evaluating the usability of the BlueJ environment. Marilyn Barallon Supervisor: Dr.Linda McIver.
Visualization. CS351 - Software Engineering (AY2004)2 Program visualization Debugging programs without the aid of support tools can be extremely difficult.
Sharif University of Technology Session # 7.  Contents  Systems Analysis and Design  Planning the approach  Asking questions and collecting data 
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
Methods of teaching programming at high schools and universities Vera Dron,
CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u.
Introduction to High-Level Language Programming
1. Human – the end-user of a program – the others in the organization Computer – the machine the program runs on – often split between clients & servers.
Chapter 7 Requirement Modeling : Flow, Behaviour, Patterns And WebApps.
Learning & Teaching with Technology Claire O’Malley School of Psychology.
Reasoning Abilities Slide #1 김 민 경 Reasoning Abilities David F. Lohman Psychological & Quantitative Foundations College of Education University.
Structured COBOL Programming, Stern & Stern, 9th edition
1 CSE 2102 CSE 2102 CSE 2102: Introduction to Software Engineering Ch9: Software Engineering Tools and Environments.
Yvonne M. Hansen Visualization for Thinking, Planning, and Problem Solving Simple, graphic shapes, the building blocks of a graphical language, play an.
Cognitive Task Analysis and its Application to Restoring System Security by Robin Podmore, IncSys Frank Greitzer, PNNL.
“Enhancing Reuse with Information Hiding” ITT Proceedings of the Workshop on Reusability in Programming, 1983 Reprinted in Software Reusability, Volume.
SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY User Studies Basic principles, methods, and examples Sari.
Sharad Oberoi and Susan Finger Carnegie Mellon University DesignWebs: Towards the Creation of an Interactive Navigational Tool to assist and support Engineering.
Visualizing Information in Global Networks in Real Time Design, Implementation, Usability Study.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 7: Focusing on Users and Their Tasks.
A computer environment for beginners’ learning of sorting algorithms: Design and pilot evaluation Kordaki, M., Miatidis, M. & Kapsampelis, G. (2008). A.
Major objective of this course is: Design and analysis of modern algorithms Different variants Accuracy Efficiency Comparing efficiencies Motivation thinking.
1 Introduction to Software Engineering Lecture 1.
IXA 1234 : C++ PROGRAMMING CHAPTER 1. PROGRAMMING LANGUAGE Programming language is a computer program that can solve certain problem / task Keyword: Computer.
An investigation of college students’ covariational reasoning Kloku (2007) Florida State University Marggie D. GonzalezOctober 17, 2011.
UML as a Specification Language for Embedded Systems. By, Mir Ahmed Ali, Asst. Professor, ECM department, SNIST. By, Prof. Narsiah sir, Director of School.
OBJECT ORIENTED AND FUNCTION ORIENTED DESIGN 1 Chapter 6.
Learning from Model-Produced Graphs in a Climate Change Science Class Catherine Gautier Geography Department UC Santa Barbara.
Window-based Interaction Styles Dr.s Barnes and Leventhal.
Lecture 9-1 : Intro. to UML (Unified Modeling Language)
1 ISE 412 ATTENTION!!! From page 147 of Wickens et al. ATTENTION RESOURCES.
Evaluation Methods - Summary. How to chose a method? Stage of study – formative, iterative, summative Pros & cons Metrics – depends on what you want to.
 Programming - the process of creating computer programs.
Winter 2011SEG Chapter 11 Chapter 1 (Part 1) Review from previous courses Subject 1: The Software Development Process.
CSI 1340 Introduction to Computer Science II Chapter 1 Software Engineering Principles.
Artificial Intelligence: Research and Collaborative Possibilities a presentation by: Dr. Ernest L. McDuffie, Assistant Professor Department of Computer.
Chapter – 8 Software Tools.
1 Unified Modeling Language Michael K. Wildes University of California, Riverside – Extension Program Presentation 2.
Constructivist Approaches for Teaching Computer Programming
Investigate Plan Design Create Evaluate (Test it to objective evaluation at each stage of the design cycle) state – describe - explain the problem some.
Regulative support for collaborative scientific inquiry learning Presenter: Hou, Ming-Hsien Professor: Ming-Puu Chen Date: August 19, 2008 Manlove, S.,
Program Comprehension Program Understanding Behavior During Debugging Of Large Scale Software Anneliese von Mayrhauser (Andrews) and A. Marie Vans Rizal.
Chapter 6 : User interface design
Unified Modeling Language
Software Design and Development
Program comprehension during Software maintenance and evolution Armeliese von Mayrhauser , A. Marie Vans Colorado State University Summary By- Fardina.
Chapter 7: Memory and Training
Objective of This Course
Data Information Knowledge and Processing
User interface design.
Lecture 1 Runtime environments.
Presentation transcript:

1 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.

2 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

3 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 ?

4 Contents Programming is a multi-representation and multi-faceted activity Debugging Experiments –Static System –“Dynamic” system Conclusions

5 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 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;

6 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;

7 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;

8 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

9 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

10 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

11 Experimental data Debugging performance –Accuracy –Spotting time Representation use –Fixation periods –Switching Individual differences (Verbal protocols)

12 Debugging accuracy results

13 Window fixation results

14 Window switching results

15 Window switching results

16 Breakpoint fixation results

17 Critical window fixation results

18 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

19 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

20 Acknowledgements Richard Cox EPSRC

21 The End

22 BlueJ Java tutoring Environment Kolling (2000) Monash University

23 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

24 Some of the Tasks…. Understanding the problem Constructing general approach Specifying sequences, entities and relationships Coding Debugging (at any of the above stages) Maintenance

25 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

26 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

27 Window fixation results Poor performers focus on the code a lot Good performers also focus on objects window

28 Visualisations

29 Sample class of ‘DrinkMachine’ program buggy output

30 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

31 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