Programming

会議の名前
CHI 2023
Log-it: Supporting Programming with Interactive, Contextual, Structured, and Visual Logs
要旨

Logging is a widely used technique for inspecting and understanding programs. However, the presentation of logs still often takes its ancient form of a linear stream of text that resides in a terminal, console, or log file. Despite its simplicity, interpreting log output is often challenging due to the large number of textual logs that lack structure and context. We conducted content analysis and expert interviews to understand the practices and challenges inherent in logging. These activities demonstrated that the current representation of logs does not provide the rich structures programmers need to interpret them or the program's behavior. We present Log-it, a logging interface that enables programmers to interactively structure and visualize logs in situ. A user study with novices and experts showed that Log-it's syntax and interface have a minimal learning curve, and the interactive representations and organizations of logs help programmers easily locate, synthesize, and understand logs.

受賞
Honorable Mention
著者
Peiling Jiang
University of California San Diego, San Diego, California, United States
Fuling Sun
University of California San Diego, San Diego, California, United States
Haijun Xia
University of California, San Diego, San Diego, California, United States
論文URL

https://doi.org/10.1145/3544548.3581403

動画
Structured Editing for All: Deriving Usable Structured Editors From Grammars
要旨

Structured editing can show benefits in learnability, tool building, and editing efficiency in programming. However, creating a usable structured editor is laborious and demanding, typically requiring tool builders to manually create or adjust editing interactions. We present Sandblocks, a system that allows users to automatically generate structured editors for every language with a formal grammar available. Our system's \emph{input reconciliation process} acts on arbitrary syntax trees to provides consistent interactions across our generated editors. Our editors' editing experience is designed to be familiar to users from textual editing but, compared to previous work, requires no manual annotation in the grammars. We demonstrate our editors' usability across languages through a user study (N=18). Compared to conventional text editors, even with minimal training, participants only took on average 21% (JS), 34% (Clojure), and 95% (RegExp) longer and reported that editing felt natural with a score of 6/7.

著者
Tom Beckmann
Hasso Plattner Institute, Potsdam, Germany
Patrick Rein
Hasso Plattner Institute, Potsdam, Germany
Stefan Ramson
Hasso Plattner Institute, Potsdam, Germany
Joana Bergsiek
Hasso Plattner Institute, Potsdam, Germany
Robert Hirschfeld
Hasso Plattner Institute, Potsdam, Germany
論文URL

https://doi.org/10.1145/3544548.3580785

動画
CrossCode: Multi-level Visual Representations of Computer Program Execution
要旨

Program visualizations help to form useful mental models of how programs work, and to reason and debug code. But these visualizations exist at a fixed level of abstraction, e.g., line-by-line. In contrast, programmers switch between many levels of abstraction when inspecting program behavior. Based on results from a formative study of hand-designed program visualizations, we designed CrossCode, a web-based program visualization system for JavaScript that leverages structural cues in syntax, control flow, and data flow to aggregate and navigate program execution across multiple levels of abstraction. In an exploratory qualitative study with experts, we found that CrossCode enabled participants to maintain a strong sense of place in program execution, was conducive to explaining program behavior, and helped track changes and updates to the program state.

著者
Devamardeep Hayatpur
University of California, San Diego, La Jolla, California, United States
Daniel Wigdor
University of Toronto, Toronto, Ontario, Canada
Haijun Xia
University of California, San Diego, San Diego, California, United States
論文URL

https://doi.org/10.1145/3544548.3581390

動画
“What if everyone is able to program?” – Exploring the Role of Software Development in Science Fiction
要旨

For decades, research around emerging technologies has been inspired by science fiction and vice versa. While so far almost only the technologies themselves have been considered, we explore the underlying software development and programming approaches. We therefore conduct a detailed media content analysis of twenty-seven movies that examines the role of software development in science fiction by identifying and investigating new approaches to programming and how software development is conceptualized portrayed within science fiction scenes. With the additional analysis of eighteen design fiction stories exploring the scenario “What if everyone is able to program?”, we envision potential impacts of the democratization of software development on business and society. Our study opens new discussions and perspectives, by investigating the current vision of the future of programming and uncovers new approaches to software development which can serve as a starting point for further research in the HCI community.

著者
Kevin Krings
University of Siegen, Siegen, Germany
Nino S.. Bohn
University of Siegen, Siegen, Germany
Nora Anna Luise. Hille
University of Siegen, Siegen, Germany
Thomas Ludwig
University of Siegen, Siegen, Germany
論文URL

https://doi.org/10.1145/3544548.3581436

動画
"What It Wants Me To Say": Bridging the Abstraction Gap Between End-User Programmers and Code-Generating Large Language Models
要旨

Code-generating large language models map natural language to code. However, only a small portion of the infinite space of naturalistic utterances is effective at guiding code generation. For non-expert end-user programmers, learning this is the challenge of abstraction matching. We examine this challenge in the specific context of data analysis in spreadsheets, in a system that maps the user's natural language query to Python code using the Codex generator, executes the code, and shows the result. We propose grounded abstraction matching, which bridges the abstraction gap by translating the code back into a systematic and predictable naturalistic utterance. In a between-subjects, think-aloud study (n=24), we compare grounded abstraction matching to an ungrounded alternative based on previously established query framing principles. We find that the grounded approach improves end-users' understanding of the scope and capabilities of the code-generating model, and the kind of language needed to use it effectively.

受賞
Honorable Mention
著者
Michael Xieyang Liu
Microsoft Research, Cambridge, United Kingdom
Advait Sarkar
Microsoft Research, Cambridge, United Kingdom
Carina Negreanu
Microsoft Research , Cambridge, Cambridgeshire, United Kingdom
Benjamin Zorn
Microsoft Research, Redmond, Washington, United States
Jack Williams
Microsoft Research, Cambridge, United Kingdom
Neil Toronto
Microsoft Research, Cambridge, United Kingdom
Andrew D Gordon
Microsoft Research, Redmond, Washington, United States
論文URL

https://doi.org/10.1145/3544548.3580817

動画
VizProg: Identifying Misunderstandings by Visualizing Students' Coding Progress
要旨

Programming instructors often conduct in-class exercises to help them identify students that are falling behind and surface students' misconceptions. However, as we found in interviews with programming instructors, monitoring students' progress during exercises is difficult, particularly for large classes. We present VizProg, a system that allows instructors to monitor and inspect students' coding progress in real-time during in-class exercises. VizProg represents students' statuses as a 2D Euclidean spatial map that encodes the students' problem-solving approaches and progress in real-time. VizProg allows instructors to navigate the temporal and structural evolution of students' code, understand relationships between code, and determine when to provide feedback. A comparison experiment showed that VizProg helped to identify more students' problems than a baseline system. VizProg also provides richer and more comprehensive information for identifying important student behavior. By managing students' activities at scale, this work presents a new paradigm for improving the quality of live learning.

受賞
Honorable Mention
著者
Ashley Ge. Zhang
University of Michigan, Ann Arbor, Ann Arbor, Michigan, United States
Yan Chen
University of Toronto, Toronto, Ontario, Canada
Steve Oney
University of Michigan, Ann Arbor, Michigan, United States
論文URL

https://doi.org/10.1145/3544548.3581516

動画