Chair: Niklas Elmqvist, Purdue University, USA
Codelets: Linking Interactive Documentation and Example Code in the Editor
Contribution & Benefit: Presents Codelets, which link interactive documentation with example code in code editors. Codelets allow third parties to write rich in-editor documentation.
Abstract » 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.ACM
Evaluating Interactive Support for Secure Programming
Contribution & Benefit: We developed an interactive tool that aids programmers in developing secure code and evaluated it through two comparison-based user studies. Results demonstrate that interactive techniques can help reduce non-functional security errors.
Abstract » Implementing secure code is an important and oft-overlooked non-functional requirement. Secure programming errors are a subset of program errors that result in many common privacy and security breaches in commercial software. We are seeking to provide interactive support for secure programming in the development environment. In this paper, we have evaluated our prototype tool, ASIDE, which provides real-time warnings and code generation to reduce secure programming errors introduced by programmers. We evaluate the potential use and effectiveness of ASIDE on both novice and professional developers in two comparison user studies. Our results demonstrate that the interactive support can help address this important non-functional requirement, and suggest guidelines for such tools to support programmers.ACM
Triggering Triggers and Burying Barriers to Customizing Software
Contribution & Benefit: Proposes a methodology for empirically studying software customization and the impact of customization factors. Shows that increasing exposure and awareness of customization features, and adding social influence affects customization behavior.
Abstract » General-purpose software applications are usually not tailored for a specific user with specific tasks, strategies or preferences. In order to achieve optimal performance with such applications, users typically need to transition to an alternative efficient behavior. Often, features of such alternative behaviors are not initially accessible and first need to be customized. However, few research works formally study and empirically measure what drives a user to customize. In this paper, we describe the challenges involved in empirically studying customization behaviors, and propose a methodology for formally measuring the impact of potential customization factors. We then demonstrate this methodology by studying the impact of different customization factors on customization behaviors. Our results show that increasing exposure and awareness of customization features, and adding social influence can significantly affect the user's customization behavior.ACM
End-User Debugging Strategies: A Sensemaking Perspective
Contribution & Benefit: Contributes a sensemaking model for end-user debugging and new insights into debugging strategies and behaviors. Reveals implications for the design of spreadsheet tools to support end-user programmers’ sensemaking during debugging.
Abstract » Despite decades of research into how professional programmers debug, only recently has work emerged about how end-user programmers attempt to debug programs. Without this knowledge, we cannot build tools to adequately support their needs. This paper reports the results of a detailed qualitative empirical study of end-user programmers’ sensemaking about a spreadsheet’s correctness. Using our study’s data, we derived a sensemaking model for end-user debugging and categorized participants’ activities and verbalizations according to this model, allowing us to investigate how participants went about debugging. Among the results are identification of the prevalence of information foraging during end-user debugging, two successful strategies for traversing the sensemaking model, potential ties to gender differences in the literature, sensemaking sequences leading to debugging progress, and sequences tied with troublesome points in the debugging process. The results also reveal new implications for the design of spreadsheet tools to support end-user programmers’ sensemaking during debugging.