Program Synthesis for Direct Manipulation Interfaces. Ravi Chugh, Brian Hempel, Mitchell Spradlin, Jacob Albers
|
|
- Felix Bailey
- 5 years ago
- Views:
Transcription
1 Program Synthesis for Direct Manipulation Interfaces Ravi Chugh, Brian Hempel, Mitchell Spradlin, Jacob Albers
2 Motivating Application The original Chicago Ferris Wheel, built for the 1893 World's Columbian Exposition [Wikipedia] 2
3 Imagine Using a Direct Manipulation System 3
4 Imagine Using a Direct Manipulation System 4
5 Imagine Using a Direct Manipulation System 5
6 Imagine Using a Direct Manipulation System 6
7 Imagine Using a Direct Manipulation System 7
8 Imagine Using a Direct Manipulation System 8
9 Imagine Using a Direct Manipulation System 9
10 Imagine Using a Direct Manipulation System 10
11 Imagine Using a Direct Manipulation System 11
12 Imagine Using a Direct Manipulation System 12
13 Imagine Using a Direct Manipulation System 13
14 Imagine Using a Direct Manipulation System 14
15 Imagine Using a Direct Manipulation System 15
16 Imagine Using a Direct Manipulation System 16
17 Imagine Using a Programmatic System function ferriswheel ( numspokes, spokelen, rotangle, sizecar, radiuscenter, cx, cy ) {... } ferriswheel(8,...); 17
18 Imagine Using a Programmatic System function ferriswheel ( numspokes, spokelen, rotangle, sizecar, radiuscenter, cx, cy ) {... } ferriswheel(8,...); 18
19 Imagine Using a Programmatic System function ferriswheel ( numspokes, spokelen, rotangle, sizecar, radiuscenter, cx, cy ) {... } ferriswheel(8,...); 19
20 Imagine Using a Programmatic System function ferriswheel ( numspokes, spokelen, rotangle, sizecar, radiuscenter, cx, cy ) {... } ferriswheel(8,...); 20
21 Imagine Using a Programmatic System function ferriswheel ( numspokes, spokelen, rotangle, sizecar, radiuscenter, cx, cy ) {... } ferriswheel(16,...); 21
22 GOAL: Programmatic Manipulation GOAL: Direct Manipulation VISION and LONG-TERM GOAL Immediate Feedback Rapid Prototyping Abstraction Capabilities 22
23 Program Output 23
24 Live Synchronization Constrain Search Space? Predictable Updates? Efficient Search? Resolve Ambiguities? Trace-Based Synthesis Small Updates Simple Solvers Heuristics Updated Program GOAL: Infer Update to Program While User Changes the Output Updated Output 24
25 Live Synchronization Constrain Search Space? Predictable Updates? Efficient Search? Resolve Ambiguities? General Challenges Trace-Based Synthesis Small Updates Simple Solvers Heuristics General Solutions Sketch-n-Sketch Scalable Vector Graphics (SVG) 25
26 Sketch-n-Sketch let (x0, y0, w, h, sep) = (50, 120, 20, 90, 30 ) let boxi i = let xi = x0 + i * sep in rect 'lightblue' xi y0 w h map boxi [ ] 26
27 Sketch-n-Sketch let (x0, y0, w, h, sep) = (50, 120, 20, 90, 30 ) let boxi i = let xi = x0 + i * sep in rect 'lightblue' xi y0 w h map boxi (zeroto 7) 27
28 let (x0, y0, w, h, sep) = (50, 120, 20, 90, 30 ) let boxi i = let xi = x0 + i * sep in rect 'lightblue' xi y0 w h map boxi (zeroto 3) 28
29 let (x0, y0, w, h, sep) = (50, 120, 20, 90, 30 ) let boxi i = let xi = x0 + i * sep in rect 'lightblue' xi y0 w h map boxi (zeroto 3) x2 =
30 GOAL: Infer Program Update s.t. xi = 155 when i = 2 let (x0, y0, w, h, sep) = (50, 120, 20, 90, 30 ) let boxi i = let xi = x0 + i * sep in rect 'lightblue' xi y0 w h map boxi (zeroto 3) x2 = 110 x2' =
31 let (x0, y0, w, h, sep) = (50, 120, 20, 90, 30 ) let boxi i = let xi = x0 + i * sep in rect 'lightblue' xi y0 w h map boxi (zeroto 3) x2' =
32 let (x0, y0, w, h, sep) = (50, 120, 20, 90, 30 ) let boxi i = let xi = if (i=2) 155 (x0 + i * sep) in rect 'lightblue' xi y0 w h map boxi (zeroto 3) x2' =
33 let (x0, y0, w, h, sep) = (50, 120, 20, 90, 30 ) let boxi i = let xi = x0 + i * sep in rect 'lightblue' xi y0 w h map boxi (zeroto 3) x2' =
34 let (x0, y0, w, h, sep) = (95, 120, 20, 90, 30 ) let boxi i = let xi = x0 + i * sep in rect 'lightblue' xi y0 w h map boxi (zeroto 3) x2' =
35 let (x0, y0, w, h, sep) = (50, 120, 20, 90, 30 ) let boxi i = let xi = x0 + i * sep in rect 'lightblue' xi y0 w h map boxi (zeroto 3) x2' =
36 let (x0, y0, w, h, sep) = (50, 120, 20, 90, 52.5) let boxi i = let xi = x0 + i * sep in rect 'lightblue' xi y0 w h map boxi (zeroto 3) x2' =
37 let (x0, y0, w, h, sep) = (50, 120, 20, 90, 30 ) let boxi i = let xi = x0 + i * sep in rect 'lightblue' xi y0 w h map boxi (zeroto 3) x2' =
38 let (x0, y0, w, h, sep) = (55, 120, 20, 90, 20 ) let boxi i = let xi = x0 + i * sep in rect 'lightblue' xi y0 w h map boxi (zeroto 3) x2' =
39 let (x0, y0, w, h, sep) = (75, 120, 20, 90, 10 ) let boxi i = let xi = x0 + i * sep in rect 'lightblue' xi y0 w h map boxi (zeroto 3) x2' =
40 let (x0, y0, w, h, sep) = (85, 120, 20, 90, 5 ) let boxi i = let xi = x0 + i * sep in rect 'lightblue' xi y0 w h map boxi (zeroto 3) x2' =
41 let (x0, y0, w, h, sep) = (50, 120, 20, 90, 30 ) let boxi i = let xi = x0 + i * sep in rect 'lightblue' xi y0 w h map boxi (zeroto 3) Constrain Search Space? Predictable Updates? Efficient Search? Resolve Ambiguities? x2' =
42 Key Idea: Value-Trace Equations e' t 'v' 42
43 Key Idea: Value-Trace Equations e' t 'v' e' t 'v' Constraint on Original e: v' = t Constraint on Updated e': v' = t 43
44 Key Idea: Value-Trace Equations e' t 'v' e' t 'v' Constraint on Original e: v' = t Constraint on Updated e': v' = t 44
45 Dataflow-Only Traces e' t 'v' 45
46 Dataflow-Only Traces let a = 1 let b = 2 in a a 1' a+b a+b 3' a+b*b a+b*b 5' (\x.x) a a 1' true? a : b a 1' 46
47 Constraint on Updated e': 155 = x0 + i * sep x2' =
48 Constraint on Updated e': 155 = x0 + 2 i * sep xi if (i=2) 155 else x0 + i * sep x0 55, sep 20 x0 75, sep 10 x0, sep x0 95 sep 52.5 x2' =
49 xi if (i=2) 155 else x0 + i * sep x0 55, sep 20 x0 75, sep 10 x0, sep x0 95 sep 52.5 Change Only Constants in Original Program 49
50 Small Updates xi if (i=2) 155 else x0 + i * sep x0 55, sep 20 x0 75, sep 10 x0, sep x0 95 Change Only Constants in Original Program sep 52.5 Change Only One Constant per Updated Attribute 50
51 Small Updates How to Break Ambiguity? Asking User Live Synchronization Use Simple Heuristics! x0 95 sep 52.5 x2 = 110 x2' =
52 "Fair" Heuristic x0... sep... 52
53 "Fair" Heuristic + Other Simple Heuristics Choices Made Before User Action + Values Updated During User Action = Live Synchronization 53
54 Implementation ~6,500 LOC in Elm + JavaScript Little: Untyped Functional Language + SVG A Simple, Syntax-Directed Equation Solver No GUI Tools for Drawing New Shapes Evaluation Examples (2,000+ LOC in Little) 2. User Study: Effectiveness of Heuristics 54
55 Examples (Demo) n- sketch/releases/v0.4/ 55
56 Freezing Constants let sep = 30! in
57 Range Annotations and Sliders zeroto 3{1-15}
58 Programmatic Abstractions Botanic Garden Chicago Flag ActiveTrans
59 Programmatic Abstractions Botanic Garden Chicago Flag ActiveTrans
60 User-Defined Widgets Custom Sliders Rounded Rectangles Mask Tokens
61 User Study Dealing with Ambiguity in Sketch-n-Sketch (A) Sliders (No Heuristics) (B) Heuristics (No Sliders) 61
62 User Study Dealing with Ambiguity in Sketch-n-Sketch (A) Sliders (No Heuristics) (B) Heuristics (No Sliders) Hypotheses A Sometimes Better Than B B Sometimes Better Than A 62
63 Before After For Each Before/After Task, Two Videos: Mode (A): Sliders Mode (B): Heuristics 25 Users Rated Preferences: A B 63
64 Before After Survey Results A B A B A B 64
65 Survey Results Hypotheses A Sometimes Better Than B B Sometimes Better Than A A A B B A B 65
66 RECAP: Live Synchronization Constrain Search Space? Predictable Updates? Efficient Search? Resolve Ambiguities? General Challenges Trace-Based Synthesis Small Updates Simple Solvers Heuristics General Solutions Sketch-n-Sketch Scalable Vector Graphics (SVG) 66
67 FUTURE: Live Synchronization Smarter Solvers Smarter Heuristics Other Domains HTML+CSS Presentations Visualizations Spreadsheets Trace-Based Synthesis Small Updates Simple Solvers Heuristics Sketch-n-Sketch General Solutions Scalable Vector Graphics (SVG) 67
68 GOAL: GOAL: VISION: Programmatic Manipulation Direct Manipulation "Prodirect" Manipulation Immediate Feedback Rapid Prototyping Abstraction Capabilities 68
69 VISION: Prodirect Manipulation GOAL A: Live Synchronization Infer "Small" Program Update During Direct Manipulation Program GOAL B: Infer Program Output GOAL C: Ad Hoc Synchronization Infer "Large" Program Update After Direct Manipulation 69
70 Thanks! Prodirect Manipulation = Programmatic + Direct Manipulation Sketch-n-Sketch = Prodirect Manipulation for SVG ravichugh.github.io/sketch- n- sketch
71 EXTRA SLIDES 71
72 Related Work [Use + Draw] Bret Victor / Apparatus / PBM [Code] Processing, Slideshow [Draw + Code] SVG-edit / PaintCode [Draw + Code] SketchPad / ThingLab 72
73 Related Work Program Synthesis by Sketching Little programs are sketches, where Holes are constants, and Specification is set of trace-value equations Programming by Example (PBE) Bidirectional Programming 73
74 Examples (Demo) Freezing Constants let sep = 30! in Range Annotations and Sliders zeroto 3{1-15} Programmatic Abstractions Botanic Garden Chicago Flag ActiveTrans User-Defined Widgets Custom Sliders Rounded Rectangles Mask Tokens 74
75 User Study Ways to Deal with Ambiguity: (A) Sliders (No Heuristics) (B) Heuristics (No Sliders) (C) Neither Programming Only Unique to Sketch-n-Sketch 75
76 User Study Ways to Deal with Ambiguity: (A) Sliders (No Heuristics) (B) Heuristics (No Sliders) Unique to Sketch-n-Sketch (C) Neither Programming Only Hypotheses: #1: A or B Usually Better Than C #2: B Sometimes Better Than A 76
77 Before After For Each Before/After Task, Two Videos: Mode (A) and Mode (B) 25 Users Rated Preferences Between Each Pair of Modes: (A) vs (B) 77
78 Before After Survey Results 78
79 Survey Results Hypothesis #1: A or B Usually Better Than C 79
80 Survey Results Hypothesis #2: B Sometimes Better Than A 80
81 let (x0, y0, w, h, sep) = (50, 120, 20, 90, 30 ) Small Update (Change x0) let boxi i = let xi = x0 + i * sep in rect 'lightblue' xi y0 w h map boxi (zeroto 3) x0 x0' 81
82 let (x0, y0, w, h, sep) = (50, 120, 20, 90, 30 ) Small Update (Change x0) let boxi i = let xi = x0 + i * sep in rect 'lightblue' xi y0 w h map boxi (zeroto 3) Small Update (Change sep) x1 x1' 82
83 let (x0, y0, w, h, sep) = (50, 120, 20, 90, 30 ) Small Update (Change x0) let boxi i = let xi = x0 + i * sep in rect 'lightblue' xi y0 w h map boxi (zeroto 3) Small Update (Change sep) x2 x2' 83
84 "Fair" Heuristic Small Update (Change x0) Small Update (Change sep) 84
Direct Manipulation Programming Systems. Ravi Chugh Brian Hempel Jacob Albers Grace Lu Justin Lubin Mitchell Spradlin
Direct Manipulation Programming Systems Ravi Chugh Brian Hempel Jacob Albers Grace Lu Justin Lubin Mitchell Spradlin June 5, 2017 Idea 2 Idea 3 Idea 4 Idea 5 Idea 6 Idea 7 λ... λ... λ... λ... λ... λ...
More informationDirect Manipulation Programming Systems. Ravi Chugh, Brian Hempel, Justin Lubin Jacob Albers, Grace Lu, Mitch Spradlin
Direct Manipulation Programming Systems Ravi Chugh, Brian Hempel, Justin Lubin Jacob Albers, Grace Lu, Mitch Spradlin October 25, 2017 Idea The original Chicago Ferris Wheel, built for the 1893 World's
More informationb 1. If he flips the b over to the left, what new letter is formed? Draw a picture to the right.
Name: Date: Student Exploration: Rotations, Reflections, and Translations Vocabulary: image, preimage, reflection, rotation, transformation, translation Prior Knowledge Questions (Do these BEFORE using
More informationDeductive reasoning can be used to establish area formulas.
Mathematics: Modeling Our World Unit 4: THE RIGHT STUFF S U P P L E M E N TAL ACTIVITY AREA PROOFS S4.1 Deductive reasoning can be used to establish area formulas. 1.Many area proofs are based on a fact
More informationData Visualization (CIS/DSC 468)
Data Visualization (CIS/DSC 468) Data Dr. David Koop SVG Example http://codepen.io/dakoop/pen/ yexvxb
More informationExperiment 7 Geometric Optics
Physics 263 Experiment 7 Geometric Optics In this laboratory, we will perform several experiments on geometric optics. A pictorial diagram of the various components to be used is shown in Figure 5. 1 Refraction
More informationSection 1.2. Graphing Linear Equations
Graphing Linear Equations Definition of Solution, Satisfy, and Solution Set Definition of Solution, Satisfy, and Solution Set Consider the equation y = 2x 5. Let s find y when x = 3. y = 2x 5 Original
More informationLabVIEW programming II
FYS3240-4240 Data acquisition & control LabVIEW programming II Spring 2018 Lecture #3 Bekkeng 14.01.2018 Dataflow programming With a dataflow model, nodes on a block diagram are connected to one another
More informationDesigning extensible, domain-specific languages for mathematical diagrams
Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane Jonathan Aldrich Josh Sunshine Off the Beaten Track 17 Source: An Algorithm to Generate Impossible
More informationBETWEEN PAPERS PRACTICE (F&H)
BETWEEN PAPERS PRACTICE (F&H) Summer 2018 QUESTIONS Not A best Guess paper. Neither is it a prediction... only the examiners know what is going to come up! Fact! You also need to REMEMBER that just because
More informationConfidence Intervals. Dennis Sun Data 301
Dennis Sun Data 301 Statistical Inference probability Population / Box Sample / Data statistics The goal of statistics is to infer the unknown population from the sample. We ve already seen one mode of
More informationData Visualization (DSC 530/CIS )
Data Visualization (DSC 530/CIS 602-02) Web Programming Dr. David Koop 2 What languages do we use on the Web? 3 Languages of the Web HTML CSS SVG JavaScript - Versions of Javascript: ES6, ES2015, ES2017
More information2/22/ Transformations but first 1.3 Recap. Section Objectives: Students will know how to analyze graphs of functions.
1 2 3 4 1.4 Transformations but first 1.3 Recap Section Objectives: Students will know how to analyze graphs of functions. 5 Recap of Important information 1.2 Functions and their Graphs Vertical line
More informationScalable Vector Graphics (SVG) vector image World Wide Web Consortium (W3C) defined with XML searched indexed scripted compressed Mozilla Firefox
SVG SVG Scalable Vector Graphics (SVG) is an XML-based vector image format for twodimensional graphics with support for interactivity and animation. The SVG specification is an open standard developed
More informationModule 3. Requirements Analysis and Specification. Version 2 CSE IIT, Kharagpur
Module 3 Requirements Analysis and Specification Lesson 6 Formal Requirements Specification Specific Instructional Objectives At the end of this lesson the student will be able to: Explain what a formal
More informationInteraction Techniques. SWE 432, Fall 2016 Design and Implementation of Software for the Web
Interaction Techniques SWE 432, Fall 2016 Design and Implementation of Software for the Web Today What principles guide the design of usable interaction techniques? How can interaction designs help support
More informationUSERINTERFACE DESIGN & SIMULATION. Fjodor van Slooten
USERINTERFACE Fjodor van Slooten TODAY USERINTERFACE -Introduction -Interaction design -Prototyping Userinterfaces with Axure -Practice Do Axure tutorial Work on prototype for project vanslooten.com/uidessim
More informationHello Drupal! download manual Updated 24 October Prepared by
Hello Drupal! download manual http://training.acquia.com/hellodrupal Updated 24 October 2011 Prepared by download manual http://training.acquia.com/ hellodrupal What we ll do today 1. Short presentation
More informationLabVIEW programming II
FYS3240 PC-based instrumentation and microcontrollers LabVIEW programming II Spring 2016 Lecture #3 Bekkeng 18.01.2016 Dataflow programming With a dataflow model, nodes on a block diagram are connected
More informationGraphical System Design. David Fuller LabVIEW R&D Section Manager
Graphical System Design David Fuller LabVIEW R&D Section Manager Agenda Visions Demo Order & time National Instruments Confidential 2 Virtual Instrumentation National Instruments Confidential 3 Virtual
More informationMIAMI-DADE COUNTY PUBLIC SCHOOLS District Pacing Guide GEOMETRY HONORS Course Code:
Topic II: Transformations in the Plane Pacing Date(s) Traditional 14 09/15/14-10/03/14 Block 07 09/15/14-10/03/14 MATHEMATICS FLORIDA STANDARDS & MATHEMATICAL PRACTICE (MP) MATHEMATICAL PRACTICE (MP) ESSENTIAL
More informationInput: Interaction Techniques
Input: Interaction Techniques Administration Questions about homework? 2 Interaction techniques A method for carrying out a specific interactive task Example: enter a number in a range could use (simulated)
More informationSYED AMMAL ENGINEERING COLLEGE (An ISO 9001:2008 Certified Institution) Dr. E.M. Abdullah Campus, Ramanathapuram
CS6660 COMPILER DESIGN Question Bank UNIT I-INTRODUCTION TO COMPILERS 1. Define compiler. 2. Differentiate compiler and interpreter. 3. What is a language processing system? 4. List four software tools
More informationIAT 355 : Lab 01. Web Basics
IAT 355 : Lab 01 Web Basics Overview HTML CSS Javascript HTML & Graphics HTML - the language for the content of a webpage a Web Page put css rules here
More informationLeveraging Data Invariants in Model Inference for Test Case Generation
Leveraging Data Invariants in Model Inference for Test Case Generation Roykrong Sukkerd Abstract Testing is an effective mean to find bugs in systems, but manually writing test cases is often tedious.
More informationSM2H 4.3 HW- Writing Quadratic Equations
SM2H Name: Period: SM2H 4.3 HW- Writing Quadratic Equations For each of the parabolas described below, write a quadratic equation in Vertex Form. SHOW ALL YOUR WORK. 1. Vertex: ( 0, 6 ), passes through
More informationModelling the Reactive Behaviour of Scoped User Interfaces with Hierarchically-linked Statecharts
Modelling the Reactive Behaviour of Scoped User Interfaces with Hierarchically-linked Statecharts Jacob Beard McGill University Modelling, Simulation and Design Lab (MSDL) 08/27/2009 Challenges With UI
More informationData Visualization (DSC 530/CIS )
Data Visualization (DSC 530/CIS 602-01) JavaScript Dr. David Koop Quiz Given the following HTML, what is the selector for the first div? the super Bowl
More informationAutomatic Programming: How Far Can Machines Go? Hila Peleg Technion
Automatic Programming: How Far Can Machines Go? Hila Peleg Technion Laziness Laziness Impatience Laziness Impatience Hubris Automatic Programming Clean up my spreadsheet! Right away, boss! Program synthesis
More informationInteraction Techniques. SWE 432, Fall 2017 Design and Implementation of Software for the Web
Interaction Techniques SWE 432, Fall 2017 Design and Implementation of Software for the Web Today What principles guide the design of usable interaction techniques? How can interaction designs help support
More informationCISC 1600, Lab 2.1: Processing
CISC 1600, Lab 2.1: Processing Prof Michael Mandel 1 Getting set up For this lab, we will be using Sketchpad, a site for building processing sketches online using processing.js. 1.1. Go to http://cisc1600.sketchpad.cc
More informationRational Functions with Removable Discontinuities
Rational Functions with Removable Discontinuities 1. a) Simplif the rational epression and state an values of where the epression is b) Using the simplified epression in part (a), predict the shape for
More information1.5 Part - 2 Inverse Relations and Inverse Functions
1.5 Part - 2 Inverse Relations and Inverse Functions What happens when we reverse the coordinates of all the ordered pairs in a relation? We obviously get another relation, but does it have any similarities
More informationPick a number. Conditionals. Boolean Logic Relational Expressions Logical Operators Numerical Representation Binary. CS Conditionals 1
Conditionals Boolean Logic Relational Expressions Logical Operators Numerical Representation Binary CS105 04 Conditionals 1 Pick a number CS105 04 Conditionals 2 Boolean Expressions An expression that
More informationCOURSE OUTLINE MOC 20480: PROGRAMMING IN HTML5 WITH JAVASCRIPT AND CSS3
COURSE OUTLINE MOC 20480: PROGRAMMING IN HTML5 WITH JAVASCRIPT AND CSS3 MODULE 1: OVERVIEW OF HTML AND CSS This module provides an overview of HTML and CSS, and describes how to use Visual Studio 2012
More informationEvaluation in Information Visualization. An Introduction to Information Visualization Techniques for Exploring Large Database. Jing Yang Fall 2005
An Introduction to Information Visualization Techniques for Exploring Large Database Jing Yang Fall 2005 1 Evaluation in Information Visualization Class 3 2 1 Motivation What are the advantages and limitations
More information6 Using Technology Wisely
6 Using Technology Wisely Concepts: Advantages and Disadvantages of Graphing Calculators How Do Calculators Sketch Graphs? When Do Calculators Produce Incorrect Graphs? The Greatest Integer Function Graphing
More informationArcGIS Online: Developing Web Applications with Routing Services. Deelesh Mandloi Dmitry Kudinov
ArcGIS Online: Developing Web Applications with Routing Services Deelesh Mandloi Dmitry Kudinov Metadata Slides available at http://esriurl.com/ds17drs Documentation at http://developers.arcgis.com/features/directions
More informationThis quiz is closed book, closed notes. You have 80 minutes to complete it. Your name:
6.831 User Interface Design & Implementation Fall 2004 Quiz 2 This quiz is closed book, closed notes. You have 80 minutes to complete it. Your name: 1. (4 points) Programmer convenience is one reason for
More informationData Visualization (CIS 468)
Data Visualization (CIS 468) Web Programming Dr. David Koop Languages of the Web HTML CSS SVG JavaScript - Versions of Javascript: ES6/ES2015, ES2017 - Specific frameworks: react, jquery, bootstrap, D3
More informationThis installment of Research for Practice covers
1 of 14 TE X T ONLY Tracing and Debugging Distributed Systems; Programming by Examples Expert-curated Guides to the Best of CS Research Research for Practice combines the resources of the ACM Digital Library,
More informationMath 101 Exam 1 Review
Math 101 Exam 1 Review Reminder: Exam 1 will be on Friday, October 14, 011 at 8am. It will cover sections 1.1, 1. and 10.1 10.3 Room Assignments: Room Sections Nesbitt 111 9, 14, 3, 4, 8 Nesbitt 15 0,
More informationDomain Specific Development
Domain Specific Development Stuart Kent, Senior Program Manager, Visual Studio Team System, Microsoft Copyright Microsoft 2006 Domain Specific Development Pattern Model Abstraction of the variable part,
More informationAdvances in Programming Languages
T O Y H Advances in Programming Languages APL16: Bidirectional Programming II David Aspinall School of Informatics The University of Edinburgh Tuesday 23rd November 2010 Semester 1 Week 10 E H U N I V
More informationPlease write neatly. We cannot give credit for what we cannot read
CS 160: USER INTERFACE DESIGN UC BERKELEY SPRING 2016 MIDTERM EXAM Professor Eric Paulos 16 March 2016 Your name (please print): This is a closed book, individual test. You are not allowed to use your
More informationLecture 8: Rapid Prototyping. CS 338: Graphical User Interfaces. Dario Salvucci, Drexel University.
Lecture 8: Rapid Prototyping CS 338: Graphical User Interfaces. Dario Salvucci, Drexel University. 1 GUI Prototyping What is prototyping? rapid initial development, sketching & testing many designs to
More informationEECS 219C: Formal Methods Syntax-Guided Synthesis (selected/adapted slides from FMCAD 13 tutorial by R. Alur) Sanjit A. Seshia EECS, UC Berkeley
EECS 219C: Formal Methods Syntax-Guided Synthesis (selected/adapted slides from FMCAD 13 tutorial by R. Alur) Sanjit A. Seshia EECS, UC Berkeley Solving SyGuS Is SyGuS same as solving SMT formulas with
More informationPROBLEM SOLVING AND OFFICE AUTOMATION. A Program consists of a series of instruction that a computer processes to perform the required operation.
UNIT III PROBLEM SOLVING AND OFFICE AUTOMATION Planning the Computer Program Purpose Algorithm Flow Charts Pseudo code -Application Software Packages- Introduction to Office Packages (not detailed commands
More informationCS 349 Midterm Exam Spring 2014
Course Title: User Interfaces Sections: All Instructor: Byron Weber Becker Exam Date: 19-June-2014 Time: 7:00-9:00p.m. Duration: 2 hours Pages: 10 CS 349 Midterm Exam Exam Type: Closed Book Permitted Aids:
More informationDeep Learning for Visual Manipulation and Synthesis
Deep Learning for Visual Manipulation and Synthesis Jun-Yan Zhu 朱俊彦 UC Berkeley 2017/01/11 @ VALSE What is visual manipulation? Image Editing Program input photo User Input result Desired output: stay
More informationGraph Matching. LabQuest App OBJECTIVES MATERIALS
Graph Matching LabQuest 1 One of the most effective methods of describing motion is to plot graphs of position, velocity, and acceleration vs. time. From such a graphical representation, it is possible
More informationHomework for Section 5.1
Homework for Section 5.1 1. reate the rotation R(T) 2. reate the reflection F(T) of the triangle T shown below 90 degrees of the triangle T shown below across clockwise about the center point of rotation.
More informationD3js Tutorial. Tom Torsney-Weir Michael Trosin
D3js Tutorial Tom Torsney-Weir Michael Trosin http://www.washingtonpost.com/wp-srv/special/politics Contents Some important aspects of JavaScript Introduction to SVG CSS D3js Browser-Demo / Development-Tools
More informationAction Table for CSX-Lite. LALR Parser Driver. Example of LALR(1) Parsing. GoTo Table for CSX-Lite
LALR r Driver Action Table for CSX-Lite Given the GoTo and parser action tables, a Shift/Reduce (LALR) parser is fairly simple: { S 5 9 5 9 void LALRDriver(){ Push(S ); } R S R R R R5 if S S R S R5 while(true){
More informationManju Muralidharan Priya. CS4PM Web Aesthetics and Development WEEK 12
CS4PM Web Aesthetics and Development WEEK 12 Objective: 1. Understand the basic operations in JavaScript 2. Understand and Prepare a 3 page Website (Homework for Week 15) 3. Finish Quiz 2 Outline: a. Basics
More informationChapter 4 Objectives
Chapter 4 Objectives Eliciting requirements from the customers Modeling requirements Reviewing requirements to ensure their quality Documenting requirements for use by the design and test teams 4.1 The
More informationHTML5 - SVG. SVG is mostly useful for vector type diagrams like Pie charts, Two-dimensional graphs in an X,Y coordinate system etc.
http://www.tutorialspoint.com/html5/html5_svg.htm HTML5 - SVG Copyright tutorialspoint.com SVG stands for Scalable Vector Graphics and it is a language for describing 2D-graphics and graphical applications
More informationMobile-based Tangible Interaction Design for Shared Displays
MobileHCI 2014 Interactive Tutorial Mobile-based Tangible Interaction Design for Shared Displays Ali Mazalek mazalek@ryerson.ca Ahmed S. Arif asarif@ryerson.ca Synaesthetic Media Lab Ryerson University
More informationDesigning extensible, domain-specific languages for mathematical diagrams
Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane Jonathan Aldrich Josh Sunshine Off the Beaten Track 17 Source: An Algorithm to Generate Impossible
More informationADOPTING SPSS MACROS TO MAXIMIZE OFFICE PRODUCTIVITY
ADOPTING SPSS MACROS TO MAXIMIZE OFFICE PRODUCTIVITY Why are SPSS Macros Important? IR shops can have large reporting burdens More complex & greater numbers Manual-production of reports/analyses represent
More informationPart 5 Program Analysis Principles and Techniques
1 Part 5 Program Analysis Principles and Techniques Front end 2 source code scanner tokens parser il errors Responsibilities: Recognize legal programs Report errors Produce il Preliminary storage map Shape
More informationSimcenter Motion 3D. Mechatronics - Improve Design Dynamics Performance: Combine 3D Multi-Body Simulation with 1D Actuation & Controls Simulation
Simcenter Motion 3D Mechatronics - Improve Design Dynamics Performance: Combine 3D Multi-Body Simulation with 1D Actuation & Controls Simulation Iurie TERNA Email: iurie.terna@siemens.com Tuesday 16:00-17:00
More informationA Review of Milestones in the History of GUI Prototyping Tools
A Review of Milestones in the History of GUI Prototyping Tools IFIP WG 13.2 Workshop on User Experience and User-Centered Development Processes September 14 th 2015, Bamberg, Germany Thiago R. Silva, Jean-Luc
More informationGrafiCalc Key Features
GrafiCalc Key Features GrafiCalc 2011 includes facilities that have been enhanced over 15 years to incorporate latest computing technology and valuable inputs from users. User sensitive facilities Automatic
More informationUser Centered Design Process. Prototyping II. What is a prototype? Prototyping phases Oct 11, 2017
User Centered Design Process Prototyping II Oct 11, 2017 Produce something tangible Identify challenges Uncover subtleties 2 What is a prototype? A prototype is defined less by form, and more by its function:
More informationOverloading, Type Classes, and Algebraic Datatypes
Overloading, Type Classes, and Algebraic Datatypes Delivered by Michael Pellauer Arvind Computer Science and Artificial Intelligence Laboratory M.I.T. September 28, 2006 September 28, 2006 http://www.csg.csail.mit.edu/6.827
More informationAutodesk Inventor 6 Essentials Instructor Guide Chapter Four: Creating Placed Features Chapter Outline This chapter provides instruction on the follow
Chapter Four: Creating Placed Features Chapter Outline This chapter provides instruction on the following topics and provides exercises for students to practice their skills. Day Two Topic: How to create
More informationUse Geometry Expressions to create and graph functions, and constrain points to functions.
Learning Objectives Parametric Functions Lesson 1: Function Review Level: Algebra Time required: 30 minutes This is the first lesson in the unit on parametric functions. Parametric functions are not really
More informationa. It will output It s NOT Rover b. Class Main should be changed to the following (bold characters show the changes)
May 2015 Computing Advanced Paper 1 Question 1 a. It will output It s NOT Rover b. Class Main should be changed to the following (bold characters show the changes) public class Main public static void
More information1 Getting started with Processing
cis3.5, spring 2009, lab II.1 / prof sklar. 1 Getting started with Processing Processing is a sketch programming tool designed for use by non-technical people (e.g., artists, designers, musicians). For
More informationCompiler Theory. (Semantic Analysis and Run-Time Environments)
Compiler Theory (Semantic Analysis and Run-Time Environments) 005 Semantic Actions A compiler must do more than recognise whether a sentence belongs to the language of a grammar it must do something useful
More informationSection 1.5. Finding Linear Equations
Section 1.5 Finding Linear Equations Using Slope and a Point to Find an Equation of a Line Example Find an equation of a line that has slope m = 3 and contains the point (2, 5). Solution Substitute m =
More informationLecture 16. Will spend Thursday setting up group projects No exams. 10% added to in-class/homework. 10% added to final group project.
Lecture 16 Will spend Thursday setting up group projects No exams. 10% added to in-class/homework. 10% added to final group project. 1 Outline Chapter 9 Design iterations Intermediate design Detailed design
More informationInput part 3: Interaction Techniques
Input part 3: Interaction Techniques Interaction techniques A method for carrying out a specific interactive task Example: enter a number in a range could use (simulated) slider (simulated) knob type in
More informationComplete Instantiation of Quantified Formulas in Satisfiability Modulo Theories. ACSys Seminar
Complete Instantiation of Quantified Formulas in Satisfiability Modulo Theories Yeting Ge Leonardo de Moura ACSys Seminar 2008.12 Motivation SMT solvers have been successful Quantified smt formulas are
More informationName: Math with Letters! (aka Physics Math!) Use the following questions to practice your math manipulation skills.
AP Physics 1 Summer Assignment Packet Summer of 2018 Mr. Ecsedy You ll see two parts to this summer s AP Physics 1 work. We re looking for you to prepare by doing some math with letters, and conduct a
More informationA Proposal for a More Generic, More Accountable, Verilog DCC 2010
A Proposal for a More Generic, More Accountable, Verilog Cherif Salama Walid Taha DCC 2010 Technology Gap Verilog/VHDL progress vs. manufacturing technology progress 2 Technology Gap Verilog/VHDL progress
More informationPlantSimLab An Innovative Web Application Tool for Plant Biologists
PlantSimLab An Innovative Web Application Tool for Plant Biologists Feb. 17, 2014 Sook S. Ha, PhD Postdoctoral Associate Virginia Bioinformatics Institute (VBI) 1 Outline PlantSimLab Project A NSF proposal
More informationHow do the shapes grow or shrink? What parts can we compare? How can we write the comparison? CPM Materials modified by Mr. Deyo
Common Core Standard: 8.G.1a, 8.G.1b, 8.G.1c, 8.G.2, 8.G.4 How do the shapes grow or shrink? What parts can we compare? How can we write the comparison? CPM Materials modified by Mr. Deyo Title: IM8 Ch.
More information5.2. Exploring Quotients of Polynomial Functions. EXPLORE the Math. Each row shows the graphs of two polynomial functions.
YOU WILL NEED graph paper coloured pencils or pens graphing calculator or graphing software Eploring Quotients of Polnomial Functions EXPLORE the Math Each row shows the graphs of two polnomial functions.
More informationVerification of Parameterized Concurrent Programs By Modular Reasoning about Data and Control
Verification of Parameterized Concurrent Programs By Modular Reasoning about Data and Control Zachary Kincaid Azadeh Farzan University of Toronto January 18, 2013 Z. Kincaid (U. Toronto) Modular Reasoning
More informationProfessional. haxe and Neko. Franco Ponticelli Lee McColl-Sylvester WILEY. Wiley Publishing, Inc.
Professional haxe and Neko Franco Ponticelli Lee McColl-Sylvester WILEY Wiley Publishing, Inc. Acknowledgments Foreword Introduction xi xiii xxv Part I: The Core Language Chapter 1: Introducing haxe 3
More informationSUPPLEMENTAL MATERIAL: Co-Constrained Handles for Deformation in Shape Collections
SUPPLEMENTAL MATERIAL: Co-Constrained Handles for Deformation in Shape Collections Mehmet Ersin Yumer Carnegie Mellon University Levent Burak Kara 3 Results of the Lamps Dataset Figure 1: (a) input models.
More informationA Practical Optional Type System for Clojure. Ambrose Bonnaire-Sergeant
A Practical Optional Type System for Clojure Ambrose Bonnaire-Sergeant Statically typed vs. Dynamically typed Traditional distinction Dynamically typed Statically typed eg. Java, C, Haskell eg. Javascript,
More informationCS 664 Segmentation. Daniel Huttenlocher
CS 664 Segmentation Daniel Huttenlocher Grouping Perceptual Organization Structural relationships between tokens Parallelism, symmetry, alignment Similarity of token properties Often strong psychophysical
More informationPROGRAMMING IN HASKELL. Chapter 2 - First Steps
PROGRAMMING IN HASKELL Chapter 2 - First Steps 0 The Hugs System Hugs is an implementation of Haskell 98, and is the most widely used Haskell system; The interactive nature of Hugs makes it well suited
More informationWhat Happened to the Representations of Perception? Cornelia Fermüller Computer Vision Laboratory University of Maryland
What Happened to the Representations of Perception? Cornelia Fermüller Computer Vision Laboratory University of Maryland Why we study manipulation actions? 2. Learning from humans to teach robots Y Yang,
More informationTable of contents. Jakayla Robbins & Beth Kelly (UK) Precalculus Notes Fall / 27
Table of contents Using Technology Wisely Connecting the Dots. Is This Always a Good Plan? Basic Instructions for the Graphing Calculator Using Technology to Find Approximate Solutions of Equations in
More informationPrecise and Accurate Patch Presence Test for Binaries
Precise and Accurate Patch Presence Test for Binaries Usenix Security 18 Hang Zhang, Zhiyun Qian University of California, Riverside 1 1 What s the problem? 1 What s the problem? Short Answer: Given an
More informationProbabilistic Robotics
Probabilistic Robotics Discrete Filters and Particle Filters Models Some slides adopted from: Wolfram Burgard, Cyrill Stachniss, Maren Bennewitz, Kai Arras and Probabilistic Robotics Book SA-1 Probabilistic
More informationParsing Techniques. CS152. Chris Pollett. Sep. 24, 2008.
Parsing Techniques. CS152. Chris Pollett. Sep. 24, 2008. Outline. Top-down versus Bottom-up Parsing. Recursive Descent Parsing. Left Recursion Removal. Left Factoring. Predictive Parsing. Introduction.
More informationChapter 5. Software Tools
Chapter 5 Software Tools 1 Introduction The demands of modern life require user-interface architects to build reliable, standard, safe, inexpensive, effective, and widely acceptable user interfaces on
More informationGeometry Activity: Segment and Shape Construction. CALCULATORS: Casio: ClassPad 300 Texas Instruments: TI-89, TI-89 Titanium
Geometry Activity: Segment and Shape Construction Casio Classpad 300 vs. TI-89 CALCULATORS: Casio: ClassPad 300 Texas Instruments: TI-89, TI-89 Titanium C.C. Edwards Using the Casio ClassPad 300 The Cowboy
More information[MS-RDPECLIP]: Remote Desktop Protocol: Clipboard Virtual Channel Extension
[MS-RDPECLIP]: Remote Desktop Protocol: Clipboard Virtual Channel Extension Intellectual Property Rights Notice for Open Specifications Documentation Technical Documentation. Microsoft publishes Open Specifications
More informationModule 05 User Interfaces. CS 106 Winter 2018
Module 05 User Interfaces CS 106 Winter 2018 UI is a big topic GBDA 103: User Experience Design UI is a big topic GBDA 103: User Experience Design CS 349: User Interfaces CS 449: Human-Computer Interaction
More informationSoot A Java Bytecode Optimization Framework. Sable Research Group School of Computer Science McGill University
Soot A Java Bytecode Optimization Framework Sable Research Group School of Computer Science McGill University Goal Provide a Java framework for optimizing and annotating bytecode provide a set of API s
More informationA Domain-Customizable SVG-Based Graph Editor for Software Visualizations
A Domain-Customizable SVG-Based Graph Editor for Software Visualizations Tony Lin, Feng Zou, Holger M. Kienle and Hausi A. Müller University of Victoria, Canada {gaoyun,fzou,kienle,hausi}@cs.uvic.ca Abstract
More informationTo Store or Not To Store
To Store or Not To Store Radek Pelánek Masaryk University, Brno Gerd Behrmann, Kim G. Larsen Aalborg University To Store or Not To Store p.1/24 Reachability Problem Model: networks of timed automata with
More informationGraphical Constraints in CoDraw
Graphical Constraints in CoDraw Mark D. Gross University of Colorado; Boulder, Colorado 80309-0314 mdg@cs.colorado.edu Abstract Constraint based draw programs require users to understand and manage relationships
More informationODK Tables Graphing Tool
ODK Tables Graphing Tool Nathan Brandes, Gaetano Borriello, Waylon Brunette, Samuel Sudar, Mitchell Sundt Department of Computer Science and Engineering University of Washington, Seattle, WA [USA] {nfb2,
More information