Effective communication is crucial for programmers of all skill levels. However, communicating about code can be difficult, particularly in asynchronous settings where one user writes an explanation for another user to read and understand later on. Communicating about code is uniquely difficult for two reasons. First, code-related explanations are dichotomous, containing fragments of code and associated natural language descriptions that are not necessarily sequential. Second, explanations of code often involve multiple stages of modifying code in steps, but these intermediate steps are difficult to capture. This paper introduces chat.codes, a new tool for creating guided explanations about code, meant to be consumed asynchronously. chat.codes introduces three features that make it easier to communicate about code. First, it introduces deictic code references, which allow users to reference specific regions of code in parts of their explanations. Second, it tracks and summarizes code edits in-line with messages, allowing users to create explanations in stages. Third, it tracks every version of code, enabling future users to back-track to a previous version of code to reconstruct the context for code references and explanations. An evaluation showed that these features were beneficial for both instructors and students in an introductory programming course.

Quick Actions

Share

Share this page

ios_share

https://hci.top/en/papers/cscw/6518/2018

AdRecommended

Learn AI Coding at CodeNow

At a Glance

Paper Snapshot

fact_check
dataset
Source
CSCW
calendar_month
Year
2018
emoji_events
Award
No award tagged
group
Authors
3 authors
sell
Subtopics
—
work
Professions
—
article
Content Status
Abstract only
hub
Related Papers
0 related papers