Code Duplication and Reuse in Jupyter Notebooks
This addresses code management challenges for notebook users, but it is incremental as it builds on prior work by quantifying duplication and identifying barriers.
The study investigated code duplication and reuse in Jupyter notebooks, finding a mean self-duplication rate of 7.6% in GitHub repositories, but in user studies, participants rarely duplicated their own code and preferred reusing code from online sources.
Duplicating one's own code makes it faster to write software. This expediency is particularly valuable for users of computational notebooks. Duplication allows notebook users to quickly test hypotheses and iterate over data. In this paper, we explore how much, how and from where code duplication occurs in computational notebooks, and identify potential barriers to code reuse. Previous work in the area of computational notebooks describes developers' motivations for reuse and duplication but does not show how much reuse occurs or which barriers they face when reusing code. To address this gap, we first analyzed GitHub repositories for code duplicates contained in a repository's Jupyter notebooks, and then conducted an observational user study of code reuse, where participants solved specific tasks using notebooks. Our findings reveal that repositories in our sample have a mean self-duplication rate of 7.6%. However, in our user study, few participants duplicated their own code, preferring to reuse code from online sources.