Results 1 - 10
of
11
Example-Centric Programming: Integrating Web Search into the Development Environment
, 2010
"... The ready availability of online source-code examples has fundamentally changed programming practices. However, current search tools are not designed to assist with programming tasks and are wholly separate from editing tools. This paper proposes that embedding a task-specific search engine in the d ..."
Abstract
-
Cited by 10 (1 self)
- Add to MetaCart
The ready availability of online source-code examples has fundamentally changed programming practices. However, current search tools are not designed to assist with programming tasks and are wholly separate from editing tools. This paper proposes that embedding a task-specific search engine in the development environment can significantly reduce the cost of finding information and thus enable programmers to write better code more easily. This paper describes the design, implementation, and evaluation of Blueprint, a Web search interface integrated into the Adobe Flex Builder development environment that helps users locate example code. Blueprint automatically augments queries with code context, presents a code-centric view of search results, embeds the search experience into the editor, and retains a link between copied code and its source. A comparative laboratory study found that Blueprint enables participants to write significantly better code and find example code significantly faster than with a standard Web browser. Analysis of three months of usage logs with 2,024 users suggests that task-specific search interfaces can significantly change how and when people search the Web.
What Would Other Programmers Do? Suggesting Solutions to Error Messages
, 2010
"... Interpreting compiler errors and exception messages is challenging for novice programmers. Presenting examples of how other programmers have corrected similar errors may help novices understand and correct such errors. This paper introduces HelpMeOut, a social recommender system that aids the debugg ..."
Abstract
-
Cited by 8 (2 self)
- Add to MetaCart
Interpreting compiler errors and exception messages is challenging for novice programmers. Presenting examples of how other programmers have corrected similar errors may help novices understand and correct such errors. This paper introduces HelpMeOut, a social recommender system that aids the debugging of error messages by suggesting solutions that peers have applied in the past. HelpMeOut comprises IDE instrumentation to collect examples of code changes that fix errors; a central database that stores fix reports from many users; and a suggestion interface that, given an error, queries the database for a list of relevant fixes and presents these to the programmer. We report on implementations of this architecture for two programming languages. An evaluation with novice programmers found that the technique can suggest useful fixes for 47 % of errors after 39 person-hours of programming in an instrumented environment.
The Information Gathering Strategies of API Learners
"... API users experience significant difficulties when learning how to use APIs, but little is known about the strategies used to overcome these difficulties, the motivation for each strategy, or the trade-offs between the strategies. To better understand the information seeking strategies of API users, ..."
Abstract
-
Cited by 1 (1 self)
- Add to MetaCart
API users experience significant difficulties when learning how to use APIs, but little is known about the strategies used to overcome these difficulties, the motivation for each strategy, or the trade-offs between the strategies. To better understand the information seeking strategies of API users, we conducted a study in which 20 participants were asked to complete programming tasks using unfamiliar APIs, with the documentation of the APIs and the Web as learning resources. We observed that participants used one of three different strategies when seeking for information on how to use APIs: some were more inclined to using the Web, others preferred the documentation of the APIs, and others combined both the Web and the documentation. We present the characteristics, motivation, and trade-offs between these strategies, and suggests new ideas for documentation and tools to facilitate the information-seeking process of API learners.
Characterizing the Usability of Interactive Applications Through Query Log Analysis
"... People routinely rely on Internet search engines to support their use of interactive applications, making query logs a rich source of data cataloguing the day-to-day tasks and needs of a user base. In this paper, we introduce an automated process for harvesting, ordering, labeling, and grouping sear ..."
Abstract
-
Cited by 1 (1 self)
- Add to MetaCart
People routinely rely on Internet search engines to support their use of interactive applications, making query logs a rich source of data cataloguing the day-to-day tasks and needs of a user base. In this paper, we introduce an automated process for harvesting, ordering, labeling, and grouping search queries related to any publicly available interactive system. The end result is a data set that can complement and augment data collected through traditional usability methods. We call this process CUTS—characterizing usability through search. The labeled, ordered data produced by CUTS can be assembled in minutes, is timely, has a high degree of ecological validity, and is arguably less prone to self-selection bias than traditional usability methods. We describe this process and demonstrate applications of its use with a handful of interactive systems.
Using Association Metrics to Help Users Navigate API Documentation
- IEEE SYMPOSIUM ON VISUAL LANGUAGES AND HUMAN-CENTRIC COMPUTING
, 2010
"... In the past decade there has been spectacular growth in the number and size of third-party libraries, frameworks, toolkits and other Application Programming Interfaces (APIs) available to modern software developers. However, the time-saving advantages of code re-use are commonly hampered by the dif ..."
Abstract
-
Cited by 1 (1 self)
- Add to MetaCart
In the past decade there has been spectacular growth in the number and size of third-party libraries, frameworks, toolkits and other Application Programming Interfaces (APIs) available to modern software developers. However, the time-saving advantages of code re-use are commonly hampered by the difficulty in finding the correct methods for a given task among the thousands of irrelevant ones. We have developed a tool called Apatite that helps address this issue by letting programmers browse APIs by viewing associations between their components. Apatite indicates which items of an API are popular in different contexts and allows browsing by initially selecting verbs (methods and actions) in addition to classes and packages. The associations are calculated by leveraging existing search engine data and source code, and verbs are identified by parsing the documentation descriptions. Apatite is available on the web and is being used by developers worldwide on a regular basis.
Centric Evaluation of Recommender Systems and Their Interfaces – Preface
"... In his keynote speech at the 2009 RecSys conference, Francisco Martin indicated that the main challenge in recommender system industry is not to discover algorithms that provide good recommendations, but to provide users with a usable and intuitive ..."
Abstract
- Add to MetaCart
In his keynote speech at the 2009 RecSys conference, Francisco Martin indicated that the main challenge in recommender system industry is not to discover algorithms that provide good recommendations, but to provide users with a usable and intuitive
Remix and Reuse of Source . . .
, 2010
"... The means of producing information and the infrastructure for disseminating it are constantly changing. The web mobilizes information in electronic formats, making it easier to copy, modify, remix, and redistribute. This has changed how information is produced, distributed, and used. People are not ..."
Abstract
- Add to MetaCart
The means of producing information and the infrastructure for disseminating it are constantly changing. The web mobilizes information in electronic formats, making it easier to copy, modify, remix, and redistribute. This has changed how information is produced, distributed, and used. People are not just consuming information; they are actively producing, remixing, and sharing information, using the web as a platform for creativity and production. This is true of software development as well. It is frequently commented by programmers and researchers who study software development, that programmers frequently copy and paste code. Although this practice is widely acknowledged, it is rarely studied directly, or explicitly accounted for in models of software development. However, this attitude is changing as software becomes more ubiquitous, and software development practice shifts away from the formal models of software engineering, towards a post-modernist perspective. This study explores how source code snippets in programming books and on the web are changing software development practice. By examining program source code using clone detection algorithms, this study provides a comprehensive view of code copying across 6,190 PHP-language applications. These data are used to explore the concept of a “remix ” method of software production, where software and systems are built out of copied and pasted snippets of code. These findings are contrasted against both traditional
EUKLAS: Supporting Integration of Example Code
"... The integration of code snippets into users ’ target code has not received much attention among researchers. In this paper, we present our new tool, called Euklas, which assists JavaScript programmers with the integration of code snippets. Euklas analyses the original file from where code was copied ..."
Abstract
- Add to MetaCart
The integration of code snippets into users ’ target code has not received much attention among researchers. In this paper, we present our new tool, called Euklas, which assists JavaScript programmers with the integration of code snippets. Euklas analyses the original file from where code was copied in order to provide much better “quick fixes ” for errors compared with current tools. Euklas also introduces static, heuristic source code checks for JavaScript, even though it is an untyped language. Our evaluation comparing Euklas with the Eclipse Development Environment’s JavaScript editor shows that Euklas’s user interface is successful and that participants using Euklas were able to fix almost two times more errors and accomplished this in much less time.
WebCrystal: Understanding and Reusing Examples in Web Authoring
"... Examples have been widely used in the area of web design to help web authors create web pages. However, without actually understanding how an example is constructed, people often have trouble extracting the elements they want and incorporating them into their own design. This paper introduces WebCry ..."
Abstract
- Add to MetaCart
Examples have been widely used in the area of web design to help web authors create web pages. However, without actually understanding how an example is constructed, people often have trouble extracting the elements they want and incorporating them into their own design. This paper introduces WebCrystal, a web development tool that helps users understand how a web page is built. WebCrystal contributes novel interaction techniques that let the user quickly access HTML and CSS information by selecting questions regarding how a selected element is designed. It provides answers using a textual description and a customized code snippet that can be copied-and-pasted to recreate the desired properties. WebCrystal also supports combining the styles and structures from multiple elements into the generated code snippet, and provides visualizations on the web page itself to explain layout relationships. Our user study shows that WebCrystal helped both novice and experienced developers complete more tasks successfully using significantly less time.
HyperSource: Bridging the Gap Between Source and Code-Related Web Sites
"... Programmers frequently use the Web while writing code: they search for libraries, code examples, tutorials, and documentation. This link between code and visited Web pages remains implicit today. Connecting source code and browsing histories might help programmers maintain context, reduce the cost o ..."
Abstract
- Add to MetaCart
Programmers frequently use the Web while writing code: they search for libraries, code examples, tutorials, and documentation. This link between code and visited Web pages remains implicit today. Connecting source code and browsing histories might help programmers maintain context, reduce the cost of Web page re-retrieval, and enhance understanding when code is shared. This note introduces HyperSource, an IDE augmentation that associates browsing histories with source code edits. HyperSource comprises a browser extension that logs visited pages; an IDE that tracks user activity and maps pages to code edits; a source document model that tracks visited pages at a character level; and a user interface that enables interaction with these histories. We discuss relevance heuristics and privacy issues inherent in this approach. Informal log analyses and user feedback suggest that our annotation model is promising for code editing and might also apply to other document authoring tasks after refinement. ACM Classification: H.5.2 [Information Interfaces and

