# Better Code, Better Sharing:On the Need of Analyzing Jupyter Notebooks

arXiv: https://arxiv.org/abs/1906.05234 · HTML: https://mlsanity.com/paper/1906.05234/

## Key facts

- Cited by 13 papers in the map (data through 14 Oct 2026).
- First posted on arXiv 12 Jun 2019.

## Built on by (most cited first, 13 of 13)

- [On Continuous Integration / Continuous Delivery for Automated Deployment of Machine Learning Models using MLOps](https://mlsanity.com/paper/2202.03541/) (2022)
- [Towards a Change Taxonomy for Machine Learning Systems](https://mlsanity.com/paper/2203.11365/) (2022)
- [Eliciting Best Practices for Collaboration with Computational Notebooks](https://mlsanity.com/paper/2202.07233/) (2022)
- [Pynblint: a Static Analyzer for Python Jupyter Notebooks](https://mlsanity.com/paper/2205.11934/) (2022)
- [Context-aware Execution Migration Tool for Data Science Jupyter Notebooks on Hybrid Clouds](https://mlsanity.com/paper/2107.00187/) (2021)
- [What is Software Quality for AI Engineers? Towards a Thinning of the Fog](https://mlsanity.com/paper/2203.12697/) (2022)
- [Machine Learning practices and infrastructures](https://mlsanity.com/paper/2307.06518/) (2023)
- [Assessing the Quality of Computational Notebooks for a Frictionless Transition from Exploration to Production](https://mlsanity.com/paper/2205.11941/) (2022)
- [Predicting the Understandability of Computational Notebooks through Code Metrics Analysis](https://mlsanity.com/paper/2406.10989/) (2024)
- [Analysing Python Machine Learning Notebooks with Moose](https://mlsanity.com/paper/2509.11748/) (2025)
- [Data-aware Static Analysis: Improving Detection of Semantic Faults in Machine Learning Code Using Data Characteristics](https://mlsanity.com/paper/2606.09957/) (2026)
- [JupOtter: Cell-Level Bug Detection in Jupyter Notebooks](https://mlsanity.com/paper/2606.23877/) (2026)
- [PandasCorpus: A Resource of Real-World Pandas Workflows and Usage Patterns](https://mlsanity.com/paper/2608.14742/) (2026)

## Abstract (arXiv)

By bringing together code, text, and examples, Jupyter notebooks have become one of the most popular means to produce scientific results in a productive and reproducible way. As many of the notebook authors are experts in their scientific fields, but laymen with respect to software engineering, one may ask questions on the quality of notebooks and their code. In a preliminary study, we experimentally demonstrate that Jupyter notebooks are inundated with poor quality code, e.g., not respecting recommended coding practices, or containing unused variables and deprecated functions. Considering the education nature of Jupyter notebooks, these poor coding practices as well as the lacks of quality control might be propagated into the next generation of developers. Hence, we argue that there is a strong need to programmatically analyze Jupyter notebooks, calling on our community to pay more attention to the reliability of Jupyter notebooks.
