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

Slides:



Advertisements
Similar presentations
Debugging in End- User Software Engineering summarized by Andrew Ko Toward Sharing Reasoning to Improve Fault Localization in Spreadsheets Joey Lawrance,
Advertisements

Alice is a fairly new programming language developed by the Stage3 research group at Carnegie Mellon University. This program is aimed to attract students.
Novice and Expert Programmers Gild Project University of Victoria Jeff Michaud.
User Interface Design Yonsei University 2 nd Semester, 2013 Sanghyun Park.
Programming by Demonstration Kerry Chang Human-Computer Interaction Institute Carnegie Mellon University D: Human Aspects of Software Development.
Human-Computer Interaction in the New Millenium Dr. Cheryl Seals.
Part 2c: Requirements Chapter 2: How to Gather Requirements: Some Techniques to Use Chapter 3: Finding Out about the Users and the Domain Chapter 4: Finding.
Semester in review. The Final May 7, 6:30pm – 9:45 pm Closed book, ONE PAGE OF NOTES Cumulative Similar format to midterm (probably about 25% longer)
Algorithms and Problem Solving-1 Algorithms and Problem Solving.
Knowledge Acquisitioning. Definition The transfer and transformation of potential problem solving expertise from some knowledge source to a program.
PDDL: A Language with a Purpose? Lee McCluskey Department of Computing and Mathematical Sciences, The University of Huddersfield.
Report of the CMU Natural Programming Group Brad Myers, Andy Ko, Jeff Stylos, Michael Coblenz, Brian Ellis, Polo Chao Carnegie Mellon University.
What is usability? Usability (1): effective, efficient and satisfactory Usability (2): Ease of learning (faster the second time and so on) Recall (remember.
1 Institute for Software Research, International BEHOLD, WE HAVE SIGNAL.
Brad A. Myers, CMU Pilot: Exploratory Programming for Interactive Behaviors: Unleashing Interaction Designers’ Creativity Brad Myers, Stephen Oney, John.
1 Keeping Track: Coordinating Multiple Representations in Programming Pablo Romero, Benedict du Boulay & Rudi Lutz IDEAs Lab, Human Centred Technology.
1 THE USER INTERFACE Basic Principles. 2 Requirements System Design Detailed Design Implementation Installation & Testing Maintenance User Interface Model.
Polyscheme John Laird February 21, Major Observations Polyscheme is a FRAMEWORK not an architecture – Explicitly does not commit to specific primitives.
1 Towards More Natural Functional Programming Languages Brad A. Myers Human-Computer Interaction Institute School of Computer Science Carnegie Mellon University.
IEEM Human-Computer Systems Dr. Vincent Duffy - IEEM Week 9 - Approaches to Human- Computer Interaction Mar. 30, 1999
Overview of Long-Term Memory laura leventhal. Reference Chapter 14 Chapter 14.
Usability and Evaluation Dov Te’eni. Figure ‎ 7-2: Attitudes, use, performance and satisfaction AttitudesUsePerformance Satisfaction Perceived usability.
Chapter 4 Cognitive Engineering HCI: Designing Effective Organizational Information Systems Dov Te’eni Jane M. Carey.
The role of eye tracking in usability evaluation of LMS in ODL context Mr Sam Ssemugabi Ms Jabulisiwe Mabila (Professor Helene Gelderblom) College of Science.
Moving forward with Scalable Game Design. The landscape of computer science courses…  Try your vegetables (sneak it in to an existing course)  Required.
PROGRAMMING LEARNING: DIFFICULTIES AND SUPPORT TOOLS António José Mendes – University of Coimbra.
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.
 3D graphics environment  Focuses on Object Oriented Programming  Provides immediate feedback through program visualizations  Contains a drag-and-drop.
1 Making Programming Easier by Making it More Natural Brad A. Myers Human-Computer Interaction Institute School of Computer Science Carnegie Mellon University.
Chapter 5 Models and theories 1. Cognitive modeling If we can build a model of how a user works, then we can predict how s/he will interact with the interface.
Misunderstood Minds 1.
ARTIFICIAL INTELLIGENCE [INTELLIGENT AGENTS PARADIGM] Professor Janis Grundspenkis Riga Technical University Faculty of Computer Science and Information.
0AI-based Information Technology  Information Technology Based on AI ● What is Artificial Intelligence? ● Artificial Intelligence vs. Natural Intelligence.
Design Science Method By Temtim Assefa.
1 The User Lecture 5. 2 Overview of Lecture Introduce final cognitive process – learning Interaction of cognitive processes.
SCV2113 Human Computer Interaction Semester 1, 2013/2013.
Chapter 26 Inspections of the UI. Heuristic inspection Recommended before but in lieu of user observations Sort of like an expert evaluation Heuristics.
Design Rules-Part B Standards and Guidelines
1 USC INFORMATION SCIENCES INSTITUTE CALO, 8/8/03 Acquiring advice (that may use complex expressions) and action specifications Acquiring planning advice,
AVI/Psych 358/IE 340: Human Factors Interfaces and Interaction September 22, 2008.
Problem Solving Techniques. Compiler n Is a computer program whose purpose is to take a description of a desired program coded in a programming language.
Identifying special needs students  Language patterns are unique to the student and not similar to others at the same grade level  Student demonstrates.
Understanding Users Cognition & Cognitive Frameworks
Theme 2: Data & Models One of the central processes of science is the interplay between models and data Data informs model generation and selection Models.
Cognitive Dimensions  Developed by Thomas Green, Univ. of Leeds  Used to analyze the usability of information artifacts  Applied to discover useful.
OVERVIEW Framework Overview – From Programming to Music Dimensions in Detail – Visibility, Progressive Evaluation, Consistency, Viscosity, Abstraction.
Fall 2002CS/PSY Dialog Design 2 Direct Manipulation 1) Continuous visibility of the objects and actions of interest 2) Rapid, reversible, incremental.
Introduction The design, development and maintenance of concurrent software are difficult tasks. Truly effective support methodologies have yet to be developed.
Human Computer Interface INT211
CSCI 4800/6800 Human-Computer Interaction Eileen Kraemer 1/11/05.
 Introduction  Methodology  Case Study 1 : Event-B and RODN  Case Study 2 : B-Method and Atelier B  Observations and Analysis  Conclusion.
