Burnett: Surprise-Explain-Reward strategy to harness users' curiosity and help them discover useful approaches,
Information Foraging Theory to help user's find information most effectively,
Gender Studies to help explain and solve gender differences in technology and
Machine Learning Debugging to effectively help the user solve problems with the assistance of machine learned programs.
Rosson: Real situations & communities to help end-user programmers
Wiedenbeck & Burnett: Gender differences in end-user software engineering and improving end-user software to support both genders.
Blackwell: Model of attention investment: How users decide to use
programming features
Cypher: Programming by demonstration and end-user programming.
Jensen: Advancing understanding of how computer systems affect decision-making
Devices to Increase End User Effectiveness
Myers: Empirical studies about software development and productivity tools to help with debugging, editing, design and task management.
Shaw: Helping end users create, share, and use data abstractions to improve programs' quality
Elbaum: Fault detection in web software through statistical,
heuristic, machine learning
Niess, Wortmann: Developing teachers' technology pedagogical content knowledge: preparing teachers to guide their students in designing dependable spreadsheets/software applications while also encouraging them to use technology as a learning tool within a context of a quality-control culture.
Constituent Technologies
This project builds on and contributes to our work on the following
constituent technologies:
The word 'mashup' may bring to mind references to the popular television show,
GLEE,
in which two or more songs or rhythms are combined to create a more interesting, catchier
tune. In fact, this same concept is being applied to the web, where thousands of end users
are remixing data sources to create more interesting and relevant data for use by themselves
and their communities.
Imagine reading news from the New York Times,
CNN.com, CBS, and MSNBC,
where the articles only interest you, and you never have to switch to a different website. Or imagine
searching for a new house using only one website that aggregates data from every realtor in your area onto one map.
That's the power of a mashup.
Mashup programming environments are popping up to help end users to create mashups that
tailor and individualize data streams. This means that the power of creation is in
the hands of the end user. However, the mashups created by end users are often littered with
errors and deficiencies that can make them error-prone and hard to understand. Further, users often
'reinvent the wheel' by creating mashups that have the same functionality as mashups created by other users.
We have designed techniques to simplify the structures of mashups
and make them easier to understand, as can be shown by the
mashups in the figures below, which were built in the
Yahoo! Pipes environment. A more understandable and simpler structure, such as the mashup shown on the right,
can lead to increased reuse and protect against common errors from external components, such as websites that no longer exist.
We have designed a tool prototype (grey bar at the bottom of the images) that identifies common errors in the mashup being viewed or created by a user and automatically
restructures the mashup to address the issues.
Our techniques can be applied to many environments that have the structure of a 'pipe-like mashup' where there
are many data sources that create an output. Our study results show that the new mashups are easier for users to understand, easier to maintain,
and more preferable among end users.
For more information, including more screenshots and sample code, contact
Sebastian Elbaum or
Kathryn Stolee at the University of Nebraska-Lincoln.
When we say "spreadsheet", we often think of users doing calculations. But, in fact,
many people just use spreadsheets as a
place to organize and store textual data like phone numbers and university
room numbers. These same kinds of data show up in many end-user programs, including
web applications created through Visual
Studio Express Edition or web macros created through
CoScripter.
These textual strings often contain typos and other errors. For example, "KED 1148"
isn't a valid university room number that should be "KEC 1148". Excel doesn't even
recognize that phone numbers never end with "11". Since Excel and other tools don't
know about these domain-specific kinds of data, they can't find the errors.
So we decided to teach Excel some new tricks--or, more specifically,
we provided a new data model that ordinary end users can use to teach Excel about
domain-specific data.
This new data model is called "topes", and it not only describes how to find typos,
but it also enables end users to automatically reformat data. For example, given
a tope for university room numbers, Excel could quickly reformat thousands of strings
like "KEC 1148" so that they look like "Kelley Engineering Center 1148".
Once a user has taught Excel how to recognize a new kind of data, the model can
be saved and loaded into other end-user programming tools so that they, too, can
"speak the user's language". For example, we have
worked with IBM to integrate topes into a new programming tool called Vegemite
that enables users to rapidly download and manipulate data from the web. We are
now working with two other companies who want to integrate topes into decision-support
software in 2010.
For more information, including more screenshots and sample code, contact
Chris Scaffidi at Oregon State University.
End-User Software Engineering & WYSIWYT applied to spreadsheets
(see papers co-authored by Burnett, Cook,
and/or Rothermel.)
Thumbnail (Click for full-sized image)
Description
The WYSIWYT (What You See is What You Test) testing approach. Cell
borders reflect the "testedness" of cells. Users indicate "testing
decisions" by placing checkmarks.
Fault localization support in the WYSIWYT approach. Cell interiors
indicate all cells that might contain errors, with darker colors
corresponding to increased likelihood. This feedback is triggered
when the user notices bad values.
Assertions "guard" the values in cells. User-entered assertions
are propagated through the spreadsheet as system assertions. These
system assertions are compared with user-entered assertions. Conflicting
assertions indicate the presence of errors, and are circled. Values
outside assertion ranges are also circled.
The "Whyline" System
(see papers co-authored by Myers and Ko)
Thumbnail (click for full-sized image)
Description
The Whyline's answer to a question. The programmer expected Pac
to resize when Pac touched the Ghost, but the resize didn't seem
to happen. The programmer asked, 'Why didn't Pac resize 0?' and the
Whyline revealed that the resize did in fact happen, but had no effect
on-screen. This helped the programmer isolate the problem to the
resize statement and ignore other parts of the code that were correct.
The "UCheck" System
(see papers co-authored by Erwig)
Thumbnail (click for full-sized image)
Description
The UCheck system can automatically detect errors in spreadsheet formulas by
reasoning about the units of values in the spreadsheet. The unit information is
automatically inferred from labels and headers that are contained in a spreadsheet, which
allows communication about errors with the user's vocabulary.
The "ViTSL/Gencel" System
(see papers co-authored by Erwig)
Thumbnail (click for full-sized image)
Description
The ViTSL/Gencel system is based on the idea to anticipate the possible
evolutions of a spreadsheet and capture a class of spreadsheets in a template. A
program generator will then create an initial spreadsheet together with customized
update operations for such a template. These customized update operations allow users
to edit the created spreadsheet while ensuring that no reference, range, or type
errors can be introduced into the spreadsheet.
Templates are created with an editor, called ViTSL, which is similar to Excel,
but offers additional functionality to specify templates. These templates can then be loaded
into the Gencel system, which is implemented as an extension to Excel, and allows the safe,
error-free editing of spreadsheets.