Casdoc: Unobtrusive Explanations in Code Examples
Code examples are of great value to programmers trying to learn an unfamiliar API. Effective code examples are often surrounded with plain text explanations of the relevant concepts, techniques, and API elements involved in the example. However, authoring concise yet complete explanations is a challenging balancing act. To address this challenge, we propose Casdoc, a novel authoring technique and presentation format for annotated code examples. Casdoc-formatted code examples are HTML documents designed to embed unobtrusive explanations into the code. They thus contain more explanations to address the varying needs of a larger audience, without disrupting individual readers with information they already know. Explanations are split into short annotations and organized into an intuitive tree-like structure, thus supporting a streamlined authoring process. We used Casdoc to produce 105 Java code examples as part of the course material for an undergraduate computer science course. Students preferred the new format over traditional code examples. Their interaction with code examples suggests that the intuitive structure of Casdoc annotations reduces the need for navigation aids such as search fields.
On-line tool and video: https://www.cs.mcgill.ca/~martin/casdoc/
Tue 17 MayDisplayed time zone: Eastern Time (US & Canada) change
07:50 - 08:40 | Session 14: DocumentationResearch / Early Research Achievements (ERA) / Tool Demonstration at ICPC room Chair(s): Fiorella Zampetti University of Sannio, Italy | ||
07:50 7mTalk | Fine-Grained Code-Comment Semantic Interaction Analysis Research Mingyang Geng National University of Defense Technology, Shangwen Wang National University of Defense Technology, Dezun Dong NUDT, Shanzhi Gu Hunan Huishiwei Intelligent Technology Co., Ltd., Fang Peng University of Chinese Academy of Sciences, Weijian Ruan Shenzhen Institutes of Advanced Technology,Chinese Academy of Sciences, Liao Xiangke National University of Defense Technology DOI Pre-print Media Attached | ||
07:57 4mTalk | Using Discord Conversations as Program Comprehension Aid Early Research Achievements (ERA) Marco Raglianti Software Institute - USI, Lugano, Csaba Nagy Software Institute - USI, Lugano, Roberto Minelli Software Institute - USI, Lugano, Michele Lanza Software Institute - USI, Lugano Media Attached | ||
08:01 7mTalk | Demystifying Software Release Note Issues on GitHub Research Jianyu Wu Peking University, Hao He Peking University, Wenxin Xiao School of Computer Science, Peking University, Kai Gao University of Science and Technology Beijing, Minghui Zhou Peking University, China Pre-print Media Attached | ||
08:08 4mTalk | A First Look at Duplicate and Near-duplicate Self-admitted Technical Debt Comments Early Research Achievements (ERA) Jerin Yasmin Queen's University, Canada, Mohammad Sadegh Sheikhaei Queen's University, Yuan Tian Queens University, Kingston, Canada Pre-print Media Attached | ||
08:12 7mTalk | HatCUP: Hybrid Analysis and Attention based Just-In-Time Comment Updating Research Hongquan Zhu State Key Laboratory for Novel Software Technology, Nanjing University, Xincheng He State Key Laboratory for Novel Software Technology, Nanjing University, Lei Xu State Key Laboratory for Novel Software Technology, Nanjing University DOI Pre-print Media Attached | ||
08:19 4mTalk | Casdoc: Unobtrusive Explanations in Code Examples Tool Demonstration Mathieu Nassif McGill University, Zara Horlacher McGill University, Martin P. Robillard McGill University Pre-print Media Attached | ||
08:23 17mLive Q&A | Q&A-Paper Session 14 Research |