Building Whole Applications Using Only Programming-by- Demonstration Richard McDaniel January 14, 1999.

Slides:



Advertisements
Similar presentations
Middle Years Program (MYP)
Advertisements

Software Development Languages and Environments. Programming languages High level languages are problem orientated contain many English words are easier.
Multimedia Synchronization Brian P. Bailey Spring 2006.
WP 2 Usability Attributes Affected by Software Architecture Deliverable D2 – Usability Patterns Presenter: Robert Chatley - ICSTM.
An Overview of TPGES: The Framework for Teaching Jenny Ray, Facilitator Kentucky Department of Education & NKCES July 26, 2013.
Virtual Dart: An Augmented Reality Game on Mobile Device Supervisor: Professor Michael R. Lyu Prepared by: Lai Chung Sum Siu Ho Tung.
Programming by Demonstration Kerry Chang Human-Computer Interaction Institute Carnegie Mellon University D: Human Aspects of Software Development.
Chapter 6: Design of Expert Systems
System Design and Analysis
Andreas Bauer, Viorica Botea, Mark Brown, Matt Gray, Daniel Harabor & John Slaney CP 2010, 522—536 Presented by Heath Roehr.
Program Flow Charting How to tackle the beginning stage a program design.
Program Flow Charting How to tackle the beginning stage a program design.
HCI 460 Flickr.com Usability Testing Project Alcides Rodrigues Project Manager Ed Sirijintakarn Project.
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
1 Info 1409 Systems Analysis & Design Module Lecture 8 – Modelling tools and techniques HND Year /9 De Montfort University.
Characteristics of English Language Learners (ELLs) Language Similarities & differences Culture Childrearing practices & family values Parental role in.
Copyright © 2001 by Wiley. All rights reserved. Chapter 1: Introduction to Programming and Visual Basic Computer Operations What is Programming? OOED Programming.
The chapter will address the following questions:
Other Features Index and table of contents Macros and VBA.
CSC271 Database Systems Lecture # 21. Summary: Previous Lecture  Phases of database SDLC  Prototyping (optional)  Implementation  Data conversion.
Chapter 9 Interactive Multimedia Authoring with Flash - Introduction to Programming “Computers and Creativity” Richard D. Webster, COSC 109 Instructor.
Introduction to Systems Analysis and Design Trisha Cummings.
System Sequence Diagrams
{ Senate Hearing Project Kathryn Gustafson Farmington High School.
HagIT: The future is in your hands Designed and presented by: Hamza Khurshid Ahmad Ghunaim Ghassan Knayzeh.
AS Computing Software definitions.
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 1, Introduction to Software Engineering.
Learning Objectives Data and Information Six Basic Operations Computer Operations Programs and Programming What is Programming? Types of Languages Levels.
Implementation Yaodong Bi. Introduction to Implementation Purposes of Implementation – Plan the system integrations required in each iteration – Distribute.
RUP Implementation and Testing
Chapter 11: Introduction to the Visual Basic Environment Spreadsheet-Based Decision Support Systems Prof. Name Position (123) University.
Introduction By: Dr. Javad Razjouyan. Programming Languages.
 Knowledge Acquisition  Machine Learning. The transfer and transformation of potential problem solving expertise from some knowledge source to a program.
High-Level Design With Sequence Diagrams COMP314 (based on original slides by Mark Hall)
1 The Software Development Process  Systems analysis  Systems design  Implementation  Testing  Documentation  Evaluation  Maintenance.
Just as there are many human languages, there are many computer programming languages that can be used to develop software. Some are named after people,
1 3. Computing System Fundamentals 3.1 Language Translators.
1 Introduction to Information Systems Essentials for the Internetworked E-Business Enterprise C h a p t e r Computer Software 1.
COMP106 Assignment 2 Proposal 1. Interface Tasks My new interface design for the University library catalogue will incorporate all of the existing features,
A Context Model based on Ontological Languages: a Proposal for Information Visualization School of Informatics Castilla-La Mancha University Ramón Hervás.
CS Data Structures I Chapter 2 Principles of Programming & Software Engineering.
Towards a Pattern Language for User Interface Design
The course. Description Computer systems programming using the C language – And possibly a little C++ Translation of C into assembly language Introduction.
Chapter 1 Introduction. Chapter 1 - Introduction 2 The Goal of Chapter 1 Introduce different forms of language translators Give a high level overview.
Computing System Fundamentals 3.1 Language Translators.
Design Process … and some design inspiration. Course ReCap To make you notice interfaces, good and bad – You’ll never look at doors the same way again.
by Presentation Outline 1.Introduction 2.Purpose of a lesson plan 3.Four Major Elements of a lesson plan 4.Six common mistakes in writing lesson plans.
The Software Development Process
Introduction to the Personal Project Baltimore City College MYP Program.
Ch- 8. Class Diagrams Class diagrams are the most common diagram found in modeling object- oriented systems. Class diagrams are important not only for.
 Programming - the process of creating computer programs.
Learning to Program with Alice September 22, 2009.
M1G Introduction to Programming 2 3. Creating Classes: Room and Item.
NSF DUE ; Wen M. Andrews J. Sargeant Reynolds Community College Richmond, Virginia.
Dr Nick Mitchell (Room CM 224)
Interactive Programming Alice. Control of flow Control of flow -- how the sequence of actions in a program is controlled. What action happens first, what.
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
From Natural Language to LTL: Difficulties Capturing Natural Language Specification in Formal Languages for Automatic Analysis Elsa L Gunter NJIT.
Lecture #1: Introduction to Algorithms and Problem Solving Dr. Hmood Al-Dossari King Saud University Department of Computer Science 6 February 2012.
Evolution of C and C++ n C was developed by Dennis Ritchie at Bell Labs (early 1970s) as a systems programming language n C later evolved into a general-purpose.
Chapter 4 Crystal Report Presenter: PEN PHIROM (MscIT) Phone:
Requirement Elicitation Review – Class 8 Functional Requirements Nonfunctional Requirements Software Requirements document Requirements Validation and.
Some of the utilities associated with the development of programs. These program development tools allow users to write and construct programs that the.
Introducing Scratch Learning resources for the implementation of the scenario
Unified Modeling Language
System Design.
Architecture Components
Introduction to Systems Analysis and Design
Chapter 1, Introduction to Software Engineering
Review CSE116 2/21/2019 B.Ramamurthy.
Presentation transcript:

Building Whole Applications Using Only Programming-by- Demonstration Richard McDaniel January 14, 1999

2 Purpose l Allow nonprogrammers to build applications with original, dynamic behavior n Use programming-by-demonstration n No written language at all - programs created solely through demonstration n Implement in system called Gamut

3 State of the Art l Full-fledged languages and libraries: n Visual C++, Java l Simplified languages with syntax- supporting editor: n Authorware, Agentsheets l Tools with macro languages: n Director / LINGO, Excel / Visual Basic

4 Outline l Introduction l Interaction Techniques l Video l Inferencing l User Study l Conclusion

5 Domain l “Board Games” n Has background “board” n “Pieces” above board show state n Pieces follow rule-like behavior n Autonomous behavior controlled by timers l Examples n Tic-Tac-Toe, Pacman, Reader Rabbit

6 Example: Pacman

7 Innovations in Gamut l Interaction Techniques n Allows developers to specify important details l Inferencing n Infer conditions from sources unaffected by the behavior n Infer chains of expressions

8 Inferencing - Conditions l Relationship can be formed between arbitrary objects –Relating a toggle switch to decide which way to move Run Away ?

9 GO Expression Chain l Expressions form chain of relationships –In Monopoly, the position to move a piece is, “the square which is the sum of the dice’s number of squares from the original position” Red’s Turn

10 Interaction Techniques l Nudges n Do Something, Stop That n Hint highlighting l Guide Objects l Temporal Ghosts l Cards and Decks

11 Nudges

12 Negative Examples l Standard technique for demonstrating examples: Macro Recorder n Requires special controls to make a negative example l Negative examples in Gamut provided by Stop That n No special set-up required

13 Guides, Ghosts, and Hints

14 Cards and Decks

15 Video

16 Stages of Inferencing Translation Matching Actions Code Generation

17 Translation l Read events from undo history list l Convert events to actions l Eliminate redundant and inconsequential events

18 Matching Actions l Matches actions in trace to original behavior –Unordered –Typically not many (three or four) l Considerations –Degree to which actions match –Priority of actions in original behavior –Actions which create new objects

19 Recursive Difference l Propagates changes to descriptions l Each description contains heuristics for comparing values l Builds an And/Or tree result

20 Code Generation l Resolves each value difference by creating a new description n Search for previously defined description n Use heuristics to generate description from highlighted objects n Assemble values into a table and use Decision Tree learning

21 Decision Trees l Created at places where Gamut chooses between different behaviors l Generate attributes using heuristics and hint highlighting l Build table of examples that relate behaviors to attributes Is Eaten Run Home Is Blue Chase Pacman Run Away YN YN Condition For Pacman Monster

22 User Study l Goal n Determine if nonprogrammers can use Gamut n Perform an informal study l Participants n Nonprogrammers, CMU community l Location n HCI Institute’s usability lab

23 Tasks Safari G-bert Pawn Race

24 Expertise with Techniques

25 Problems l Reluctance to create guide objects n Needed explicit instructions in tasks n Once told, participants would create appropriate objects l Highlighting inappropriate objects n Some objects seem too obvious to highlight, like ghosts

26 Future Work l Apply to other domains l Feedback for just inferred relationships l Display for language l Higher-level inferencing

27 Conclusion l Builds entire applications without a written programming language l Infers a broader range of behavior than prior systems l Is usable by nonprogrammers