Program Synthesis for Direct Manipulation Interfaces. Ravi Chugh, Brian Hempel, Mitchell Spradlin, Jacob Albers

Size: px
Start display at page:

Download "Program Synthesis for Direct Manipulation Interfaces. Ravi Chugh, Brian Hempel, Mitchell Spradlin, Jacob Albers"

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

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

b 1. If he flips the b over to the left, what new letter is formed? Draw a picture to the right.

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

Deductive reasoning can be used to establish area formulas.

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

Data Visualization (CIS/DSC 468)

Data Visualization (CIS/DSC 468) Data Visualization (CIS/DSC 468) Data Dr. David Koop SVG Example http://codepen.io/dakoop/pen/ yexvxb

More information

Experiment 7 Geometric Optics

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

Section 1.2. Graphing Linear Equations

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

LabVIEW programming II

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

Designing extensible, domain-specific languages for mathematical diagrams

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

BETWEEN PAPERS PRACTICE (F&H)

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

Confidence Intervals. Dennis Sun Data 301

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

Data Visualization (DSC 530/CIS )

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

2/22/ Transformations but first 1.3 Recap. Section Objectives: Students will know how to analyze graphs of functions.

2/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 information

Scalable Vector Graphics (SVG) vector image World Wide Web Consortium (W3C) defined with XML searched indexed scripted compressed Mozilla Firefox

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

Module 3. Requirements Analysis and Specification. Version 2 CSE IIT, Kharagpur

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

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

USERINTERFACE DESIGN & SIMULATION. Fjodor van Slooten

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

Hello Drupal! download manual Updated 24 October Prepared by

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

LabVIEW programming II

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

Graphical System Design. David Fuller LabVIEW R&D Section Manager

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

MIAMI-DADE COUNTY PUBLIC SCHOOLS District Pacing Guide GEOMETRY HONORS Course Code:

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

Input: Interaction Techniques

Input: 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 information

SYED AMMAL ENGINEERING COLLEGE (An ISO 9001:2008 Certified Institution) Dr. E.M. Abdullah Campus, Ramanathapuram

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

IAT 355 : Lab 01. Web Basics

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

Leveraging Data Invariants in Model Inference for Test Case Generation

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

SM2H 4.3 HW- Writing Quadratic Equations

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

Modelling the Reactive Behaviour of Scoped User Interfaces with Hierarchically-linked Statecharts

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

Data Visualization (DSC 530/CIS )

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

Automatic Programming: How Far Can Machines Go? Hila Peleg Technion

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

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

CISC 1600, Lab 2.1: Processing

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

Rational Functions with Removable Discontinuities

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

1.5 Part - 2 Inverse Relations and Inverse Functions

1.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 information

Pick a number. Conditionals. Boolean Logic Relational Expressions Logical Operators Numerical Representation Binary. CS Conditionals 1

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

COURSE OUTLINE MOC 20480: PROGRAMMING IN HTML5 WITH JAVASCRIPT AND CSS3

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

Evaluation in Information Visualization. An Introduction to Information Visualization Techniques for Exploring Large Database. Jing Yang Fall 2005

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

6 Using Technology Wisely

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

ArcGIS Online: Developing Web Applications with Routing Services. Deelesh Mandloi Dmitry Kudinov

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

This quiz is closed book, closed notes. You have 80 minutes to complete it. Your name:

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

Data Visualization (CIS 468)

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

This installment of Research for Practice covers

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

Math 101 Exam 1 Review

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

Domain Specific Development

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

Advances in Programming Languages

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

Please write neatly. We cannot give credit for what we cannot read

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

Lecture 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. 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 information

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

PROBLEM SOLVING AND OFFICE AUTOMATION. A Program consists of a series of instruction that a computer processes to perform the required operation.

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

CS 349 Midterm Exam Spring 2014

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

Deep Learning for Visual Manipulation and Synthesis

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

