Christopher Scaffidi
Personal Homepage:
web.engr.oregonstate.edu/~cscaffid/Christopher Scaffidi is currently an Assistant Professor of Computer Science in the School of EECS at Oregon State University. His research interests are where human-computer interaction and software engineering intersect. Most of his current projects aim to help software users to create code for themselves, and to effectively share that code with one another.
He is presently serving as Director of the EUSES Consortium, an international association of seven universities and one company. He was Co-chair for the Poster/Work-in-progress track at the 2009 International Symposium on End-User Development and is on the program committee for the 2010 ACM SIGCHI Symposium on Engineering Interactive Computing Systems. He is a member of the ACM and IEEE.
Publications by Christopher Scaffidi (bibliography)
Burnett, Margaret M. and Scaffidi, Christopher (2011). Encyclopedia chapter titled "End-User Development". Retrieved 14 December 2011 from Interaction-Design.org: http://www.interaction-design.org/encyclopedia/end-user_development.html
Ko, Andrew J., Abraham, Robin, Beckwith, Laura, Blackwell, Alan, Burnett, Margaret M., Erwig, Martin, Scaffidi, Christopher, Lawrance, Joseph, Lieberman, Henry, Myers, Brad A., Rosson, Mary Beth, Rothermel, Gregg, Shaw, Mary and Wiedenbeck, Susan (2011): The State of the Art in End-User Software Engineering. In ACM Computing Surveys, 43 (3) pp. 1-44.
Most programs today are written not by professional software developers, but by people with expertise in other
domains working towards goals for which they need computational support. For example, a teacher might write
a grading spreadsheet to save time grading, or an interaction designer might use an interface builder to test some
user interface design ideas. Although these end-user programmers may not have the same goals as professional
developers, they do face many of the same software engineering challenges, including understanding their requirements,
as well as making decisions about design, reuse, integration, testing, and debugging. This article
summarizes and classifies research on these activities, defining the area of End-User Software Engineering
(EUSE) and related terminology. The article then discusses empirical research about end-user software engineering
activities and the technologies designed to support them. The article also addresses several crosscutting
issues in the design of EUSE tools, including the roles of risk, reward, and domain complexity, and self-efficacy
in the design of EUSE tools and the potential of educating users about software engineering principles.
© All rights reserved Ko et al. and/or ACM Press
Myers, Brad A., Burnett, Margaret M., Ko, Andrew J., Rosson, Mary Beth, Scaffidi, Christopher and Wiedenbeck, Susan (2010): End user software engineering: CHI 2010 special interest group meeting. In: Proceedings of ACM CHI 2010 Conference on Human Factors in Computing Systems 2010. pp. 3189-3192.
End users create software whenever they create, for instance, interactive web pages, games, educational simulations, or spreadsheets. Researchers are working to bring the benefits of rigorous software engineering methodologies to these end users to try to make their software more reliable. Unfortunately, errors are pervasive in end-user software, and the resulting impact is sometimes enormous. This special interest group meeting will bring together the community of researchers who are addressing this topic with the companies that are creating and using end-user programming tools.
© All rights reserved Myers et al. and/or their publisher
Scaffidi, Christopher, Bogart, Christopher, Burnett, Margaret M., Cypher, Allen, Myers, Brad A. and Shaw, Mary (2010): Using traits of web macro scripts to predict reuse. In J. Vis. Lang. Comput., 21 (5) pp. 277-291.
Scaffidi, Christopher (2010): Sharing, finding and reusing end-user code for reformatting and validating data. In J. Vis. Lang. Comput., 21 (4) pp. 230-245.
Scaffidi, Christopher, Myers, Brad A. and Shaw, Mary (2009): Intelligently creating and recommending reusable reformatting rules. In: Proceedings of the 2009 International Conference on Intelligent User Interfaces 2009. pp. 297-306.
When users combine data from multiple sources into a spreadsheet or dataset, the result is often a mishmash of different formats, since phone numbers, dates, course numbers and other string-like kinds of data can each be written in many different formats. Although spreadsheets provide features for reformatting numbers and a few specific kinds of string data, they do not provide any support for the wide range of other kinds of string data encountered by users. We describe a user interface where a user can describe the formats of each kind of data. We provide an algorithm that uses these formats to automatically generate reformatting rules that transform strings from one format to another. In effect, our system enables users to create a small expert system called a "tope" that can recognize and reformat instances of one kind of data. Later, as the user is working with a spreadsheet, our system recommends appropriate topes for validating and reformatting the data. With a recall of over 80% for a query time of under 1 second, this algorithm is accurate enough and fast enough to make useful recommendations in an interactive setting. A laboratory experiment shows that compared to manual typing, users can reformat sample spreadsheet data more than twice as fast by creating and using topes.
© All rights reserved Scaffidi et al. and/or their publisher
Scaffidi, Christopher, Myers, Brad A. and Shaw, Mary (2009): Fast, Accurate Creation of Data Validation Formats by End-User Developers. In: Pipek, Volkmar, Rosson, Mary Beth, Ruyter, Boris E. R. de and Wulf, Volker (eds.) End-User Development - 2nd International Symposium - IS-EUD 2009 March 2-4, 2009, Siegen, Germany. pp. 242-261.
Scaffidi, Christopher (2009). Topes: Enabling End-User Programmers to Validate and Reformat Data, PhD Dissertation, Technical Report CMU-ISR-09-105. Institute for Software Research (ISR), Carnegie Mellon University
Millions of people rely on software for help with everyday tasks. For example, a
teacher might create a spreadsheet to compute grades, and a human resources worker might
create a web form to collect contact information from co-workers.
Yet, too often, software applications offer poor support for automating certain activities, which people must do manually. In particular, many tasks require validating and reformatting short human-readable strings drawn from categories such as company names and
employee ID numbers. These string-containing categories have three traits that existing applications do not reflect. First, each category can be multi-format in that each of its instances
can be written several different ways. Second, each category can include questionable values
that are unusual yet still valid. During user tasks, such strings often are worthy of doublechecking, as they are neither obviously valid nor obviously invalid. Third, each category is
application-agnostic in that its rules for validating and reformatting strings are not specific to
one software application—rather, its rules are agreed upon implicitly or explicitly by members of an organization or society.
For example, a web form might have a field for entering Carnegie Mellon office
phone numbers like “8-3564” or “412-268-3564”. Current web form design tools offer no
convenient way to create code for putting strings into a consistent format, nor do they help
users create code to detect inputs that are unusual but maybe valid, such as “7-3564” (since
our office phone numbers rarely start with “7”).
In order to help users with their tasks, this dissertation presents a new kind of abstraction called a “tope” and a supporting development environment. Each tope describes how to
validate and reformat instances of a data category. Topes are sufficiently expressive for creating useful, accurate rules for validating and reformatting a wide range of data categories commonly encountered by end users. By creating and applying topes, end users can validate and
reformat strings more quickly and effectively than they can with currently-practiced techniques. Tope implementations are reusable across applications and by different people, highlighting the leverage provided by end-user programming research aimed at developing new
kinds of application-agnostic abstractions. The topes model demonstrates that such abstractions can be successful if they model a shallow level of semantics, thereby retaining usability
without sacrificing usefulness for supporting users’ real-world goals
© All rights reserved Scaffidi and/or his/her publisher
Scaffidi, Christopher, Bogart, Christopher, Burnett, Margaret M., Cypher, Allen, Myers, Brad A. and Shaw, Mary (2009): Predicting reuse of end-user web macro scripts. In: IEEE Symposium on Visual Languages and Human-Centric Computing - VL/HCC 2009 20-24 September, 2009, Corvallis, OR, USA. pp. 93-100.
Scaffidi, Christopher, Myers, Brad A. and Shaw, Mary (2008): Toped: enabling end-user programmers to validate data. In: Proceedings of ACM CHI 2008 Conference on Human Factors in Computing Systems April 5-10, 2008. pp. 3519-3524.
Inputs to spreadsheets and web forms often contain typos or other errors. However, existing tools require end-user programmers (EUPs) to write regular expressions or even scripts to validate data, which is slow and error-prone. We present a new technique enabling EUPs to describe data as a series of constrained parts. We incorporate our technique in a prototype tool called Toped, which generates validation code for Excel and web forms. Our technique enables EUPs to validate data more quickly and accurately than with existing techniques, finding 90% of invalid inputs in a lab study.
© All rights reserved Scaffidi et al. and/or ACM Press
Bogart, Christopher, Burnett, Margaret M., Cypher, Allen and Scaffidi, Christopher (2008): End-user programming in the wild: A field study of CoScripter scripts. In: VL-HCC 2008 - IEEE Symposium on Visual Languages and Human-Centric Computing 15-19 September, 2008, Herrsching am Ammersee, Germany. pp. 39-46.
Koesnandar, Andhy, Elbaum, Sebastian G., Rothermel, Gregg, Hochstein, Lorin, Scaffidi, Christopher and Stolee, Kathryn T. (2008): Using assertions to help end-user programmers create dependable web macros. In: Harrold, Mary Jean and Murphy, Gail C. (eds.) Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of Software Engineering November 9-14, 2008, Atlanta, Georgia, USA. pp. 124-134.
Web macros give web browser users ways to "program" tedious tasks, allowing those tasks to be repeated more quickly and reliably than when performed by hand. Web macros face dependability problems of their own, however: changes in websites or failure on the part of end-user programmers to anticipate possible macro behaviors can cause macros to act incorrectly, often in ways that are difficult to detect. We would like to provide at least some of the benefits of software engineering methodologies to the creators of web macros. To do this we adapt assertions to web-macro programming scenarios. While assertions are well-known to professional software engineers, our web macro assertions are unique in their focus on website evolution, are generated automatically, and encode the expectations and assumptions of a rapidly growing group of users who often have limited formal programming expertise. We have integrated our techniques for assertion generation and evaluation into a web macro tool, and performed an empirical study investigating its use. Our results show that the assertions can help web macro users detect macro failures and correct macro faults.
© All rights reserved Koesnandar et al. and/or ACM Press
Scaffidi, Christopher, Cypher, Allen, Elbaum, Sebastian G., Koesnandar, Andhy and Myers, Brad A. (2008): Using scenario-based requirements to direct research on web macro tools. In J. Vis. Lang. Comput., 19 (4) pp. 485-498.
Scaffidi, Christopher, Cypher, Allen, Elbaum, Sebastian G., Koesnandar, Andhy and Myers, Brad A. (2007): Scenario-Based Requirements for Web Macro Tools. In: VL-HCC 2007 - IEEE Symposium on Visual Languages and Human-Centric Computing 23-27 September, 2007, Coeur dAlene, Idaho, USA. pp. 197-204.
Scaffidi, Christopher (2007): A Lightweight Model for End Users' Data: Progress and Future Work. In: VL-HCC 2007 - IEEE Symposium on Visual Languages and Human-Centric Computing 23-27 September, 2007, Coeur dAlene, Idaho, USA. pp. 268-269.
Scaffidi, Christopher, Ko, Andrew Jensen, Myers, Brad A. and Shaw, Mary (2006): Dimensions Characterizing Programming Feature Usage by Information Workers. In: VL-HCC 2006 - IEEE Symposium on Visual Languages and Human-Centric Computing 4-8 September, 2006, Brighton, UK. pp. 59-64.
Scaffidi, Christopher (2006): A Lightweight Model for End Users' Domain-Specific Data. In: VL-HCC 2006 - IEEE Symposium on Visual Languages and Human-Centric Computing 4-8 September, 2006, Brighton, UK. pp. 242-243.
Scaffidi, Christopher, Shaw, Mary and Myers, Brad A. (2005): Estimating the Numbers of End Users and End User Programmers. In: VL-HCC 2005 - IEEE Symposium on Visual Languages and Human-Centric Computing 21-24 September, 2005, Dallas, TX, USA. pp. 207-214.
Show this list on your homepage
Knowledge wants to be free !
We have decided to give away world-class educational materials
because we believe that universal access to high quality education is key to the building
of peace, sustainable social and economic development, and intercultural dialogue.
To calculate just have much we have saved you, our wonderful readers, we compare our free encyclopedia to two
books we love:
$110: Human-Computer Interaction by Dix et al (a great textbook but without video interviews)
$116: Shneiderman's Designing the User Interface
(a great textbook but without video interviews).
As you are reading our encyclopedia on your iPad/tablet (and saving a few trees), we estimate that the price would be $90 if sold as an eBook.
With that number, we can calculate how much money we have saved our readers, based on calculating the number of readers.
How we calculate readership
Because of our online and tablet/iPad approach to publishing, we are able to precisely measure reading behaviour across hundreds of parameters in realtime: Anything from reading
speed, drop-off points in the text, reader demographics, and much more.
Based on our server logs and the Google Analytics API,
we calculate the number of readers as described in the calculation method below.
A reader is not the same as a simple pageview and a reader is not the same as a
website visitor (as described in our calculation method below).
We calculate readership for two types of readers:
- Readers that have read our whole encyclopedia, much the same way you read a printed book
- Readers that have reader an individual chapter
Calcalution method: How we define a reader
- First we use the Google Analytics API to get a report of the number of unique human visitors to a chapter/page. Google runs its business on ads and thus completely relies on the ability to distinguish between a human visitor and an automated request. If not, you could earn millions on automating clicks on Google Ads.
- We then compare that number to our Apache webserver logs, which report the much higher number of actual visits to a chapter/page (both human and automated). We calculate the difference in percent, which we call an "exaggeration factor", which we use in step 6 below.
- With a large part of the visitors excluded, we further exclude any visitor who:
- has not remained on the page for at least 3 minutes (this factor is calculated by recording visit durations of 1000 randomly selected visitors) or has not printed the page (i.e. has not visited the printerfriendly version of the chapter/page)
- has not scrolled the page (this factor is calculated by recording scroll movements on 1000 randomly selected visitors)
- We then further exclude "double readers", i.e. readers who read a portion of a chapter and then returns in,
say, a week or a month to read the rest.
Although this person's reading activity spans multiple server sessions, the person is only counted as a single reader.
We categorize a "double reader" as a visitor who:
- visits a page, or multiple pages, across multiple server sessions
- qualifies to be defined as a reader, cf step 1-3 above, in all server sessions
- uses the same originating IP address
- We then subtract 5% from the final number to counter-balance a last remaining factor, namely the situation where one reader reads a chapter on his/her tablet
using a WiFi connection (and counted as one reader) but then picks up his other tablet using a 3G dongle
(with another IP address) and re-reads some of the chapter. That will equal two readers, not one. We have no way
of calculating how many times this situation arises, but to be on the safe side we subtract 5%
from the final number.
- We then take half of the "exaggeration factor" from step 2 and substract from the final number. We do this for no rational reason. We do it only as a further measure to be certain that our number of readers is not inflated.
- To qualify as a reader who has read our whole encyclopedia - much the same way you read a printed book - that person must have qualified as a reader (cf. 1-6 above) of at least 80% of the encyclopedia chapters.
As a result, we have eliminated everything from automated requests to the more casual visitors. That leaves us with what we can safely call readers.
Changes to this page (author)
27 Oct 2011: Author was edited 27 Oct 2011: Author was edited 12 Jul 2011: Author was edited
20 Apr 2011: Author was edited
14 Apr 2011: Author was edited
14 Apr 2011: Author was edited
14 Apr 2011: Author was edited
14 Apr 2011: Author was edited
14 Apr 2011: Author was edited
14 Apr 2011: Author was edited
30 Jan 2011: Author was edited
02 Nov 2010: Author was edited
04 Oct 2010: Page was edited
04 Oct 2010: Added a picture of Christopher Scaffidi
04 Oct 2010: Page was edited
26 Feb 2010: Enabled abstracts to be shown on Christopher Scaffidi's author page.
17 Jun 2009: Author was edited
16 Jun 2009: Author was edited
16 Jun 2009: Author was edited
16 Jun 2009: Author was edited
16 Jun 2009: Author was edited
16 Jun 2009: Author was edited
02 Jun 2009: Author was edited
12 May 2008: Author was added to the bibliography
Page Information
Page maintainer:
The Editorial TeamHow to cite/reference this page
URL: http://www.interaction-design.org/references/authors/christopher_scaffidi.html