Results 1 -
8 of
8
Codelets: Linking Interactive Documentation and Example Code in the Editor
- In Proc. CHI. 2012
"... Programmers frequently use instructive code examples found on the Web to overcome cognitive barriers while programming. These examples couple the concrete functionality of code with rich contextual information about how the code works. However, using these examples necessitates understanding, config ..."
Abstract
-
Cited by 5 (0 self)
- Add to MetaCart
(Show Context)
Programmers frequently use instructive code examples found on the Web to overcome cognitive barriers while programming. These examples couple the concrete functionality of code with rich contextual information about how the code works. However, using these examples necessitates understanding, configuring, and integrating the code, all of which typically take place after the example enters the user’s code and has been removed from its original instructive context. In short, a user’s interaction with an example continues well after the code is pasted. This paper investigates whether treating examples as “first-class ” objects in the code editor — rather than simply as strings of text — will allow programmers to use examples more effectively. We explore this through the creation and evaluation of Codelets. A Codelet is presented inline with the user’s code, and consists of a block of example code and an interactive helper widget that assists the user in understanding and integrating the example. The Codelet persists throughout the example’s lifecycle, remaining accessible even after configuration and integration is done. A comparative laboratory study with 20 participants found that programmers were able to complete tasks involving examples an average of 43 % faster when using Codelets than when using a standard Web browser. Author Keywords: programming, example, documentation, structured editing
Reverb: Recommending code-related web pages
- In Proc. ICSE
, 2013
"... Abstract—The web is an important source of development-related resources, such as code examples, tutorials, and API doc-umentation. Yet existing development environments are largely disconnected from these resources. In this work, we explore how to provide useful web page recommendations to develope ..."
Abstract
-
Cited by 3 (0 self)
- Add to MetaCart
(Show Context)
Abstract—The web is an important source of development-related resources, such as code examples, tutorials, and API doc-umentation. Yet existing development environments are largely disconnected from these resources. In this work, we explore how to provide useful web page recommendations to developers by focusing on the problem of refinding web pages that a developer has previously used. We present the results of a study about developer browsing activity in which we found that 13.7 % of developers visits to code-related pages are revisits and that only a small fraction (7.4%) of these were initiated through a low-cost mechanism, such as a bookmark. To assist with code-related revisits, we introduce Reverb, a tool which recommends previously visited web pages that pertain to the code visible in the developer’s editor. Through a field study, we found that, on average, Reverb can recommend a useful web page in 51 % of revisitation cases. I.
InterTwine: Creating Interapplication Information Scent to Support Coordinated Use of Software
- Proc UIST
, 2014
"... Users often make continued and sustained use of online re-sources to complement use of a desktop application. For ex-ample, users may reference online tutorials to recall how to perform a particular task. While often used in a coordinated fashion, the browser and desktop application provide sepa-rat ..."
Abstract
-
Cited by 2 (2 self)
- Add to MetaCart
(Show Context)
Users often make continued and sustained use of online re-sources to complement use of a desktop application. For ex-ample, users may reference online tutorials to recall how to perform a particular task. While often used in a coordinated fashion, the browser and desktop application provide sepa-rate, independent mechanisms for helping users find and re-find task-relevant information. In this paper, we describe In-terTwine, a system that links information in the web browser with relevant elements in the desktop application to create in-terapplication information scent. This explicit link produces a shared interapplication history to assist in re-finding in-formation in both applications. As an example, InterTwine marks all menu items in the desktop application that are cur-rently mentioned in the front-most web page. This paper introduces the notion of interapplication information scent, demonstrates the concept in InterTwine, and describes results from a formative study suggesting the utility of the concept. Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full cita-tion on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or re-publish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from Permissions@acm.org.
Authoring Multi-Stage Code Examples with Editable Code Histories
"... Multi-stage code examples present multiple versions of a program where each stage increases the overall complexity of the code. In order to acquire strategies of program construction using a new language or API, programmers consult multistage code examples in books, tutorials and online videos. Auth ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
(Show Context)
Multi-stage code examples present multiple versions of a program where each stage increases the overall complexity of the code. In order to acquire strategies of program construction using a new language or API, programmers consult multistage code examples in books, tutorials and online videos. Authoring multi-stage code examples is currently a tedious process, as it involves keeping several stages of code synchronized in the face of edits and error corrections. We document these difficulties with a formative study examining how programmers author multi-stage code examples. We then present an IDE extension that helps authors create multi-stage code examples by propagating changes (insertions, deletions and modifications) to multiple saved versions of their code. Our system adapts revision control algorithms to the specific task of evolving example code. An informal evaluation finds that taking snapshots of a program as it is being developed and editing these snapshots in hindsight help users in creating multi-stage code examples.
An interactive system for data structure development
- in Proceedings of the 33rd Annual ACM Conference on Human Factors in Computing Systems
"... Figure 1: We contribute a novel way of debugging, allowing the user to directly interact with a program’s live heap. The heap graph is abstracted using a method for online parametric heap abstraction which allows us to only visualize the algorithm’s essential operation. The user can change and refin ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
(Show Context)
Figure 1: We contribute a novel way of debugging, allowing the user to directly interact with a program’s live heap. The heap graph is abstracted using a method for online parametric heap abstraction which allows us to only visualize the algorithm’s essential operation. The user can change and refine these automatic abstractions interactively. Our system can be used during regular development (left) and in a classroom setting using a pen+touch user interface (right). Data structure algorithms are of fundamental importance in teaching and software development, yet are difficult to under-stand. We propose a new approach for understanding, debug-ging and developing heap manipulating data structures. The key technical idea of our work is to combine deep para-metric abstraction techniques emerging from the area of static analysis with interactive abstraction manipulation. Our ap-proach bridges program analysis with HCI and enables new capabilities not possible before: i) online automatic visualiza-tion of the data structure in a way which captures its essential operation, thus enabling powerful local reasoning, and ii) fine grained pen and touch gestures allowing for interactive con-trol of the abstraction – at any point the developer can pause the program, graphically interact with the data, and continue program execution. These features address some of the most pressing challenges in developing data structures. We implemented our approach in a Java-based system called FluidEdt and evaluated it with 27 developers. The results indicate that FluidEdt is more effective in helping developers c©2015 Association for Computing Machinery. ACM acknowledges that this contribution was authored or co-authored by an employee, contractor or affiliate of a national government. As such, the Government retains a nonexclusive, royalty-free right to publish or reproduce this article, or to allow others to do so, for Government purposes only.
unknown title
"... Abstract—The web is an important source of development-related resources, such as code examples, tutorials, and API doc-umentation. Yet existing development environments are largely disconnected from these resources. In this work, we explore how to provide useful web page recommendations to develope ..."
Abstract
- Add to MetaCart
(Show Context)
Abstract—The web is an important source of development-related resources, such as code examples, tutorials, and API doc-umentation. Yet existing development environments are largely disconnected from these resources. In this work, we explore how to provide useful web page recommendations to developers by focusing on the problem of refinding web pages that a developer has previously used. We present the results of a study about developer browsing activity in which we found that 13.7 % of developers visits to code-related pages are revisits and that only a small fraction (7.4%) of these were initiated through a low-cost mechanism, such as a bookmark. To assist with code-related revisits, we introduce Reverb, a tool which recommends previously visited web pages that pertain to the code visible in the developer’s editor. Through a field study, we found that, on average, Reverb can recommend a useful web page in 51 % of revisitation cases. I.
Integrated Graphical Representations for Development of Programs with Real-world Input and Output
, 2013
"... Programs that use real-world input and output (real-world I/O), including interactive camera-based programs and robot applications, have different development and runtime environments. While integrated development environments (IDEs) reside in the tradi-tional desktop environment, the runtime enviro ..."
Abstract
- Add to MetaCart
Programs that use real-world input and output (real-world I/O), including interactive camera-based programs and robot applications, have different development and runtime environments. While integrated development environments (IDEs) reside in the tradi-tional desktop environment, the runtime environment is in the real world. Real-world I/O may apply to specic situations and/or respond to dynamic changes that cannot be represented intuitively by the existing text-based user interfaces of IDEs. Previous efforts to eliminate the gap between the development and runtime environments include Programming by Example (PbE), in which the user demonstrates operations to the sys-tem and the system infers and executes a corresponding program. In PbE, the program is specied using the runtime environment. The drawback is that the PbE system does not allow the user to precisely describe the logic of the program. In this dissertation, we coin the term \Programming with Example (PwE)," which describes a hybrid approach combining PbE and text-based programming. It makes use of example data retrieved from the real world during text-based programming. We propose
Who Asked What: Integrating Crowdsourced FAQs into API Documentation
"... Documentation is important for learning Application Pro-gramming Interfaces (APIs). In addition to official docu-ments, much crowdsourced API knowledge is available on the Web. Crowdsourced API documentation is fragmented, scattered around the Web, and disconnected from official doc-umentation. Deve ..."
Abstract
- Add to MetaCart
(Show Context)
Documentation is important for learning Application Pro-gramming Interfaces (APIs). In addition to official docu-ments, much crowdsourced API knowledge is available on the Web. Crowdsourced API documentation is fragmented, scattered around the Web, and disconnected from official doc-umentation. Developers often rely on Web search to retrieve additional programming help. We propose to connect these two types of documentation by capturing developers ’ Web browsing behavior in the context of document reading and integrating crowdsourced frequently asked questions (FAQs) into API documents. Such an integration not only provides relevant API help more conveniently, but also opens a new approach to promoting knowledge collaboration and studying API users ’ information needs.