StickyLand: Breaking the Linear Presentation of Computational Notebooks

crown jewel figure
The StickyLand user interface persists on top of a computational notebook, creating an always-on workspace for data scientists to display text and execute code. (A) A user can drag an existing Notebook Cell to (B) the Sticky Dock that mounts on the edge of the notebook. (C) It creates a Sticky Cell that stays at the same location even when the user scrolls the notebook. (D) The user can further convert this cell to a Floating Cell that floats on top of the notebook with customizable position and size.
Demo Video
Abstract
How can we better organize code in computational notebooks? Notebooks have become a popular tool among data scientists, as they seamlessly weave text and code together, supporting users to rapidly iterate and document code experiments. However, it is often challenging to organize code in notebooks, partially because there is a mismatch between the linear presentation of code and the non-linear process of exploratory data analysis. We present StickyLand, a notebook extension for empowering users to freely organize their code in non-linear ways. With sticky cells that are always shown on the screen, users can quickly access their notes, instantly observe experiment results, and easily build interactive dashboards that support complex visual analytics. Case studies highlight how our tool can enhance notebook users's productivity and identify opportunities for future notebook designs. StickyLand is available at https://github.com/xiaohk/stickyland.
Citation
StickyLand: Breaking the Linear Presentation of Computational Notebooks
@inproceedings{wangStickyLandBreaking2022,
  title = {{{StickyLand}}: {{Breaking}} the {{Linear Presentation}} of {{Computational Notebooks}}},
  shorttitle = {{{StickyLand}}},
  booktitle = {Extended {{Abstracts}} of the 2022 {{CHI Conference}} on {{Human Factors}} in {{Computing Systems}}},
  author = {Wang, Zijie J. and Dai, Katie and Edwards, W. Keith},
  year = {2022},
  publisher = {{ACM}}
}