The Infona portal uses cookies, i.e. strings of text saved by a browser on the user's device. The portal can access those files and use them to remember the user's data, such as their chosen settings (screen view, interface language, etc.), or their login data. By using the Infona portal the user accepts automatic saving and using this information for portal operation purposes. More information on the subject can be found in the Privacy Policy and Terms of Service. By closing this window the user confirms that they have read the information on cookie usage, and they accept the privacy policy and the way cookies are used by the portal. You can change the cookie settings in your browser.
Current IDEs excel at text manipulation, but offer little support for sketching and capturing informal visual artifacts that developers create during their work on the code base. Such artifacts promise to help the examination of existing source bases and the orientation therein when linked up to corresponding code fragments. In this paper, we present a design and prototype how to use linked sketches...
Developers often start programming tasks by searching for relevant code in their local codebase. Previous research suggests that 88% of manually-composed queries retrieve no relevant results. Many searches fail because existing search tools depend solely on string matching with a manually-composed query, which cannot find semantically-related code. To solve this problem, researchers proposed query...
Programmers spend considerable time navigating source code, and we recently proposed the Patchworks code editor to help address this problem. A prior preliminary study of Patchworks found that it significantly reduced programmer navigation time and navigation errors. In this paper, we expand on these findings by investigating the effect of various patch-arranging strategies in Patchworks. To evaluate...
Web scripting enables users to automate interactions with websites. Online open source repositories provide scripts available for reuse. Yet just because these scripts are open source does not mean they are all reusable: many are specialized and irrelevant to most peoples' needs, while others are hard to understand or learn from. Repositories offer keyword-based search engines to find scripts relevant...
The broad domain of software testing includes different job responsibilities such as creating test plans, devising and running a variety of tests, documenting results, to liaising between different development teams. In this paper, we attempt to collate a list of software testing job responsibilities by applying three different social research methodologies to collect information from different sources...
Researchers have investigated the lack of diversity in Free/Open Source Software (FOSS) communities, but there have been few studies on age diversity. We interviewed 11 older FOSS contributors and 6 FOSS community leaders (of any age). This formative study reports on 4 key findings from those interviews: 1) motivations of older contributors, 2) benefits and challenges to contribution, 3) older adults'...
Programming often involves reverting source code to an earlier state, which we call backtracking. We performed a longitudinal study of programmers' backtracking, analyzing 1,460 hours of fine-grained code editing logs collected from 21 people. Our analysis method keeps track of the change history of each abstract syntax tree node and looks for backtracking instances within each node. Using this method,...
Parallel systems are now omnipresent and their effective use requires significant effort and expertise from software developers. Multitude of languages and libraries offer convenient ways to express parallelism, but fall short at helping programmers to find parallelism in existing programs. To address this issue, we introduce Clint, a direct manipulation tool aimed to ease both the extraction and...
Our real-time continuous gesture recognition system addresses problems that have previously been neglected: handling both gestures that are characterized by distinct paths and gestures characterized by distinct hand poses; and determining how and when the system should respond to gestures. Our probabilistic recognition framework based on hidden Markov models (HMMs) unifies the recognition of the two...
Whilst robots are increasingly being deployed as social agents, it is still difficult to program them to interact socially. This is because current programming tools either require programmers to work at a low level or lack features needed to create certain aspects of social interaction. High level, domain specific tools with features designed specifically to meet the requirements of social interaction...
Blocks languages, in which programs are constructed by connecting blocks resembling puzzle pieces, are increasingly used to introduce novices to programming. MIT App Inventor 2 has a blocks language for specifying the behavior of mobile apps. Its naming features (involving event and procedure parameters, global and local variables, and names for procedures, components, and component properties) were...
The objective behind building domain-specific visual languages (DSVLs) is to provide users with the most appropriate concepts and notations that best fit with their domain and experience. However, the existing DSVL designers do not support integrating environment and user context information when modeling, editing or viewing DSVL models at different locations, permissions, devices, etc. In this paper,...
Programming in pictures is an approach whereby pictures and moving pictures are used as super-characters to represent features of computational algorithms and data structures, as well as to explain models and application methods involved. ∗AIDA is a language supporting programming in pictures. In this paper, a fluid dynamics problem is considered and an example of a ∗AIDA program for fluid flow simulation...
We present a new framework for reactive programming in OpenMusic, a visual programming language dedicated to computer-aided music composition. We highlight some characteristics of the programming and computation paradigms, and describe the implementation of a hybrid system merging demand-driven and event-driven evaluation models in this environment.
Producing precise and helpful type error messages has been a challenge for the implementations of functional programming languages for over 3 decades now. Many different approaches and methods have been tried to solve this thorny problem, but current type-error reporting tools still suffer from a lack of precision in many cases. Based on the rather obvious observation that different approaches work...
Spreadsheets are widely used not only to define mathematical expressions, but also to store large and complex data. To query such data is usually a difficult task to perform, usually for end user. In this work we embed the textual query language in the model-driven spreadsheet environment as a spreadsheet itself. The result is an expressive and powerful query environment that has knowledge of the...
Earlier research on spreadsheet authors' mental models has shown that people possess several types of information about spreadsheets. Especially, when explaining a spreadsheet, the real-world and domain mental models are prominent and the spreadsheet model is suppressed, but when locating and fixing an error, one must constantly switch back and forth between the domain model and the spreadsheet model,...
Bidirectional transformations have potential applications in a vast number of computer science domains. Spread-sheets, on the other hand, are widely used for developing business applications, but their formulas are unidirectional, in the sense that their result can not be edited and propagated back to their input cells. In this paper, we interpret such formulas as a well-known class of bidirectional...
Web services offer a more reliable and efficient way to access online data than scraping web pages. However, web service data are often in complex hierarchical structures that make it difficult for people to extract the desired parts or to perform any further data manipulation without writing a significant amount of surprisingly intricate code. In this paper, we present Gneiss, a tool that extends...
Error notifications, as presented by modern integrated development environments, are cryptic and confusing to developers. My dissertation research will demonstrate that modifying production compilers to expose detailed semantics about compilation errors is feasible, and that these semantics can be leveraged through diagrammatic representations using visual overlays on the source code to significantly...
Set the date range to filter the displayed results. You can set a starting date, ending date or both. You can enter the dates manually or choose them from the calendar.