Graph Matching. LabQuest App OBJECTIVES MATERIALS

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

Homework for Section 5.1

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

D3js Tutorial. Tom Torsney-Weir Michael Trosin

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

Action Table for CSX-Lite. LALR Parser Driver. Example of LALR(1) Parsing. GoTo Table for CSX-Lite

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

Manju Muralidharan Priya. CS4PM Web Aesthetics and Development WEEK 12

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

Chapter 4 Objectives

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

HTML5 - SVG. SVG is mostly useful for vector type diagrams like Pie charts, Two-dimensional graphs in an X,Y coordinate system etc.

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

Mobile-based Tangible Interaction Design for Shared Displays

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

Designing extensible, domain-specific languages for mathematical diagrams

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

ADOPTING SPSS MACROS TO MAXIMIZE OFFICE PRODUCTIVITY

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

Part 5 Program Analysis Principles and Techniques

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

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

A Review of Milestones in the History of GUI Prototyping Tools

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

GrafiCalc Key Features

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

User Centered Design Process. Prototyping II. What is a prototype? Prototyping phases Oct 11, 2017

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

Overloading, Type Classes, and Algebraic Datatypes

Overloading, 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 information

Autodesk Inventor 6 Essentials Instructor Guide Chapter Four: Creating Placed Features Chapter Outline This chapter provides instruction on the follow

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

Use Geometry Expressions to create and graph functions, and constrain points to functions.

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

a. It will output It s NOT Rover b. Class Main should be changed to the following (bold characters show the changes)

a. 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 information

1 Getting started with Processing

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

Compiler Theory. (Semantic Analysis and Run-Time Environments)

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

Section 1.5. Finding Linear Equations

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

Lecture 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. 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 information

Input part 3: Interaction Techniques

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

Complete Instantiation of Quantified Formulas in Satisfiability Modulo Theories. ACSys Seminar

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

Name: Math with Letters! (aka Physics Math!) Use the following questions to practice your math manipulation skills.

Name: 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 information

A Proposal for a More Generic, More Accountable, Verilog DCC 2010

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

PlantSimLab An Innovative Web Application Tool for Plant Biologists

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

How do the shapes grow or shrink? What parts can we compare? How can we write the comparison? CPM Materials modified by Mr. Deyo

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

5.2. Exploring Quotients of Polynomial Functions. EXPLORE the Math. Each row shows the graphs of two polynomial functions.

5.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 information

Verification of Parameterized Concurrent Programs By Modular Reasoning about Data and Control

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

Professional. 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. 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 information

SUPPLEMENTAL MATERIAL: Co-Constrained Handles for Deformation in Shape Collections

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

A Practical Optional Type System for Clojure. Ambrose Bonnaire-Sergeant

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

CS 664 Segmentation. Daniel Huttenlocher

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

PROGRAMMING IN HASKELL. Chapter 2 - First Steps

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

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

Table of contents. Jakayla Robbins & Beth Kelly (UK) Precalculus Notes Fall / 27

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

Precise and Accurate Patch Presence Test for Binaries

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

Probabilistic Robotics

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

Parsing Techniques. CS152. Chris Pollett. Sep. 24, 2008.

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

Chapter 5. Software Tools

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

Geometry Activity: Segment and Shape Construction. CALCULATORS: Casio: ClassPad 300 Texas Instruments: TI-89, TI-89 Titanium

Geometry 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 [MS-RDPECLIP]: Remote Desktop Protocol: Clipboard Virtual Channel Extension Intellectual Property Rights Notice for Open Specifications Documentation Technical Documentation. Microsoft publishes Open Specifications

More information

Module 05 User Interfaces. CS 106 Winter 2018

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

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

A Domain-Customizable SVG-Based Graph Editor for Software Visualizations

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

To Store or Not To Store

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

Graphical Constraints in CoDraw

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

ODK Tables Graphing Tool

ODK 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