Example-centric programming : integrating web search into the development process
Abstract/Contents
- Abstract
- The Web is fundamentally changing programming. The increased prevalence of online source code--shared in code repositories, documentation, blogs and forums--enables programmers to build applications opportunistically by iteratively searching for, modifying, and combining examples. These Web resources are a ubiquitous and essential part of programming: in one of our studies, programmers spent 19% of their time consuming relevant online information. But our development tools haven't yet embraced these changes. How do we leverage the latent opportunity of Web-based example code in the next generation of programming tools? This dissertation explores the roles that online resources play in creating software, making contributions in three areas. First, it presents a taxonomy of programmer Web usage. Programmers turn to the Web with a variety of goals: they learn new skills, transfer knowledge to new domains, and delegate their memory to the Web. Using our taxonomy, we suggest opportunities for tool support of programmer Web usage. Second, this thesis contributes interaction techniques for lowering the cost of locating relevant example code on the Web. We created Blueprint, a task-specific search engine that embeds Web search inside the development environment. A laboratory study and large-scale deployment of Blueprint found that it enables participants to write significantly better code and find example code significantly faster than with a standard Web browser and search engine, and may cause a fundamental shift in how and when programmers search the Web. Finally, this thesis contributes interaction techniques for helping programmers understand examples. Efficient understanding and effective adaptation of examples hinges on the programmer's ability to quickly identify a small number of relevant lines interleaved among a larger body of boilerplate code. By augmenting the code authoring experience with execution visualization and linking of related lines, programmers can understand examples significantly faster.
Description
Type of resource | text |
---|---|
Form | electronic; electronic resource; remote |
Extent | 1 online resource. |
Copyright date | 2011 |
Publication date | 2010, c2011; 2010 |
Issuance | monographic |
Language | English |
Creators/Contributors
Associated with | Brandt, Joel Richard |
---|---|
Associated with | Stanford University, Computer Science Department |
Primary advisor | Klemmer, Scott |
Thesis advisor | Klemmer, Scott |
Thesis advisor | Dontcheva, Mira |
Thesis advisor | Ousterhout, John K |
Thesis advisor | Winograd, Terry |
Advisor | Dontcheva, Mira |
Advisor | Ousterhout, John K |
Advisor | Winograd, Terry |
Subjects
Genre | Theses |
---|
Bibliographic information
Statement of responsibility | Joel Richard Brandt. |
---|---|
Note | Submitted to the Department of Computer Science. |
Thesis | Thesis (Ph.D.)--Stanford University, 2011. |
Location | electronic resource |
Access conditions
- Copyright
- © 2011 by Joel Richard Brandt
Also listed in
Loading usage metrics...