Observing Fine-Grained Changes in Jupyter Notebooks During Development Time
arXiv:2507.15831 · doi:10.1016/j.jss.2026.112983
Abstract
In software engineering research, the analysis of fine-grained logs led to significant innovations in areas such as refactoring, security, and code completion. However, even though computational notebooks are a staple of data science and an important tool in machine learning, few similar studies have been conducted in this area. To help bridge this research gap, this paper makes three scientific contributions. (1) We introduce a toolset for collecting code changes in Jupyter notebooks during development time. (2) We use it to collect more than 100 hours of work related to a data analysis task and a machine learning task (carried out by 20 developers with different levels of expertise), resulting in a dataset containing 2,655 cells and 9,207 cell executions. (3) Finally, we use this dataset to investigate the dynamic nature of the notebook development process and the changes that take place in the notebooks. In our analysis of the collected data, we classified the changes made to the cells between executions and found that a significant number of these changes constituted code iteration modifications. We report a number of other insights and propose detailed future research directions on the novel data.
Published in the Journal of Systems and Software (JSS). 36 pages, 8 figures
References in corpus (8)
- Human-AI Collaboration in Data Science: Exploring Data Scientists' Perceptions of Automated AI
- Kaggle forecasting competitions: An overlooked learning opportunity
- TaskTracker-tool: a Toolkit for Tracking of Code Snapshots and Activity Data During Solution of Programming Tasks
- Jupyter Notebooks on GitHub: Characteristics and Code Clones
- Better Code, Better Sharing:On the Need of Analyzing Jupyter Notebooks
- The Effect of Perceptual Load on Performance within IDE in People with ADHD Symptoms
- A Large-Scale Comparison of Python Code in Jupyter Notebooks and Scripts
- All You Need Is Logs: Improving Code Completion by Learning from Anonymous IDE Usage Logs