John Allen

dblp:62/9092 · DBLP profile ↗
← Back
10ranked-venue papers
5as first author
5since 2021 · last 2025
—ORCID · unresolved

Domains — the database's venue-derived domains; a paper can count in several

Human-computer interaction and ubiquitous computing · 6 · 5 first-author · 5 since 2021Applied, interdisciplinary, general and emerging computing · 3Databases, data management, data science and information retrieval · 1
YearPublicationVenuePosition
2025 DevTales: A Tool for Providing Narrative Code Histories into Developer Workflows
abstract
Understanding unfamiliar code often requires insight into the original developer’s intentions, design rationale, and on-the-fly problem-solving strategies. Traditional version-control systems capture only coarse commits, leaving web foraging and developer notes disconnected. We present DevTales, a VSCode extension that integrates fine-grained subgoal labels, captured web-foraging activity, and LLM-generated narrative summaries directly with code in the IDE. We evaluated DevTales in three mixed-methods user studies spanning debugging, understanding rationale, and code reuse. Results show that subgoal labels and “See in Code” links enable rapid top-down navigation and code localization, while embedded web resources clarify unfamiliar artifacts. Narrative summaries proved valuable for answering deep “why” questions by explicitly linking causal relationships among history items, but were avoided during quick sensemaking contexts due to their verbosity. We discuss design implications for history-aware code search, adaptive narrative summarization, and inference transparency in LLM-generated stories.
John Allen, Somin Park, Caitlin Kelleher
VL/HCC1
2024 Exploring the impacts of semi-automated storytelling on programmers' comprehension of software histories
abstract
Software developers have difficulty understanding the rationale and intent behind original developers’ design decisions. Code histories aim to provide richer contexts for code changes over time, but can introduce a large amount of information to the already cognitively demanding task of code comprehension. Storytelling has shown benefits in communicating complex, time-dependent information, yet programmers are reluctant to write stories for their code changes. We explored the utility of narratives made by generative AI. We conducted a within-subjects study comparing the performance of 16 programmers when recalling code history information from a list-view format versus a comparable AI-generated narrative format. Our study found that when using the story-view, participants were 16% more successful at recalling code history information, and had 30% less error when assessing the correctness of their responses. We did not find any significant differences in programmer’s perceived mental effort or their attitudes towards reuse when using narrative code stories.
John Allen, Caitlin Kelleher
VL/HCC1
2023 Code Stories for Software Repurposing
abstract
Software reuse has the potential to save programmers time and effort through leveraging existing code. Today however, code reuse is typically limited to programmers reusing code that does exactly what they want to do, through APIs and modules. Research in analogical reasoning suggests that problem-solving can be enhanced by reusing logic from previously-solved, analogous problems. This type of problem-solving reuse in software is rare due to difficulties programmers face when understanding code. Specifically, programmers have difficulty understanding the intentions behind design choices of the original developer. I hypothesize that by being presented the story behind a piece of software's development, programmers will be better able to 1) understand the source code and 2) draw analogies between the source code's functionalities and those of their target code.
John Allen
VL/HCC1
2023 Exploring Analogical Reasoning and History Use in Software Re-purposing
abstract
Today, code reuse is typically limited to programmers reusing code that does exactly what they want to do, through APIs and modules, for example. Yet, the space of existing programs that could be reused is broader. In this poster, we consider reuse through re-purposing tasks in which programmers modify an existing codebase to implement a related task. Because this process requires that users build a relationship between the source code and the target program, we examine it using analogical reasoning. To understand the process programmers take and the barriers they encounter when performing reuse through re-purposing tasks, we conducted an exploratory study involving sixteen participants completing two tasks. We find that programmers have difficulty mapping analogies related to the underlying logic of source code, but easily identify visual analogies like interface structure. We discuss how information about a code's history can be useful during reuse, and in identifying logical analogies.
John Allen, Caitlin Kelleher
VL/HCC1
2022 How Do Teaching Assistants Teach? Characterizing the Interactions Between Students and TAs in a Computer Science Course
abstract
Teaching assistants (TAs) play a crucial role in Computer Science courses. When a student is stuck or confused, they often rely on a TA to help them understand a concept or debug their program. At the same time, TAs in Computer Science courses are often very new at teaching, and somewhat new at programming. They may lack the knowledge and resources necessary to help students learn effectively. This work seeks to better understand the nature of TA-student interactions and identify potential opportunities for improvement. We conducted an observational study of one-on-one TA-Student interactions during office hours of a Computer Science course, and analyzed these interactions through the lens of known practices of effective one-on-one tutors. We found that TA-Student interactions focus on code over concepts, and this focus may be detrimental to TAs’ use of good tutoring practices.
Yana Malysheva, John Allen, Caitlin Kelleher
VL/HCC2
2020 Poster: Towards Understanding Novice Behaviors and Mental Effort in Code Puzzles
abstract
Code puzzles are a popular way to introduce young learners to computer programming. Managing cognitive load can lead to more effective learning, but it is unknown what levels of cognitive load should be maintained for successful learning in code puzzle systems. In this paper, we find that successful learners follow a trend of lower cognitive load, and we suggest guiding users towards this trend before introducing more difficult tasks. We then quantify puzzle-solving experiences into 7 principal components and explain their relationship with cognitive load and how they may be able to be used to improve the learning experience.
John Allen, Caitlin Kelleher
VL/HCC1
2015 Wearable sensor based stress management using integrated respiratory and ECG waveforms
abstract
Wearable technology and mobile platforms are becoming more and more popular in health care. This paper introduces a real time stress management system using wearable sensors and Smartphone mobile platform. The new system estimates stress level in real time using heart rate variability and patient activity cycles, and provides relaxation exercises instantaneously to help manage stress. The system relies on a wearable sensor to collect data (i.e., heart rate and respiration rate) and transmits data to Smartphones using Bluetooth to further process data. We also introduce a new breathing template matching algorithm to identify the best breathing exercise for users. A 2D visualization display shows that stress can be effectively relieved by the proposed stress management system.
Kemeng Chen, Wolfgang Fink, Janet Roveda, Richard D. Lane, John Allen, Johnny Vanuk
BSN5
2014 An Integrated Vehicle Navigation System Utilizing Lane-Detection and Lateral Position Estimation Systems in Difficult Environments for GPS
abstract
A navigation filter combines measurements from sensors currently available on vehicles - Global Positioning System (GPS), inertial measurement unit, inertial measurement unit (IMU), camera, and light detection and ranging (lidar) - for achieving lane-level positioning in environments where stand-alone GPS can suffer or fail. Measurements from the camera and lidar are used in two lane-detection systems, and the calculated lateral distance (to the lane markings) estimates of both lane-detection systems are compared with centimeter-level truth to show decimeter-level accuracy. The navigation filter uses the lateral distance measurements from the lidar- and camera-based systems with a known waypoint-based map to provide global measurements for use in a GPS/Inertial Navigation System (INS) system. Experimental results show that the inclusion of lateral distance measurements and a height constraint from the map creates a fully observable system even with only two satellite observations and, as such, greatly enhances the robustness of the integrated system over GPS/INS alone. Various scenarios are presented, which affect the navigation filter, including satellite geometry, number of satellites, and loss of lateral distance measurements from the camera and lidar systems.
Christopher Rose, Jordan Britt, John Allen, David M. Bevly
IEEE Trans. Intell. Transp. Syst.3
2013 Scuba: Diving into Data at Facebook
abstract
Facebook takes performance monitoring seriously. Performance issues can impact over one billion users so we track thousands of servers, hundreds of PB of daily network traffic, hundreds of daily code changes, and many other metrics. We require latencies of under a minute from events occuring (a client request on a phone, a bug report filed, a code change checked in) to graphs showing those events on developers' monitors. Scuba is the data management system Facebook uses for most real-time analysis. Scuba is a fast, scalable, distributed, in-memory database built at Facebook. It currently ingests millions of rows (events) per second and expires data at the same rate. Scuba stores data completely in memory on hundreds of servers each with 144 GB RAM. To process each query, Scuba aggregates data from all servers. Scuba processes almost a million queries per day. Scuba is used extensively for interactive, ad hoc, analysis queries that run in under a second over live data. In addition, Scuba is the workhorse behind Facebook's code regression analysis, bug report monitoring, ads revenue monitoring, and performance debugging.
Lior Abraham, John Allen, Oleksandr Barykin, Vinayak R. Borkar, Bhuwan Chopra, Ciprian Gerea, Daniel Merl, Josh Metzler, David Reiss, Subbu Subramanian, Janet L. Wiener, Okay Zed
Proc. VLDB Endow.2
2008 Perfluorocarbon Nanoparticles for Molecular Imaging and Targeted Therapeutics
abstract
Molecular imaging is a novel tool that has allowed noninvasive diagnostic imaging to transition from gross anatomical description to identification of specific tissue epitopes and observation of biological processes at the cellular level. Until recently, this technique was confined to the field of nuclear imaging; however, advances in nanotechnology have extended this research to include magnetic resonance (MR) imaging, positron emission tomography (PET), single photon emission computed tomography (SPECT), and ultrasound (US), among others. The application of nanotechnology to MR, SPECT, and US molecular imaging has generated several candidate contrast agents. We discuss the application of one multimodality platform, a targeted perfluorocarbon nanoparticle. Our results show that it is useful for noninvasive detection with all three imaging modalities and may additionally be used for local drug delivery.
Shelton D. Caruthers, Trung Tran, Jon N. Marsh, Kirk D. Wallace, Tillman Cyrus, Kathryn Partlow, Michael Scott, Michal Lijowski, Anne Neubauer, Patrick Winter, Grace Hu, Hyuing Zhang, John E. McCarthy, Brian Maurizi, John Allen, Cordellia Caradine, Robert Neumann, Jeffrey Arbeit, Gregory M. Lanza, Samuel A. Wickline
Proc. IEEE16