Programming by Example

Slides:



Advertisements
Similar presentations
Henry Lieberman MIT Media Lab AI in End-User Software Engineering Henry Lieberman, MIT (presenting) Raphael Hoffmann, Michael Toomim, U. Washington, Seattle.
Advertisements

Obligatory cuteness. Guidelines for Using Multiple Views in Information Visualization ● A guideline paper – does not introduce any new techniques, but.
Design of Experiments Lecture I
W2D1 Fluency with IT = to learn / figure out quickly to use the computer for whatever purpose skills (lab) concepts (lectures)
OFFICE CHOUM AHMED Microsoft Excel Lesson 04.
Analyzing Bivariate Data With Fathom * CFU Using technology with a set of contextual linear data to examine the line of best fit; determine and.
© by Pearson Education, Inc. All Rights Reserved.
Investigating JAVA Classes with Formal Concept Analysis Uri Dekel Based on M.Sc. work at the Israeli Institute of Technology. To appear:
1 Tutorial T4 - Programming by Example Techniques Brad A. Myers Brad A. Myers Human Computer Interaction Institute School of Computer Science Carnegie.
Visual Basic Project 1 IDS 306 Spring 1999 V. Murphy.
1 Lecture 13: Demonstrational Tools Brad Myers Advanced User Interface Software.
Automating with Macros Today we are going to at how to automate frequently used processes with macros: What is a macro? What do we want to automate? How.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 16 Slide 1 User interface design.
Programming by Example using Least General Generalizations Mohammad Raza, Sumit Gulwani & Natasa Milic-Frayling Microsoft Research.
ACCB 133 Information Technology and Accounting Applications Lecture 6: Application Software.
Write today’s date and title in the front of your book. Underline it.
What we know…. Use Lisa’s call in number 3 1 Instructional Multiplier Customized and Adaptive Scaffolded Support Active Engagement Accelerated Learning.
SPSS Presented by Chabalala Chabalala Lebohang Kompi Balone Ndaba.
© 2007 Tom Beckman Features:  Are autonomous software entities that act as a user’s assistant to perform discrete tasks, simplifying or completely automating.
General Database Statistics Using Maximum Entropy Raghav Kaushik 1, Christopher Ré 2, and Dan Suciu 3 1 Microsoft Research 2 University of Wisconsin--Madison.
McGraw-Hill/Irwin The Interactive Computing Series © 2002 The McGraw-Hill Companies, Inc. All rights reserved. Microsoft Excel 2002 Lesson 1 Introduction.
Copyright © 2010 Wolters Kluwer Health | Lippincott Williams & Wilkins Introduction to Windows Chapter 2.
Laboratory for Computational Intelligence, University of British Columbia Belief & Decision Networks Stochastic Local Search Neural NetworksGraph Searching.
ACS 367 Interface Design History. Brief History n Early research –SRI in 1960s »The very system that I am using to access this information has its intellectual.
Lecture 15: Demonstrational Tools Brad Myers Advanced User Interface Software 1.
2-1 A Federation of Information Systems. 2-2 Information System Applications.
SPSS- Tutorial The following power-point slides show you how to use some of the features in SPSS. A survey of 20 randomly selected companies asked them.
Excel Macros 1 Macros or, How to Automate Part of Your Spreadsheet or Worksheet.
Chapter 1 Getting Started with Adobe Photoshop CS4.
Getting Control GIS Projects Can “Spiral Out of Control” –Can’t find the data –Analysis can’t be reproduced –Takes too long to complete –Maps don’t match.
Chapter 4 Linear Programming Models. Introduction All of the models in this chapter are linear models Which means: Target cell is ultimately (possibly.
1 Lecture 6: Guest Lecture: David Canfield Smith (by Skype) David Canfield Smith Brad Myers A/05-499A: Interaction Techniques Spring, 2014 © 2014.
University of Colorado at Denver and Health Sciences Center Department of Preventive Medicine and Biometrics Contact:
Scripting Languages And Environments Paul Fitzpatrick for Abdur Rahman.
Integrating Algorithms and Coding into the Mathematics Classroom
Tulane University School of Public Health and Tropical Medicine
Information System Applications
CIS 375 Bruce R. Maxim UM-Dearborn
Scientific Method.
Dive Into® Visual Basic 2010 Express
Dispatcher Phoenix Is…
Practice As part of a program to reducing smoking, a national organization ran an advertising campaign to convince people to quit or reduce their smoking.
Inquiry learning and SimQuest
Chapter 03: Basic Application Software
Machine Learning overview Chapter 18, 21
An Introduction to Computers and Visual Basic
Chapter Lessons Start Adobe Photoshop CS
CHAPTER 2 Computer Software.
Computer Aided Graphics
An Introduction to Computers and Visual Basic
Lesson 1: Buttons and Events – 12/18
Software engineering USER INTERFACE DESIGN.
Lecture 6 Inductive Synthesis
Social Media And Global Computing Introduction to Visual Studio
Lecture 12: Data Wrangling
Welcome to E-Prime E-Prime refers to the Experimenter’s Prime (best) development studio for the creation of computerized behavioral research. E-Prime is.
Your Notes This presentation AI Home Page
CSc4730/6730 Scientific Visualization
SYSTEMS ANALYSIS & DESIGN
Analysis models and design models
Dr. Fowler  CCM Functions.
Google Drive/Google ClassroomGetting Started with Google!
An Introduction to Computers and Visual Basic
Spreadsheets, Modelling & Databases
Scientific Method Lab Mapping.
Lab 2: Information Retrieval
Lab 8: GUI testing Software Testing LTAT
Implementation of Learning Systems
Brad Myers : Interaction Techniques Spring, 2019
Visual Basic for Applications: Introduction
Presentation transcript:

Programming by Example Henry Lieberman Software Agents Group Media Laboratory Massachusetts Institute of Technology

Programming by Example Programming is teaching a computer how to do new things People learn best by example People teach best by example Why can’t computers learn by example?

Programming by Example (…or “Programming by Demonstration”) You demonstrate an example of something you want to do in a user interface The system records what you do You can then use that procedure in another (analogous) example

Programming by Example The key step is generalization Generalize a function from input-output pairs Generalize by from a procedural trace Replace constants by variables Generalize expressions

Examples of ML techniques for PBE Explanation-based learning Propagate dependencies Case-based reasoning Delay generalization Version spaces Converge minimal / maximal generalization in lattice

PBE / Statistical Machine Learning • Few examples • Lots of supervision • More interactive • Understandable generalizations • Strong domain knowledge/bias • Lots of examples • Little/no supervision • Less interactive • Machine/math generalizations • Little/no bias

Statistical ML for PBE Could get “lots of examples” by aggregating traces of different users Mixed-initiative statistical ML (e.g. Dinakar) Statistical ML proposes hypotheses Feedback to human users for semantics Generates bias for next round of SML

PBE in contemporary applications Many current applications have “PBE-like” features Macros in Excel, Emacs, Photoshop, other apps App-independent: Quickeys, Automator Requirements for fully general PBE in UI Scriptability Recordability Examinability

Survey of Programming by Example Systems Pygmalion - David Canfield Smith SmallStar - Dan Halbert Metmouse - David Maulsby Eager - Allen Cypher Garnet - Brad Myers Chimera - David Kurlander Triggers - Richard Potter

Pygmalion 00000000000

Pygmalion Breakthrough! Introduced: Programming by Example Icons Visual Programming Example: Factorial

SmallStar

SmallStar Programming by example in the desktop [= Finder] Data descriptions for generalization Example: Move files into folder

Eager

Eager Programming by example for Hypercard Notices patterns in user actions Anticipation highlighting of predicted actions Anthropomorphization of learning agent Example: Collect subject lines from messages

Metamouse

Metamouse Programming by example in a graphical editor Inference and matching of actions Constraints on intersection points Example: Sort bar graph

Garnet

Garnet User Interface Management System /Interface Builder Rule-based recognition of action patterns [Peridot] Spreadsheet for attributes of interface objects [C32] Constraints Example: Create a Box & Arrow graph editor

Chimera

Chimera Editable graphical histories Constraints from multiple snapshots Graphical search & replace Example: Add drop shadows to object

Triggers

Triggers Matches patterns of pixels -- just the pixels! Generates base of if-then rules Fragile - but solves the data access obstacle Example: Surround text with rounded rectangles