1 Oregon State University

Slides:



Advertisements
Similar presentations
Configuration management
Advertisements

Executional Architecture
CS 3500 SE - 1 Software Engineering: It’s Much More Than Programming! Sources: “Software Engineering: A Practitioner’s Approach - Fourth Edition” Pressman,
What is Android? Android is among the most popular operating systems aimed towards mobile devices such as smartphones, and is currently the most widely.
Unit 1 – Improving Productivity Tyler Dunn Instructions ~ 100 words per box.
Introduction CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
Introduction CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
Usability Evaluation, part 2. REVIEW: A Test Plan Checklist, 1 Goal of the test? Specific questions you want to answer? Who will be the experimenter?
Tool Bars Outlook 2010 The Basics. Address Book  Allows you to find anyone who has a district account  It works just like a search engine.
Introduction CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
RESEARCH DESIGN EXPERIMENT ON WRITING BY: GUADALUPE CASTRO.
LondonTube: Overcoming Hidden Dependencies in Cloud-Mobile-Web Programming Christopher Scaffidi 1, Andrew Dove 2, Tahmid Nabi 1 1 Oregon State University.
Good morning and thank you for coming to the Summer Institute!
Module: Software Engineering of Web Applications Dr. Samer Odeh Hanna 1.
Genie Pal A Versatile Intelligent Assistant To Help Both Work And Personal life.
Introduction to CSCI 1311 Dr. Mark C. Lewis
AP CSP: Pixelation – B&W/Color Images
Computers and Programming
Creativity of Algorithms & Simple JavaScript Commands
with a few tips and tools for managing mail
PeerWise Student Instructions
Component 1.6.
OPERATING SYSTEMS CS 3502 Fall 2017
Decision Making: Decision Tree & State Machines Session 07
CSC207 Fall 2016.
The Client/Server Database Environment
Teacher Configurable Coding Challenges for Block Languages
Module: Software Engineering of Web Applications
CompSci 230 Software Construction
Maths Space Gladys Nzita-Mak.
Lesson 5-2 AP Computer Science Principles
Designing Effective Adaptations for All Students
Computer Programming I
UNIT 3 – LESSON 5 Creating Functions.
CS101 Introduction to Computing Lecture 19 Programming Languages
Automated Pattern Based Mobile Testing
Usability Evaluation, part 2
Christopher Scaffidi Center for Applied Systems and Software
Peer Instruction and Just in Time Teaching Marion Birch & Niels Walet School of Physics and Astronomy.
Introduction CSE 1310 – Introduction to Computers and Programming
#01 Client/Server Computing
Taking an Iteration Down to Code
High Frequency Words. High Frequency Words a about.
Title: Validating a theoretical framework for describing computer programming processes 29 November 2017.
Lecture 6 Structured Interviews and Instrument Design Part II:
MVC Framework, in general.
Requirements – Scenarios and Use Cases
VISUAL BASIC.
Ch 15 –part 3 -design evaluation
Module: Software Engineering of Web Applications
Relational Algebra Chapter 4, Sections 4.1 – 4.2
Helen Jefferis, Soraya Kouadri & Elaine Thomas
Module: Software Engineering of Web Applications
Interactive Medium-Fi Prototype
Why Threads Are A Bad Idea (for most purposes)
Selecting a Sample Notes
NEPf-Aligned Student Perception Survey Implementation
Helping you make your code better
User ScenarIOS.
Helpful Hints and Tricks
Why Threads Are A Bad Idea (for most purposes)
Why Threads Are A Bad Idea (for most purposes)
Welcome to Grant Tracker!
Chapter 1 The Science of Biology
Report from the trenches of an HTML5 game provider
Martin Rinard, Jiasi Shen, Varun Mangalick
#01 Client/Server Computing
ZOOM VIDEO CONFERENCING: RECORDING YOUR SESSION
ZOOM VIDEO CONFERENCING: RECORDING YOUR SESSION
What Can It Do For You? Spira | #InflectraCon
Presentation transcript:

1 Oregon State University Support for learning while debugging in a distributed visual programming language Laxmi Ganesan 1, Christopher Scaffidi 1 , Andrew Dove 2 1 Oregon State University 2 National Instruments

