Computational notebooks -- such as Jupyter or Colab -- combine text and data analysis code. They have become ubiquitous in the world of data science and exploratory data analysis. Since these notebooks present a different programming paradigm than conventional IDE-driven programming, it is plausible that debugging in computational notebooks might also be different. More specifically, since creating notebooks blends domain knowledge, statistical analysis, and programming, the ways in which notebook users find and fix errors in these different forms might be different. In this paper, we present an exploratory, observational study on how Python Jupyter notebook users find and understand potential errors in notebooks. Through a conceptual replication of study design investigating the error identification strategies of R notebook users, we presented users with Python Jupyter notebooks pre-populated with common notebook errors -- errors rooted in either the statistical data analysis, the knowledge of domain concepts, or in the programming. We then analyzed the strategies our study participants used to find these errors and determined how successful each strategy was at identifying errors. Our findings indicate that while the notebook programming environment is different from the environments used for traditional programming, debugging strategies remain quite similar. It is our hope that the insights presented in this paper will help both notebook tool designers and educators make changes to improve how data scientists discover errors more easily in the notebooks they write.
翻译:计算笔记本中的调试可能也不同。更具体地说,由于创建笔记本可以混合域知识、统计分析和编程,笔记本用户发现和修正这些不同形式的错误的方法可能不同。在本文中,我们提出了一个探索和观察性研究,说明Python Jupyter笔记本用户如何发现和理解笔记本中的潜在错误。由于这些笔记本的理论复制研究设计调查了R笔记本用户的错误识别策略,我们向用户展示了Python Jupyter笔记本与共同笔记本错误的预先传播的错误。这些错误源于统计数据分析、统计分析和编程概念的知识或编程。我们随后分析了我们的研究参与者用来查找这些错误的策略,并确定每项策略在辨别错误时多么成功。我们的调查结果表明,笔记本编程环境与用于传统编程的科学家的错误设计策略不同,我们笔记本编程环境的写环境与用来改进了类似的笔记本设计策略的希望。