Colaroid: A Literate Programming Approach for Authoring Explorable Multi-Stage Tutorials
Honorable MentionAuthors
Document Title
Colaroid: A Literate Programming Approach for Authoring Explorable Multi-Stage Tutorials
Document Information
- Domain: Programming education tools and exploratory learning
- Keywords: programming, tutorials, literate programming, computational notebooks, teaching systems, exploratory learning, programming education, IDE integration, multi-stage tutorials, user evaluation
Research Background and Problem Statement
- Identified Problems or Challenges:
- Detailed descriptions of how code is incrementally built in programming tutorials are crucial, but creating such tutorials is time-consuming and labor-intensive.
- Current computational notebooks (e.g., Jupyter) often fail to effectively present the complete code development process in a staged manner.
- Existing multi-stage tutorials lack comprehensive capture of code context and output, making it difficult to balance readability and operability.
- Significance:
- Incrementally showcasing the code-building process during programming learning not only facilitates concept comprehension but also helps learners develop problem-solving skills.
- Providing more effective tools for coding teams and educators contributes to better knowledge dissemination and collaboration.
- Research Motivation and Related Work:
- Literature suggests that tutorials should include features such as step-by-step demonstrations and code highlighting to improve learning outcomes, but traditional tools struggle to integrate code, annotations, and outputs seamlessly.
- Current surveys highlight the need for tutorial creation processes to better capture code context changes and allow exploration of intermediate results, while also supporting learners in hands-on practice.
Solution
- Proposed Method or Solution:
- Developed Colaroid, an IDE-integrated tool that enables authors to record incremental changes during the programming process and generate interactive multi-stage tutorials.
- Colaroid adopts the concept of a "temporal notebook," where code changes, context, and outputs are designed as independent historical states, allowing learners to load and modify code at any step.
- Key features include code difference capture, output capture and interaction, and efficient Markdown-based editing.
- Innovations:
- Transformed the traditional notebook model based on "spatial documents" by showcasing the temporal evolution of code, extending the concept of literate programming.
- Proposed an IDE-based tutorial creation and learning tool, achieving deep integration of real-time development and tutorial authoring.
- Users can load and interact with states at any stage of the construction process, enhancing hands-on learning experiences.
- Implementation Steps:
- Tutorial Creation: Authors use a VS Code extension to capture code changes and outputs in real-time, supporting detailed textual explanations and interaction recording for each step.
- Tutorial Editing: Allows modification of staged steps, supports code changes or additions, and automatically propagates updates to subsequent steps.
- Tutorial Publishing and Distribution: Tutorials can be exported as project files, supporting real-time use on code hosting platforms and cloud IDEs (e.g., GitHub Codespaces).
- Learner Interaction: Enables loading of any historical step and direct modification or execution of code, helping learners explore the impact of specific changes.
Research Results
- Specific Outcomes:
- Developed a complete prototype tool, Colaroid, integrating tutorial creation, editing, and exploration functionalities within the IDE.
- Evaluated the tool through two user studies:
- Tutorial creation experiments showed that Colaroid significantly improved tutorial writing efficiency and quality for educators and advanced learners.
- Learning experiments demonstrated that Colaroid tutorials offered higher interactivity and engagement compared to traditional articles and video tutorials.
- Advantages and Comparisons:
- Compared to traditional tutorials, Colaroid captures complete code context and changes, supporting navigation, exploration, and modification.
- Learners can quickly skip familiar steps and delve into areas of interest while intuitively understanding output changes.
- Tutorial authors can rapidly complete creation within a real development environment without switching tools or editing back and forth.
- Experimental or Evaluation Results:
- Author Perspective: Authors reported that Colaroid significantly improved their creation experience, with its automatic difference capture and interaction recording features being particularly helpful.
- Learner Perspective: Compared to articles and video tutorials, learners spent more time engaging with Colaroid and found it more interactive and easy to navigate.
- Tutorials generated similar learning outcomes, but learners were more inclined to recommend Colaroid as a learning tool, citing its time-saving and clarity benefits.
- Limitations and Future Directions:
- Limitations: The current tool primarily supports web programming tutorials and has yet to cover other programming domains (e.g., data science or graphic design); it does not support saving learners' exploration behaviors.
- Future Directions:
- Extend support to other programming languages and task types.
- Integrate voice recognition features to enhance oral tutorial generation capabilities.
- Add analysis modules to compare learners' code modifications with reference solutions.
In summary, Colaroid provides a novel tutorial creation and learning tool based on a temporal dimension, opening new possibilities for programming education and collaboration. It offers potential directions for broader learning scenarios and user groups.
Research Questions / Practical Problems
Question signals indexed for this paper.
Research Questions
3- How can the time and effort required to create staged explorable programming tutorials be reduced?Category: Tutorial Authoring and Skill InstructionSimilar questionsarrow_forward
- Computational notebooks cannot effectively present staged code development processes—can new tools address this gap?Category: Tutorial Authoring and Skill InstructionSimilar questionsarrow_forward
- How can interaction designs simultaneously improve the readability and operability of coding tutorials?Category: Tutorial Authoring and Skill InstructionSimilar questionsarrow_forward
Practical Problems
1- Programming tutorials are tedious and burdensome, making it difficult for learners to interactively explore staged code evolution.Category: Tutorial Authoring and Skill InstructionSimilar questionsarrow_forward
- 83%
Misty: UI Prototyping Through Interactive Conceptual Blending
CHI '25· Knowledge Worker Tools & Workflows +1
- 83%
Fuse: In-Situ Sensemaking Support in the Browser
UIST '22· Knowledge Worker Tools & Workflows +1
- 71%
From Tabs to Structures: Understanding and Supporting Web Page Management
CHI '26· Knowledge Worker Tools & Workflows +2
- 71%
Hiring for Creativity in a World of UX Design Systems
CHI '26· Participatory Design +2
- 67%
Exploring New File Metaphors for a Networked World through the File Biography
CHI '18· Knowledge Worker Tools & Workflows +1
- 67%
ORC Layout: Adaptive GUI Layout with OR-Constraints
CHI '19· Knowledge Worker Tools & Workflows +1
- 67%
Avoiding the Turing Tarpit: Learning Conversational Programming by Starting from Code's Purpose
CHI '21· Programming Education & Computational Thinking +1
- 67%
Think-Aloud Computing: Supporting Rich and Low-Effort Knowledge Capture
CHI '21· Knowledge Worker Tools & Workflows +1
- 67%
TweakIt: Supporting End-User Programmers Who Transmogrify Code
CHI '21· Knowledge Worker Tools & Workflows +1
- 67%
Understanding How Programmers Can Use Annotations on Documentation
CHI '22· Programming Education & Computational Thinking +1
Based on Jaccard similarity of research subtopics & professions (≥60%)