Example-centric programming : integrating web search into the development process

Placeholder Show Content


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.


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


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


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

© 2011 by Joel Richard Brandt

Also listed in

Loading usage metrics...