Tidynote: Always-Clear Notebook Authoring
Authors
Paper Title
Tidynote: Always-Clear Notebook Authoring
Publication Info
- Topic area: Enhancing clarity and exploration in computational notebook authoring.
- Keywords: Jupyter notebooks, notebook clarity, exploratory programming, scratchpad, linear execution, state management, notebook lifecycle, data analysis, computational tools, user study.
Background and Problem
- Problem / challenge: Computational notebooks like Jupyter often become cluttered and unclear during exploratory programming due to nonlinear execution and messy code. Existing systems focus on post-hoc cleaning rather than maintaining clarity throughout the notebook lifecycle.
- Significance: Clarity is essential for sharing results, teaching, and maintaining long-term usability of notebooks. However, users face significant manual effort to clean notebooks, which hinders productivity and collaboration.
- Motivation and related work: Prior tools provide post-hoc cleaning or auxiliary spaces but fail to support continuous clarity during exploration. Issues like state inconsistencies and lack of structured exploratory spaces remain unresolved, motivating the need for a system that integrates clarity and exploration seamlessly.
Solution
- Proposed approach: Tidynote, a Jupyter Notebook extension, implements an "always-clear notebook authoring" paradigm by integrating a scratchpad, movable cells, and linear execution with state forks.
- Novelty:
- Introduction of a scratchpad for temporary and exploratory work, separate from the main notebook narrative.
- Bidirectional movement of cells between the notebook and scratchpad for fluid transitions between exploration and clarity.
- Enforcement of linear execution with state forks to maintain program state clarity.
- Compatibility with standard Jupyter features for seamless integration.
- Procedure and key techniques:
- A scratchpad is attached to the notebook for exploratory work, with cells moved between the notebook and scratchpad as needed.
- Cells can be pinned to remain visible during scrolling.
- Linear execution ensures a consistent program state, with stale cells grayed out to indicate outdated outputs.
- Scratch sections in the scratchpad are sandboxed, allowing independent state management for different explorations.
Results
- Concrete findings:
- Participants' final notebooks had an average of 8.6 relevant and 10.5 necessary code statements, with only 0.8 transient statements in the main notebook.
- Scratchpad usage averaged 1.8 transient statements, indicating effective separation of exploratory and narrative content.
- All participants alternated between the notebook and scratchpad, and 11 out of 13 used cell pinning.
- Advantage over baselines:
- Tidynote supports continuous clarity during exploration, unlike prior systems that focus on post-hoc cleaning.
- Linear execution eliminates state confusion, a common issue in regular Jupyter notebooks.
- Movable cells and the scratchpad enable flexible exploration without compromising the main notebook's clarity.
- Experiments / evaluation:
- A user study with 13 participants performing open-ended data analysis tasks.
- Evaluation included task completion, notebook clarity, and participant feedback.
- Participants used Tidynote features to maintain clarity and found the system intuitive and effective for realistic tasks.
- Limitations and future work:
- Small sample size (N=13) and limited to data-driven tasks with two datasets.
- No direct comparison with baseline systems.
- Future work includes improving linear execution efficiency, enhancing scratchpad layout, and exploring adjustable clarity support.
Summary
Tidynote introduces an "always-clear notebook authoring" paradigm, addressing the tension between exploration and clarity in Jupyter notebooks. Key features include a scratchpad for exploratory work, movable cells, and linear execution with state forks, ensuring clarity in both content and program state. A user study demonstrated Tidynote's effectiveness in supporting realistic notebook tasks and enabling flexible strategies for maintaining clarity. By integrating seamlessly with Jupyter, Tidynote offers a promising approach to improving computational notebook workflows while highlighting opportunities for future enhancements in notebook and information system design.
Research Questions / Practical Problems
Question signals indexed for this paper.
- 80%
Characterizing Scalability Issues in Spreadsheet Software using Online Forums
CHI '18· User Research Methods (Interviews, Surveys, Observation) +1
- 80%
ResearchIME: A Mobile Keyboard Application for Studying Free Typing Behaviour in the Wild
CHI '18· User Research Methods (Interviews, Surveys, Observation) +1
- 67%
An Analytic Model for Time Efficient Personal Hierarchies
CHI '19· User Research Methods (Interviews, Surveys, Observation) +1
- 60%
Evaluation Strategies for HCI Toolkit Research
CHI '18· User Research Methods (Interviews, Surveys, Observation) +1
- 60%
Empirical Research Methods for Human-Computer Interaction
CHI '18· User Research Methods (Interviews, Surveys, Observation) +1
- 60%
The Development and Validation of the Technology-Supported Reflection Inventory
CHI '21· User Research Methods (Interviews, Surveys, Observation) +1
Based on Jaccard similarity of research subtopics & professions (≥60%)