Daniel Gopstein

dblp:171/6814 · also Dan Gopstein · DBLP profile ↗
← Back
12ranked-venue papers
3as first author
1since 2021 · last 2022
—ORCID · none

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

Software engineering, systems software and programming languages · 4 · 3 first-author · 1 since 2021Graphics, computer vision, multimedia, augmented reality and games · 4Human-computer interaction and ubiquitous computing · 4Artificial intelligence and machine learning · 3Databases, data management, data science and information retrieval · 1 · 1 first-author

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
3 papers
Software maintenance and evolution · 41% Software testing · 36% Empirical software engineering · 23%
Computer graphics and multimedia
1 paper
Computer animation and physical simulation · 50% Geometric modeling and processing · 50%

Topics — the 7 heaviest of 7, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Empirical software engineering
developer studies
0.722020
Thinking aloud about confusing code: a qualitative investigation of program comprehension and atoms of confusion · ESEC/SIGSOFT FSE 2020
Understanding misunderstandings in source code · ESEC/SIGSOFT FSE 2017
Software maintenance and evolution
program comprehension
0.722020
Thinking aloud about confusing code: a qualitative investigation of program comprehension and atoms of confusion · ESEC/SIGSOFT FSE 2020
Understanding misunderstandings in source code · ESEC/SIGSOFT FSE 2017
Software testing › automated testing
directed testing
0.612022
Discovering feature flag interdependencies in Microsoft office · ESEC/SIGSOFT FSE 2022
Software maintenance and evolution
technical debt
0.612022
Discovering feature flag interdependencies in Microsoft office · ESEC/SIGSOFT FSE 2022
Software testing › regression testing
test selection
0.612022
Discovering feature flag interdependencies in Microsoft office · ESEC/SIGSOFT FSE 2022
Geometric modeling and processing › shape modeling › shape editing
mesh editing
0.212015
AniMesh: interleaved animation, modeling, and editing · ACM Trans. Graph. 2015
Computer animation and physical simulation
motion retargeting
0.212015
AniMesh: interleaved animation, modeling, and editing · ACM Trans. Graph. 2015

Methods — techniques the papers use, named apart from their topics

