Download presentation
Presentation is loading. Please wait.
1
1 Studying Development and Debugging To Help Create a Better Programming Environment Brad A. Myers and Andrew Ko Human-Computer Interaction Institute School of Computer Science Carnegie Mellon University http://www.cs.cmu.edu/~bambam@cs.cmu.edu Brad A. Myers and Andrew Ko Human-Computer Interaction Institute School of Computer Science Carnegie Mellon University http://www.cs.cmu.edu/~bambam@cs.cmu.edu
2
2 Presenters: Brad A. Myers n 18 years of work on Programming by Demonstration n Peridot, Lapidary, Tourmaline, Gold, Marquise, Gamut, Turquoise, Topaz n See: http://www.cs.cmu.edu/~bam/acronyms.html n 8 years of work on “Natural Programming” n 18 years of work on Programming by Demonstration n Peridot, Lapidary, Tourmaline, Gold, Marquise, Gamut, Turquoise, Topaz n See: http://www.cs.cmu.edu/~bam/acronyms.html n 8 years of work on “Natural Programming”
3
3 Presenters: Andrew J. Ko n Worked with Forms/3 at Oregon State as an undergraduate under Margaret Burnett n Now working on the Natural Programming Project under Brad Myers n Currently n Studying programming errors n Designing a programming environment that prevents and helps debug errors common in Alice, a 3D end-user programming system n http://www.cs.cmu.edu/~ajko n Worked with Forms/3 at Oregon State as an undergraduate under Margaret Burnett n Now working on the Natural Programming Project under Brad Myers n Currently n Studying programming errors n Designing a programming environment that prevents and helps debug errors common in Alice, a 3D end-user programming system n http://www.cs.cmu.edu/~ajko
4
4 Natural Programming Project n Make programming easier and more correct by making it more natural n Closer to the way that people think about algorithms and solving their tasks n Methodology n Perform studies to inform design n Provide data about what people do and think n Guide the designs from the data n Evaluate results n Make programming easier and more correct by making it more natural n Closer to the way that people think about algorithms and solving their tasks n Methodology n Perform studies to inform design n Provide data about what people do and think n Guide the designs from the data n Evaluate results
5
5 Why Would Being Natural be Good? n Language should be close to user’s plan n “Programming is the process of transforming a mental plan into one that is compatible with the computer.” — Jean-Michel Hoc n Directness (as in “Direct Manipulation”) n “Distance between one's goals and the actions required by the system to achieve those goals.” — Hutchins, Hollan and Norman n Closeness of mapping n "The closer the programming world is to the problem world, the easier the problem-solving ought to be.… Conventional textual languages are a long way from that goal." — Green and Petre n Language should be close to user’s plan n “Programming is the process of transforming a mental plan into one that is compatible with the computer.” — Jean-Michel Hoc n Directness (as in “Direct Manipulation”) n “Distance between one's goals and the actions required by the system to achieve those goals.” — Hutchins, Hollan and Norman n Closeness of mapping n "The closer the programming world is to the problem world, the easier the problem-solving ought to be.… Conventional textual languages are a long way from that goal." — Green and Petre
6
Gentle Slope Systems Difficulty of Use Goal Programming in C++ MFC Program Complexity and Sophistication C Programming LabView Stagecast Creator Visual Basic Basic C Programming
7
7 Earlier Natural Programming Studies n PhD work of John Pane n How people naturally express programming concepts and algorithms 1) Nine scenes from PacMan 2) Transforming and calculating data in a spreadsheet n Specific issues of language design 3) Selecting specific objects from a group (“and”, “or”, “not”) n Lots of interesting results n Led to the design of HANDS n PhD work of John Pane n How people naturally express programming concepts and algorithms 1) Nine scenes from PacMan 2) Transforming and calculating data in a spreadsheet n Specific issues of language design 3) Selecting specific objects from a group (“and”, “or”, “not”) n Lots of interesting results n Led to the design of HANDS
8
8 New Language and System: HANDS n Video Video n Video Video
9
9 New Work: Improving the Environment n Use same methods to improve creating and debugging programs n Working with Randy Pausch’s ALICE environment n PhD work of Andrew Ko n Use same methods to improve creating and debugging programs n Working with Randy Pausch’s ALICE environment n PhD work of Andrew Ko
10
10 Guidelines for Designing End-User Programming Environments n HCI design heuristics provide general guidelines n But EUD design tends to be task-, domain-, and even highly user-specific n Green’s Cognitive Dimensions provides very useful design vocabulary for notations n What about the rest of the programming environment? n HCI design heuristics provide general guidelines n But EUD design tends to be task-, domain-, and even highly user-specific n Green’s Cognitive Dimensions provides very useful design vocabulary for notations n What about the rest of the programming environment?
11
11 What is “the rest of the programming environment?” n In our recent study of Alice, 50% of programmers’ time was spent debugging n Errors were not difficult to debug, but took time and were frustrating n This is despite the fact that: n The task was relatively simple n Alice prevents syntax, type, and reference errors n How much time is spent debugging in other end- user programming systems? n In our recent study of Alice, 50% of programmers’ time was spent debugging n Errors were not difficult to debug, but took time and were frustrating n This is despite the fact that: n The task was relatively simple n Alice prevents syntax, type, and reference errors n How much time is spent debugging in other end- user programming systems?
12
12 A Model of Programming Errors n In order to design environments to prevent errors, we need to know their causes n Our recently developed model of errors blames: n Knowledge problems n Lack of knowledge, incorrect recall, forgetting n Attentional problems n Fixation, working memory strain n Strategic problems n Unforeseen interactions, goal conflicts, bounded rationality n …and suggests many categories of programming actions and artifacts n In order to design environments to prevent errors, we need to know their causes n Our recently developed model of errors blames: n Knowledge problems n Lack of knowledge, incorrect recall, forgetting n Attentional problems n Fixation, working memory strain n Strategic problems n Unforeseen interactions, goal conflicts, bounded rationality n …and suggests many categories of programming actions and artifacts
14
14 Using the Model for Design n Used the model to analyze errors observed in Alice n User studies of novices and experts with Alice n Observed problems with modification, concurrency, etc. n Model ties errors to causes n Data guides future designs n New tools and techniques to prevent errors n E.g., Smart cut-and-paste n New tools to help people debug sources of errors n E.g., Time-line visualization n Used the model to analyze errors observed in Alice n User studies of novices and experts with Alice n Observed problems with modification, concurrency, etc. n Model ties errors to causes n Data guides future designs n New tools and techniques to prevent errors n E.g., Smart cut-and-paste n New tools to help people debug sources of errors n E.g., Time-line visualization
15
15 Studying Development and Debugging To Help Create a Better Programming Environment Brad A. Myers and Andrew Ko Human-Computer Interaction Institute School of Computer Science Carnegie Mellon University http://www.cs.cmu.edu/~bambam@cs.cmu.edu Brad A. Myers and Andrew Ko Human-Computer Interaction Institute School of Computer Science Carnegie Mellon University http://www.cs.cmu.edu/~bambam@cs.cmu.edu
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.