1 Reference Model for Evaluating Intelligent Tutoring Systems Esma Aimeur, Claude Frasson Laboratoire HERON Informatique et recherche opérationnelle Université.
Tools for the Tool Makers CS 376, Fall 2005 Kevin Collins.
Lecture #1: Introduction to Algorithms and Problem Solving Dr. Hmood Al-Dossari King Saud University Department of Computer Science 6 February 2012.
How Computers Solve Problems Computers also use Algorithms to solve problems, and change data into information Computers can only perform one simple step.
Copyright 2006 John Wiley & Sons, Inc Chapter 5 – Cognitive Engineering HCI: Developing Effective Organizational Information Systems Dov Te’eni Jane Carey.
Stanford hci group / cs376 u Scott Klemmer · 28 November 2006 Vision- Based Interacti on.
Software Visualization for Debugging
HI 5354 – Cognitive Engineering
Jeliot 3 Spring 2004 Andrés Moreno García Niko Myller
Andrew J. Ko & Brad A. Myers Carnegie Mellon University
به نام خدا.
Onno Kubbe Design Rule Ontology Onno Kubbe 12/2/2018.
Usability Techniques Lecture 13.
Dialog Design 2 Direct Manipulation
Chapter 26 Inspections of the user interface
Proper functionality Good human computer interface Easy to maintain
Intelligent User Interfaces
Paul Scerri and Nancy Reed
Cognitive Engineering
Presentation transcript:

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 Brad A. Myers and Andrew Ko Human-Computer Interaction Institute School of Computer Science Carnegie Mellon University

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: 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: n 8 years of work on “Natural Programming”

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

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

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 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 New Language and System: HANDS n Video Video n Video Video

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 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 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 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 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 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 Brad A. Myers and Andrew Ko Human-Computer Interaction Institute School of Computer Science Carnegie Mellon University