Building Whole Applications Using Only Programming-by- Demonstration Richard McDaniel

advertisement
Building Whole Applications
Using Only Programming-byDemonstration
Richard McDaniel
January 14, 1999
Purpose

Allow nonprogrammers to build
applications with original, dynamic
behavior
 Use
programming-by-demonstration
 No written language at all - programs
created solely through demonstration
 Implement in system called Gamut
2
State of the Art

Full-fledged languages and libraries:
 Visual

C++, Java
Simplified languages with syntaxsupporting editor:
 Authorware, Agentsheets

Tools with macro languages:
 Director
/ LINGO, Excel / Visual Basic
3
Outline
Introduction
 Interaction Techniques
 Video
 Inferencing
 User Study
 Conclusion

4
Domain

“Board Games”
 Has
background “board”
 “Pieces” above board show state
 Pieces follow rule-like behavior
 Autonomous behavior controlled by timers

Examples
 Tic-Tac-Toe,
Pacman, Reader Rabbit
5
Example: Pacman
6
Innovations in Gamut

Interaction Techniques
 Allows
developers to specify important
details

Inferencing
 Infer
conditions from sources unaffected by
the behavior
 Infer chains of expressions
7
Inferencing - Conditions

Relationship can be formed between arbitrary
objects
– Relating a toggle switch to decide which way to move
?
Run Away
8
Expression Chain
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”
GO

Red’s Turn
9
Interaction Techniques

Nudges
 Do
Something, Stop That
 Hint highlighting
Guide Objects
 Temporal Ghosts
 Cards and Decks

10
Nudges
11
Negative Examples

Standard technique for demonstrating
examples: Macro Recorder
 Requires
special controls to make a
negative example

Negative examples in Gamut provided
by Stop That
 No
special set-up required
12
Guides, Ghosts, and Hints
13
Cards and Decks
14
Video
15
Stages of Inferencing
Translation
Matching
Actions
Code
Generation
16
Translation
Read events from undo history list
 Convert events to actions
 Eliminate redundant and
inconsequential events

17
Matching Actions

Matches actions in trace to original
behavior
– Unordered
– Typically not many (three or four)

Considerations
– Degree to which actions match
– Priority of actions in original behavior
– Actions which create new objects
18
Recursive Difference
Propagates changes to descriptions
 Each description contains heuristics for
comparing values
 Builds an And/Or tree result

19
Code Generation

Resolves each value difference by
creating a new description
 Search
for previously defined description
 Use heuristics to generate description from
highlighted objects
 Assemble values into a table and use
Decision Tree learning
20
Decision Trees
Condition For Pacman Monster



Created at places where
Gamut chooses between
different behaviors
Generate attributes
using heuristics and hint
highlighting
Build table of examples
that relate behaviors to
attributes
Is Eaten
Y
N
Run
Home
Is Blue
Y
N
Run
Away
Chase
Pacman
21
User Study

Goal
 Determine
if nonprogrammers can use
Gamut
 Perform an informal study

Participants
 Nonprogrammers,

CMU community
Location
 HCI
Institute’s usability lab
22
Tasks
Safari
Pawn Race
G-bert
23
Expertise with Techniques
techniques
Do Something
Stop That
P1
P2
X
P3
P4
X
X
X
X
Highlights Ghosts
X
Guide Objects
X
X
Cards and Decks
X
X
Player Mouse
Icons
X
24
Problems

Reluctance to create guide objects
 Needed
explicit instructions in tasks
 Once told, participants would create
appropriate objects

Highlighting inappropriate objects
 Some
objects seem too obvious to
highlight, like ghosts
25
Future Work
Apply to other domains
 Feedback for just inferred relationships
 Display for language
 Higher-level inferencing

26
Conclusion
Builds entire applications without a
written programming language
 Infers a broader range of behavior than
prior systems
 Is usable by nonprogrammers

27
Download