probabilistic reasoning · 0.6causal inference · 0.6think-aloud protocol · 0.4qualitative analysis · 0.4empirical study · 0.3controlled experiment · 0.3skeleton correspondence · 0.2motion retargeting · 0.2
YearPublicationVenuePosition
2022 Discovering feature flag interdependencies in Microsoft office
abstract
Feature flags are a popular method to control functionality in released code. They enable rapid development and deployment, but can also quickly accumulate technical debt. Complex interactions between feature flags can go unnoticed, especially if interdependent flags are located far apart in the code, and these unknown dependencies could become a source of serious bugs. Testing all possible combinations of feature flags is infeasible in large systems like Microsoft Office, which has about 12000 active flags. The goal of our research is to aid product teams in improving system reliability by providing an approach to automatically discover feature flag interdependencies. We use probabilistic reasoning to infer causal relationships from feature flag query logs. Our approach is language-agnostic, scales easily to large heterogeneous codebases, and is robust against noise such as code drift or imperfect log data. We evaluated our approach on real-world query logs from Microsoft Office and are able to achieve over 90% precision while recalling non-trivial indirect feature flag relationships across different source files. We also investigated re-occurring patterns of relationships and describe applications for targeted testing, determining deployment velocity, error mitigation, and diagnostics.
Michael Schröder 0005, Katja Kevic, Daniel Gopstein, Brendan Murphy, Jennifer Beckmann
ESEC/SIGSOFT FSE3
2020 Thinking aloud about confusing code: a qualitative investigation of program comprehension and atoms of confusion
abstract
Atoms of confusion are small patterns of code that have been empirically validated to be difficult to hand-evaluate by programmers. Previous research focused on defining and quantifying this phenomenon, but not on explaining or critiquing it. In this work, we address core omissions to the body of work on atoms of confusion, focusing on the ‘how’ and ‘why’ of programmer misunderstanding.
Daniel Gopstein, Anne-Laure Fayard, Sven Apel, Justin Cappos
ESEC/SIGSOFT FSE1
2019 ELIMINATION from Design to Analysis
abstract
Elimination is a word puzzle game for browsers and mobile devices, where all levels are generated by a constrained evolutionary algorithm with no human intervention. This paper describes the design of the game and its level generation methods, and analysis of playtraces from almost a thousand players. The analysis corroborates that the level generator creates a sawtooth-shaped difficulty curve, as intended. The analysis also offers insights into player behavior in this game.
Ahmed Khalifa 0001, Daniel Gopstein, Julian Togelius
CoG2
2019 Pitako - Recommending Game Design Elements in Cicero
abstract
Recommender Systems are widely and successfully applied in e-commerce. Could they be used for designƒ In this paper, we introduce Pitako1, a tool that applies the Recommender System concept to assist humans in creative tasks. More specifically, Pitako provides suggestions by taking games designed by humans as inputs, and recommends mechanics and dynamics as outputs. Pitako is implemented as a new system within the mixed-initiative AI-based Game Design Assistant, Cicero. This paper discusses the motivation behind the implementation of Pitako as well as its technical details and presents usage examples. We believe that Pitako can influence the use of recommender systems to help humans in their daily tasks.
Tiago Machado, Daniel Gopstein, Andrew Nealen, Julian Togelius
CoG2
2018 AI-Assisted Game Debugging with Cicero
abstract
We present Cicero, a mixed-initiative application for prototyping two-dimensional sprite-based games across different genres such as shooters, puzzles, and action games. Cicero provides a host of features which can offer assistance in different stages of the game development process. Noteworthy features include AI agents for gameplay simulation, a game mechanics recommender system, a playtrace aggregator, heatmap-based game analysis, a sequential replay mechanism, and a query system that allows searching for particular interaction patterns. In order to evaluate the efficacy and usefulness of the different features of Cicero, we conducted a user study in which we compared how users perform in game debugging tasks with different kinds of assistance.
Tiago Machado, Daniel Gopstein, Andrew Nealen, Oded Nov, Julian Togelius
CEC2
2018 Rough Sets: Visually Discerning Neurological Functionality During Thought Processes
Rory A. Lewis, Chad A. Mello, Yanyan Zhuang, Martin K.-C. Yeh, Daniel Gopstein
ISMIS6
2018 Prevalence of confusing code in software projects: atoms of confusion in the wild
abstract
Prior work has shown that extremely small code patterns, such as the conditional operator and implicit type conversion, can cause considerable misunderstanding in programmers. Until now, the real world impact of these patterns - known as 'atoms of confusion' - was only speculative. This work uses a corpus of 14 of the most popular and influential open source C and C++ projects to measure the prevalence and significance of these small confusing patterns. Our results show that the 15 known types of confusing micro patterns occur millions of times in programs like the Linux kernel and GCC, appearing on average once every 23 lines. We show there is a strong correlation between these confusing patterns and bug-fix commits as well as a tendency for confusing patterns to be commented. We also explore patterns at the project level showing the rate of security vulnerabilities is higher in projects with more atoms. Finally, we examine real code examples containing these atoms, including ones that were used to find and fix bugs in our corpus. In total this work demonstrates that beyond simple misunderstanding in the lab setting, atoms of confusion are both prevalent - occurring often in real projects, and meaningful - being removed by bug-fix commits at an elevated rate.
Daniel Gopstein, Hongwei Henry Zhou, Phyllis G. Frankl, Justin Cappos
MSR1
2018 Exploring Game Space of Minimal Action Games via Parameter Tuning and Survival Analysis
abstract
Game designers can use computer-aided game design methods to model how players may experience the perceived difficulty of a game. We present methods to generate and analyze the difficulty of a wide variety of minimal action game variants throughout game space, where each point in this abstract design space represents a unique game variant. Focusing on a parameterized version of Flappy Bird, we predict hazard rates and difficulty curves using automatic playtesting, Monte Carlo simulation, a player model based on human motor skills (precision and actions per second), and survival analysis of score histograms. We demonstrate our techniques using simulated game play and actual game data from over 106 million play sessions of a popular online Flappy Bird variant, showing quantitative reasons why balancing a game for a wide range of player skill can be difficult. Some applications of our techniques include searching for a specific difficulty, game space visualization, computational creativity to find unique variants, and tuning game balance to adjust the difficulty curve even when game parameters are time varying, score dependent, or changing based on game progress.
Aaron Isaksen, Daniel Gopstein, Julian Togelius, Andrew Nealen
IEEE Trans. Games2
2017 Detecting and comparing brain activity in short program comprehension using EEG
abstract
Program comprehension is a common task in software development. Programmers perform program comprehension at different stages of the software development life cycle. Detecting when a programmer experiences problems or confusion can be difficult. Self-reported data may be useful, but not reliable. More importantly, it is hard to use the self-reported feedback in real time. In this study, we use an inexpensive, non-invasive EEG device to record 8 subjects' brain activity in short program comprehension. Subjects were presented either confusing or non-confusing C/C++ code snippets. Paired sample t-tests are used to compare the average magnitude in alpha and theta frequency bands. The results show that the differences in the average magnitude in both bands are significant comparing confusing and non-confusing questions. We then use ANOVA to detect whether such difference also presented in the same type of questions. We found that there is no significant difference across questions of the same difficulty level. Our outcome, however, shows alpha and theta band powers both increased when subjects are under the heavy cognitive workload. Other research studies reported a negative correlation between (upper) alpha and theta band powers.
Martin K.-C. Yeh, Daniel Gopstein, Yanyan Zhuang
FIE2
2017 Understanding misunderstandings in source code
abstract
Humans often mistake the meaning of source code, and so misjudge a program's true behavior. These mistakes can be caused by extremely small, isolated patterns in code, which can lead to significant runtime errors. These patterns are used in large, popular software projects and even recommended in style guides. To identify code patterns that may confuse programmers we extracted a preliminary set of `atoms of confusion' from known confusing code. We show empirically in an experiment with 73 participants that these code patterns can lead to a significantly increased rate of misunderstanding versus equivalent code without the patterns. We then go on to take larger confusing programs and measure (in an experiment with 43 participants) the impact, in terms of programmer confusion, of removing these confusing patterns. All of our instruments, analysis code, and data are publicly available online for replication, experimentation, and feedback.
Daniel Gopstein, Jake Iannacone, Lois DeLong, Yanyan Zhuang, Martin K.-C. Yeh, Justin Cappos
ESEC/SIGSOFT FSE1
2015 Exploring Game Space Using Survival Analysis
Aaron Isaksen, Daniel Gopstein, Andrew Nealen
FDG2
2015 AniMesh: interleaved animation, modeling, and editing
abstract
We introduce AniMesh, a system that supports interleaved modeling and animation creation and editing. AniMesh is suitable for rapid prototyping and easily accessible to non-experts. Source animations can be obtained from commodity motion capture devices or by adapting canned motion sequences. We propose skeleton abstraction and motion retargeting algorithms for finding correspondences and transferring motion between skeletons, or portions of skeletons, with varied topology. Motion can be copied-and-pasted between kinematic chains with different skeletal topologies, and entire model parts can be cut and reattached, while always retaining plausible, composite animations.
Daniel Gopstein, Yotam I. Gingold, Andrew Nealen
ACM Trans. Graph.2