Health scientists have often requested help with creating cloud-mobile-web apps Motivated creation of a new distributed visual programming language, London Tube… Colleagues have asked for me or my students to implement apps that track physical activity, diet, sleep habits, location, lung function and many other aspects of physical health and behavior. Such a system typically reads data from mobile devices to a database on the cloud, then displays information in a browser. This got me wondering why this is so hard and whether it might be possible for health scientists to create some of these apps for themselves. Scaffidi, C., Dove, A., and Nabi, T. (2016). LondonTube: Overcoming Hidden Dependencies in Cloud-Mobile-Web Programming,  ACM SIGCHI Conference on Human Factors in Computing Systems (CHI'16), 3498-3508.

LondonTube example program The result was LondonTube. Here you see another example program. This one records the accelerometer every 60 seconds, sends it to a database on the cloud, and then plots these data on a chart when requested by a browser. The three big blue boxes explicitly indicate which code runs on the mobile device, which on the server, and which in the browser. Greenish-yellow lines between boxes explicitly indicate the flow of data between these components. Blue lines within a given box indicate the flow of data among computational elements. Scaffidi, C., Dove, A., and Nabi, T. (2016). LondonTube: Overcoming Hidden Dependencies in Cloud-Mobile-Web Programming,  ACM SIGCHI Conference on Human Factors in Computing Systems (CHI'16), 3498-3508.

Time taken in earlier study to implement that simple read-store-display application (minutes)   Traditional tools LondonTube CS undergraduate 240 * 9 CS graduate 8 Non-CS undergraduate N/A **  Non-CS graduate N/A ** We were happy to see that LondonTube users completed the task in less than 10 minutes. They never ran into major problems. They combined together the concepts covered by the tutorial and generally proceeded right to a working program. On the other hand, even though the other two students had taken an entire course from me, 10 weeks, they not only took the full 4 hours allowed by the study, but they didn't even finish the program. Now, they had each created a class project more complex than this programming task. But when our students go home, I don't think we always know how long they take on homework. These data show how hard projects are with traditional tools. * = didn't finish ** = didn't try Scaffidi, C., Dove, A., and Nabi, T. (2016). LondonTube: Overcoming Hidden Dependencies in Cloud-Mobile-Web Programming,  ACM SIGCHI Conference on Human Factors in Computing Systems (CHI'16), 3498-3508.

Over 2/3 were about how to use LondonTube! Proportions of questions asked by LondonTube participants during tutorial or task Over 2/3 were about how to use LondonTube! Networking, 29% I know this because I kept track of what questions the students asked during the tutorial and during the task. And when students asked a question, I went over and looked at their code. So I could see what they were struggling to accomplish. When they asked a question during the tutorial, I answered it. When they asked a question during the task, I didn't tell the answer unless it was just a request for clarification of the programming task. That way, each student was on his or her own for the actual programming. My graduate student and I categorized the participants’ questions after the study. So here you can see in black that students with LondonTube and students with traditional tools both asked a lot of questions about Choosing—either choosing which LondonTube boxes to drag and drop from the palette, or choosing which API to invoke. But although the LondonTube users asked a few questions about networking, about loops, and about why the language was designed the way it was, they didn't ask any questions about parallel programming. Those with traditional tools did ask a lot about asynchronous code and passing data between machines. Many of these questions would be superfluous in LondonTube: the notation makes these aspects of the code explicit, as we had intended. Operators Scaffidi, C., Dove, A., and Nabi, T. (2016). LondonTube: Overcoming Hidden Dependencies in Cloud-Mobile-Web Programming,  ACM SIGCHI Conference on Human Factors in Computing Systems (CHI'16), 3498-3508.

Learning becomes even harder when debugging a program closer to realistic size! The result was LondonTube. Here you see another example program. This one records the accelerometer every 60 seconds, sends it to a database on the cloud, and then plots these data on a chart when requested by a browser. The three big blue boxes explicitly indicate which code runs on the mobile device, which on the server, and which in the browser. Greenish-yellow lines between boxes explicitly indicate the flow of data between these components. Blue lines within a given box indicate the flow of data among computational elements.

New features aimed at easing debugging with the objective of easing learning Trace: Track how often each node has executed Flag each node with colored indicators Green (executed), Yellow (not part of running program) Orange (executing), Red (never executed) Analyze: Check for missing wires Green (all attached), Yellow (optional is missing), Red (required is missing) Combine and explain Show "most bad" color from Trace and Analyze Provide tooltip to explain in detail

Between-subjects evaluation Participants 8 undergraduates in computer science Typical of relatively low-experience research assistants Procedure Tutorial: 3-hours, 13 tasks, similar to prior work Complex, very realistic programming task Read 3 types of data, store and analyze, construct multi-widget GUI Measurements Questionnaire on usability and debugging features Time taken to complete programming task Record questions asked, look for improvement

Usability ratings: 26 of 36 beat baseline Below: # of treatment ratings that exceeded corresponding control average Time: 138 vs 76 minutes (2 from each group finished)

Questions asked by participants Distribution by topic (open coding) Treatment vs control (reduction where hoped)

Discussion Small features that support debugging can aid programmers’ learning of a language Areas for improvement noted Further details to user beyond tooltips Enhancements of colors and iconography Empirical studies of generalizability to other languages National Instruments identified commercializable elements within LondonTube Watch for code and ideas in future SystemLink release www.ni.com/en-us/landing/systems-management-software.html

Proportions of questions asked by participants during tutorial or task Networking, 29% I know this because I kept track of what questions the students asked during the tutorial and during the task. And when students asked a question, I went over and looked at their code. So I could see what they were struggling to accomplish. When they asked a question during the tutorial, I answered it. When they asked a question during the task, I didn't tell the answer unless it was just a request for clarification of the programming task. That way, each student was on his or her own for the actual programming. My graduate student and I categorized the participants’ questions after the study. So here you can see in black that students with LondonTube and students with traditional tools both asked a lot of questions about Choosing—either choosing which LondonTube boxes to drag and drop from the palette, or choosing which API to invoke. But although the LondonTube users asked a few questions about networking, about loops, and about why the language was designed the way it was, they didn't ask any questions about parallel programming. Those with traditional tools did ask a lot about asynchronous code and passing data between machines. Many of these questions would be superfluous in LondonTube: the notation makes these aspects of the code explicit, as we had intended. Scaffidi, C., Dove, A., and Nabi, T. (2016). LondonTube: Overcoming Hidden Dependencies in Cloud-Mobile-Web Programming,  ACM SIGCHI Conference on Human Factors in Computing Systems (CHI'16), 3498-3508.