130 likes | 291 Views
Supporting Reuse of EUP Code Experiences with CoScripter and topes. Christopher Scaffidi Mary Shaw Carnegie Mellon University. Supporting Reuse of End-User Code. Compared to writing code from scratch, reuse can… Be faster Be less error-prone Require less learning
E N D
Supporting Reuse of EUP CodeExperiences with CoScripter and topes Christopher Scaffidi Mary Shaw Carnegie Mellon University
Supporting Reuse of End-User Code Compared to writing code from scratch, reuse can… • Be faster • Be less error-prone • Require less learning But empirical studies of end-user programmers often report low levels of reuse. • What features does a programming platform need in order to support reuse? • What are the traits of highly reusable code? • How can we support reuse in the topes environment?
CoScripter macros--platform features intended to support reuse Mentioned in IBM’s 2008 CHI paper: • Inspectability & try-it-out-ability • English-like syntax • Secondary notation / comments • Easily editable • Hooks for semi-automation • Mixed initiative • Personal database • Repository for supporting reuse • Standard keyword search • Can suggest scripts for users
CoScripter macros--more likely to be reused if they have certain traits Accuracy (recall) Number of reuse events 4 kinds of reuse 3 kinds of reuse Rate of false positive(predicting reuse when a script is not reused) Number of traits • Predicting reuse based on script traits, eg: • Use of English-language websites • Mixed-initiative instructions • Comments in the script • Certain keywords For more info: ask for our ICSE’09 paper
The tope development environmenthas similar (tope-appropriate) features • Inspectability and try-it-out-ability • UI presents English-like sentences to users • Secondary notation: users can embed examples • Easily editable: drag & drop UI; auto-gen reformatting • Hooks for semi-automation • Overridable error messages at runtime • Whitelists: add exceptional strings at runtime • Repository • Integration with tope editor • Can copy & paste formats from tope to tope • Tope recommendation algorithm New! New! New! New! New! New! For more info: ask for our ISEUD’09 and IUI’09 papers
How to validate reusability of topes?Question #1 of 2 • Probably obvious: users can download & reuse topes • User study seems superfluous • Probably unlikely: download & do fancy recombining • How long do most people need to use Excel before they can reliably combine two spreadsheets? • Requires expertise well beyond walk-up-and-use • Probably same with topes • So how to validate if usual lab experiment isn’t appropriate? Questions for discussion
What features ensure reusability?Questions #2a & 2b • In general, are these platform features necessary & sufficient for reusability?... • Inspectability & try-it-out-ability • Hooks for semi-automation • Repository with recommendation features • Can we predict reuse of other kinds of programs? • JavaScripts? • Spreadsheets? • All the other good kinds of programs mentioned in our most recent NSF proposal? Questions for discussion
Thank You… • …to EUSES for the opportunity to present • …to many people for helpful suggestions • …to NSF and EUSES for funding
Tope implementation editor (Toped)To users, a tope is called a “data description”