The objective of this research is to investigate how to improve end-user programmer productivity and learning through user interfaces and algorithms for capturing, sharing, and accessing programming expertise. Focus is on the needs of end-user programmers who create graphical user interfaces and build physical computing systems. Fieldwork and data analyese will be conducted to understand current practices around seeking and providing advice online. Informed by this framework, tools will be developind for creating and sharing high-quality examples and tutorials, finding and recommending relevant examples, and integrating found code into new projects. Success of the methods will be evaluated through laboratory experiments and deployment of instrumented software. This work draws on methodology from computer-supported cooperative work, end-user programming, the design of authoring tools, project-based learning, and design of computer-realized scaffolding. Four types of results will be produced: 1) knowledge about the types of problems end-user programmers seek help on; 2) analysis how current systems help and hinder the sharing of expertise; 3) novel techniques to improve expertise sharing within programming environments; and 4) evaluations that quantify the benefits of such techniques.

Programmers increasingly rely on Web resources such as question answering sites, forums, and example repositories to help them prototype, implement, and debug software. This trend is especially prevalent in end-user programmers, who write code but are not professionally trained in Computer Science. They vastly outnumber professional programmers in the United States. Current development tools are largely ignorant of the social exchange of programming advice online: program editors and Web applications are isolated from each other. This lack of specific applications for describing and sharing programming expertise limits the effectiveness of both production and use of knowledge. This work will lower the threshold for programming digital media. The research will increase the quality, scope, and utility of online reference materials. Access to these materials can accelerate learning, improve productivity, increase self-efficacy of programmers, and democratize the production and sharing of programming knowledge.

Agency
National Science Foundation (NSF)
Institute
Division of Information and Intelligent Systems (IIS)
Application #
1149799
Program Officer
Ephraim Glinert
Project Start
Project End
Budget Start
2012-06-01
Budget End
2018-05-31
Support Year
Fiscal Year
2011
Total Cost
$500,000
Indirect Cost
Name
University of California Berkeley
Department
Type
DUNS #
City
Berkeley
State
CA
Country
United States
Zip Code
94710