Web pages and most other things created for computers are interactive, in that they respond to what people do with them. They have animations, buttons that cause information to change, and game characters that move around under a person's control. Creating these "interactive behaviors" has usually required writing programs, usually in a conventional programming language such as C++, JavaScript, or Adobe's Flash. However, this is a barrier to the vast majority of people who do not know how to program. In particular, there is a large class of people, often called "interaction designers", who are trained in how to make more aesthetic and usable interactive behaviors, but who are not professional programmers, and therefore cannot create these parts by themselves. Research shows that they do identify programming as the main barrier to creating and improving interactive behaviors. One reason that it is important that interaction designers be able to create the behaviors themselves is because by quickly creating, trying out and modifying the behaviors, they are able to creatively explore and develop new and better designs.

The ultimate goal of this research is to provide a new tool that enables interaction designers and other non-professional programmers to create systems with interactive behaviors in a more natural way. To achieve this, investigators will first study how designers and other people think about interactive behaviors. This will provide insight about how such behaviors can be expressed more "naturally", which means how a person can instruct a computer in a way that is close to the way the person is thinking about the desired result. Preliminary studies show that designers do not think about behaviors in the same way as professional programmers. Next, the investigators will use this knowledge about the natural expressions to create a new authoring tool which will make it much easier for designers to create their own interactive behaviors. The initial design for the tool uses techniques that are familiar to designers, such as the drawing model of programs such as Adobe Photoshop or Microsoft PowerPoint, the computation style of spreadsheets such as Microsoft Excel, and the event-based style (such as: "when a bullet intersects a spaceship, then the spaceship should start the blowing-up animation"), which has been found to be a natural way to express these behaviors. The result will be new knowledge and tools that will make programming more accessible to more people, and thus broaden the range of people who can program, while specifically enabling interaction designers to create their own behaviors.

Project Report

While there are many tools to create static web pages, if the user wants the web page to be interactive (beyond simple hyperlinks), then the user generally needs to write complex JavaScript code. Our project has successfully created a variety of tools that help users more easily explore and create interactive applications. The primary contributions are embodied in a prototype tool called InterState, which provides a novel way to express interactive behaviors. It is based on a combination of the spreadsheet model, for expressing constraints (relationships that the system maintains, like spreadsheet formulas) along with a state transition model, which determines under what circumstances each constraint is active. Studies show that this is an effective way to author interactive behaviors. We found that participants were twice as fast at understanding and modifying graphical user interface components when they were implemented with InterState compared to when they were implemented in a conventional textual event-callback style. Another project looked at how to help users understand other people’s web pages to serve as examples. We created a tool, called WebCrystal, which shows how effects on a web page are achieved. Our user study showed that WebCrystal helped both novice and experienced developers complete more tasks successfully using significantly less time. Finally, we looked at the issue of exploration – how to help people when they do not quite know what they want. We created a logging tool, called Fluorite, which helped us analyze how often this happens, and we found that programmers backtrack an average of about 10 times per hour. Therefore, we created another tool, called Azurite, which provides a selective undo mechanism, to help users specifically select which edits they want to undo and which ones they want to keep, so they can backtrack more successfully. Based on the success of this project, we have written or presented 9 papers reporting on this work during this period, and the PI was invited to be the keynote or featured speaker at 10 venues. This project aided the education of three Ph.D. students (one African-American).

National Science Foundation (NSF)
Division of Information and Intelligent Systems (IIS)
Standard Grant (Standard)
Application #
Program Officer
Ephraim P. Glinert
Project Start
Project End
Budget Start
Budget End
Support Year
Fiscal Year
Total Cost
Indirect Cost
Carnegie-Mellon University
United States
Zip Code