Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 Studying Development and Debugging To Help Create a Better Programming Environment Brad A. Myers and Andrew Ko Human-Computer Interaction Institute School.

Similar presentations


Presentation on theme: "1 Studying Development and Debugging To Help Create a Better Programming Environment Brad A. Myers and Andrew Ko Human-Computer Interaction Institute School."— Presentation transcript:

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

13

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


Download ppt "1 Studying Development and Debugging To Help Create a Better Programming Environment Brad A. Myers and Andrew Ko Human-Computer Interaction Institute School."

Similar presentations


Ads by Google