Error Identification Strategies for Python Jupyter Notebooks
计算型笔记本--如Quixyter或Colab --结合了文本和数据分析代码。它们在数据科学和探索性数据分析的世界中无处不在。由于这些笔记本提供了与传统IDE驱动编程不同的编程范式,因此计算笔记本中的调试也可能不同。更具体地说,由于创建笔记本混合了领域知识、统计分析和编程,因此笔记本用户在这些不同形式中查找和修复错误的方式可能会有所不同。在本文中,我们提出了一个探索性的,观察性的研究,关于Python的笔记本用户如何发现和理解笔记本中的潜在错误。通过研究R notebook用户的错误识别策略的研究设计的概念复制,我们向用户提供了预先填充了常见笔记本错误的Python PythonYter笔记本-错误根源于统计数据分析,领域概念知识或编程。然后,我们分析了研究参与者用来发现这些错误的策略,并确定了每种策略在识别错误方面的成功程度。我们的研究结果表明,虽然笔记本电脑的编程环境是不同的环境用于传统的编程,调试策略仍然非常相似。我们希望本文中提出的见解能够帮助笔记本工具设计者和教育工作者做出改变,以改善数据科学家如何更容易地发现他们编写的笔记本中的错误。
2022-04-07 cs.SE
Mining the Characteristics of Jupyter Notebooks in Data Science Projects
本研究旨在挖掘和分析 Kaggle 和 GitHub 平台上高投票及流行的 Jupyter Notebooks 特征,通过探索性分析、数据可视化和特征重要性分析识别最佳实践模式,为数据科学从业者提供从新手到可部署项目的培训指南。
2025-04-26 cs.SE
Pynblint: a Static Analyzer for Python Jupyter Notebooks
University of Bari(巴里大学)
Xuyter Notebook是许多数据科学家在ML工作流早期阶段的首选工具。然而,notebook格式被批评为导致不良的编程实践;事实上,研究人员已经表明,开源存储库被质量差的notebook淹没。ML工作流原型阶段的低质量输出构成了ML模型产品化的明显瓶颈。为了促进更好的笔记本的创建,我们开发了Pynblint,这是一个用Python编写的用于笔记本的静态分析器。该工具检查笔记本电脑(和周围的存储库)与一组经验验证的最佳实践的合规性,并在检测到违规时提供有针对性的建议。
2022-05-24 cs.LG cs.SE
Typhon: Automatic Recommendation of Relevant Code Cells in Jupyter Notebooks
针对开发者对Jupyter Notebook代码推荐的需求,提出Typhon方法,通过文本相似度算法匹配相关代码单元,实验验证其具备中等推荐准确率,为该领域后续优化提供基础。
2024-05-15 cs.SE
JunoBench: A Benchmark Dataset of Crashes in Python Machine Learning Jupyter Notebooks
Linköping University(林雪平大学);University of Murcia(穆尔西亚大学)
JunoBench通过提供真实崩溃案例、修复方案和详细标注,促进Jupyter笔记本中机器学习bug检测、定位、诊断与修复的研究。
2026-04-30 cs.SE
JupOtter: Cell-Level Bug Detection in Jupyter Notebooks
University of Alberta(阿尔伯塔大学)
提出JupOtter系统,通过保留单元结构的标记化策略和单元级错误预测技术,在三个评估数据集中的两个上超越静态分析器和大型语言模型,实现高F1分数的单元级错误检测。
2026-06-24 cs.AI cs.SE
A Large-Scale Comparison of Python Code in Jupyter Notebooks and Scripts
近年来,Xueyter笔记本电脑在软件工程的多个领域越来越受欢迎,例如数据科学、机器学习和计算机科学教育。它们的流行与其丰富的功能,用于呈现和可视化数据,但是,最近的研究表明,笔记本电脑也有很多缺点:大量的代码克隆,低再现性等,在这项工作中,我们进行了比较Python代码写在笔记本电脑和传统的Python脚本。我们从两个角度比较代码:结构和风格。在分析的第一部分中,我们报告了行数、函数的使用以及各种复杂性指标的差异。在第二部分中,我们展示了文体问题数量的差异,并对所研究的媒体中最常见的15个文体问题进行了广泛的概述。总的来说,我们证明了笔记本电脑的特点是较低的代码复杂性,但是,他们的代码可以被认为是比在脚本更纠缠。至于风格,笔记本往往有1.4倍的风格问题,但同时,其中一些是由笔记本中的特定编码实践引起的,应被视为误报。通过这项研究,我们希望为研究笔记本电脑的具体问题铺平道路,这些问题应该通过开发笔记本电脑专用工具来解决,并提供在这方面有用的各种见解。
2022-03-30 cs.SE
Similarity-Based Assessment of Computational Reproducibility in Jupyter Notebooks
本文提出 SRI 指标,通过面向不同 Python 对象类型的相似度度量比较重跑与原始输出,以定量分数和定性见解评估 Jupyter Notebook 的计算可复现性。
2025-09-28 cs.DB cs.SE
A Systematic Literature Review of Software Engineering Research on Jupyter Notebook
University of Alberta(阿尔伯塔大学);Queen’s University(女王大学)
本文系统回顾了Jupyter Notebook的软件工程研究,发现其在人机交互领域更受欢迎,且存在代码重用、可读性等研究空白,未来需探索自动化测试和文档生成等方向。
2026-01-04 cs.CE cs.HC cs.SE
Why do Machine Learning Notebooks Crash? An Empirical Study on Public Python Jupyter Notebooks
60 yter笔记本已经成为数据科学的核心,在灵活的环境中集成代码,文本和输出。随着机器学习(ML)的兴起,笔记本电脑越来越多地用于原型设计和数据分析。然而,由于它们依赖于复杂的机器学习库和灵活的笔记本语义,允许单元以任何顺序运行,笔记本容易受到软件错误的影响,这些错误可能导致程序崩溃。本文提出了一项全面的实证研究,重点关注公开可用的Python ML笔记本中的崩溃。我们从GitHub和Kaggle收集了64,031个笔记本,其中包含92,542个崩溃,并手动分析了746个崩溃样本的各个方面,包括崩溃类型和根本原因。我们的分析确定了独特的ML特定崩溃类型,例如违反API约束的张量形状不匹配和数据集值错误。此外,我们强调了与笔记本语义相关的独特根本原因,包括乱序执行和以前单元格的残留错误,这些在以前的研究中基本上被忽视了。此外,我们还确定了最容易出错的ML库,并分析了ML管道阶段的崩溃分布。我们发现,超过40%的崩溃源于API滥用和笔记本特定的问题。在使用TensorFlow/Keras和Torch等ML库时经常发生崩溃。此外,超过70%的崩溃发生在ML管道的数据准备、模型训练和评估或预测阶段,而数据可视化错误往往是ML笔记本所独有的。
2025-05-27 cs.SE
HAConvGNN: Hierarchical Attention Based Convolutional Graph Neural Network for Code Documentation Generation in Jupyter Notebooks
University of Waterloo(滑铁卢大学);IBM Research(IBM研究院);University of Michigan(密歇根大学);IBM Research Europe(IBM欧洲研究院);JD.COM Silicon Valley Research Center(京东硅谷研究中心)
MysterNotebook允许数据科学家在单元格中编写机器学习代码及其文档。在本文中,我们提出了一个新的任务的代码文档生成(CDG)的计算笔记本电脑。与之前专注于为单个代码片段生成文档的CDG任务相比,在计算笔记本中,标记单元中的一个文档通常对应于多个代码单元,并且这些代码单元具有固有的结构。我们提出了一个新的模型(HAConvGNN),它使用一个分层的注意力机制,以考虑相关的代码单元格和相关的代码令牌信息时,生成的文档。在一个新的语料库上进行测试,该语料库是从有据可查的Kaggle笔记本构建的,我们表明我们的模型优于其他基线模型。
2021-09-08 cs.LG cs.SE
Code Duplication and Reuse in Jupyter Notebooks
复制自己的代码可以更快地编写软件。这种便利对于计算笔记本的用户特别有价值。复制功能允许笔记本用户快速检验假设并覆盖数据。在本文中,我们探讨了多少,如何以及从哪里发生的代码重复计算笔记本电脑,并确定潜在的障碍代码重用。以前在计算笔记本领域的工作描述了开发人员重用和重复的动机,但没有显示重用发生了多少,或者他们在重用代码时面临哪些障碍。为了解决这一差距,我们首先分析了GitHub存储库中包含在存储库的笔记本中的代码重复,然后进行了一项代码重用的观察性用户研究,参与者使用笔记本解决了特定任务。我们的研究结果表明,在我们的样本库有一个平均的自我复制率为7.6%。然而,在我们的用户研究中,很少有参与者复制自己的代码,他们更喜欢重用来自在线资源的代码。
2020-05-27 cs.HC cs.SE
Training and Evaluating a Jupyter Notebook Data Science Assistant
Microsoft(微软)
我们研究了由序列到序列的Transformer驱动的数据科学助手的可行性,方法是在所有公开可用的Jupyter Notebook GitHub存储库上训练一个新模型JuPyT5,并开发一个新的度量标准:数据科学问题(DSP)。DSP是从306个教学笔记本中精选的1119个问题的集合,其中包括92个数据集依赖关系,自然语言和Markdown问题描述,以及基于断言的单元测试。这些笔记本旨在测试大学生对数学和数据科学的各种Python实现的掌握程度,我们现在利用它们来研究JuPyT5理解和通过测试的能力。我们分析了DSP的内容,验证了它的质量,我们发现,给定100次采样尝试,JuPyT5能够解决77.5%的DSP问题。我们进一步提出了各种消融和统计分析,并比较DSP的其他最近的自然语言代码基准。
2022-01-30 cs.LG cs.SE
How Scientists Use Jupyter Notebooks: Goals, Quality Attributes, and Opportunities
通过观察20位科学家日常使用 Jupyter notebooks,研究其目标、质量属性、实现策略及AI工具融入方式,并提出改进计算笔记本与未来编程系统的设计建议。
2025-03-16 cs.HC cs.SE
Jup2Kub: algorithms and a system to translate a Jupyter Notebook pipeline to a fault tolerant distributed Kubernetes deployment
Jup2Kub 是一个软件系统,通过将 Jupyter notebooks 中的科学工作流转换为分布式、高性能的 Kubernetes 环境,解决了其扩展性、容错性和依赖稳定性问题。
2023-11-21 cs.DC cs.SE
Suggesting Code Edits in Interactive Machine Learning Notebooks Using Large Language Models
University of Waterloo(滑铁卢大学)
本文构建首个含48,398项Jupyter编辑的数据集,评估LLM预测代码修改,发现编辑高度局部但模型准确率低,凸显上下文的重要性。
2025-01-16 cs.CL cs.LG cs.SE
Method Names in Jupyter Notebooks: An Exploratory Study
本研究分析了384个Jupyter Notebook中691个方法的命名实践,揭示了其对简洁性的偏好及偏离传统命名模式的特征,为科学代码命名评估工具和教育资源开发提供参考。
2025-04-29 cs.SE
Exploring the Jupyter Ecosystem: An Empirical Study of Bugs and Vulnerabilities
本文通过分析两大平台的大规模 Notebook 数据集,结合定量分析、扎根理论与安全提交研究,构建缺陷分类并揭示配置、API 使用及部署框架漏洞风险。
2025-07-24 cs.SE
Improving Quantum Developer Experience with Kubernetes and Jupyter Notebooks
针对经典系统模拟量子计算机计算需求高、量子软件开发难度大的问题,本文研究了借助Kubernetes与Jupyter Notebooks,以易用经济的远程算力提升量子开发者体验的可行性。
2024-08-13 cs.SE quant-ph
Characterising Bugs in Jupyter Platform
本文针对Jupyter平台缺陷研究空白,分析387个缺陷并划分11类根因与11类症状,提出14项开发者发现,为Jupyter缺陷检测修复工具研发提供新方向。
2025-06-16 cs.SE
Observing Fine-Grained Changes in Jupyter Notebooks During Development Time
JetBrains Research(JetBrains 研究院);University of Zurich(苏黎世大学)
针对软件工程中笔记本分析研究少的情况,本文引入收集代码变化的工具集,收集超100小时开发者相关数据形成数据集,用以研究笔记本开发过程动态特性及变化,有诸多发现并提研究方向。
2026-07-07 cs.SE
Understanding the Characteristics of Visual Contents in Open Source Issue Discussions: A Case Study of Jupyter Notebook
大多数开源软件开发的问题跟踪系统都包括社区成员嵌入可视内容的功能,如图像和视频,以增强讨论。虽然扮演着重要的角色,有一点知识的视觉内容的特点,以支持他们的使用。为了解决这一差距,我们进行了一项实证研究,对笔记本电脑项目。我们发现,超过四分之一的问题,在笔记本电脑项目包括视觉内容。此外,在评论中有视觉内容但在问题帖子中没有的问题往往会有更长的讨论时间,并有更多的讨论者参与。在我们的定性分析中,我们在样本中确定了八种类型的视觉内容,其中约60%包括主要产品的屏幕截图或模型。我们还发现,视觉内容服务于不同的目的,触及问题和解决问题的空间。我们的努力是在开放源码软件问题讨论中全面了解视觉内容特征的重要一步。我们的研究结果提供了一些设计问题跟踪系统,以更好地促进视觉内容的使用。
2022-04-28 cs.HC cs.SE
Packaging Jupyter notebooks as installable desktop apps using LabConstrictor
Turku Bioscience Centre, University of Turku and Åbo Akademi University(图尔库生物科学中心,图尔库大学和奥布阿克adem大学);Faculty of Science and Engineering, Cell Biology, Åbo Akademi University(奥布阿克adem大学科学与工程学院细胞生物学系);InFLAMES Research Flagship Centre, University of Turku(图尔库大学InFLAMES研究旗舰中心);Instituto de Tecnologia Química e Biológica António Xavier, Universidade Nova de Lisboa(安东尼奥·亚历山大化学与生物理工学院,里斯本新大学);UCL Laboratory for Molecular Cell Biology, University College London(伦敦大学学院分子细胞生物学实验室);Foundation for the Finnish Cancer Institute(芬兰癌症研究所基金会)
LabConstrictor通过自动化流程简化Jupyter笔记本的分发、安装和共享,使学术研究更高效。
2026-03-11 cs.SE q-bio.QM
Characterizing Feedback Statements in Machine Learning Jupyter Notebooks
Delft University of Technology(代尔夫特理工大学)
本研究通过挖掘 GitHub 和 Kaggle 上的 Jupyter notebook,提取并分类了超过百万条反馈语句,构建了分类体系,揭示了探索性反馈的主导地位及对静默失败的防御实践。
2026-09-22 cs.SE
Understanding Feedback Mechanisms in Machine Learning Jupyter Notebooks
本文通过挖掘 29.78 万个 Jupyter Notebook 和 230 万个代码单元,识别并分类了断言、打印语句和最后一个单元语句三种反馈机制,揭示了隐式反馈在机器学习关键设计决策中的广泛使用,并为利用现有反馈机制减轻技术债务和提升可复现性提供了实用建议。
2024-07-31 cs.SE
Containing the Reproducibility Gap: Automated Repository-Level Containerization for Scholarly Jupyter Notebooks
Chemnitz University of Technology(开姆尼茨工业大学);FIZ Karlsruhe — Leibniz Institute for Information Infrastructure(卡尔斯鲁厄FIZ——莱布尼茨信息基础设施研究所)
本文提出自动化可重复性工程流水线,通过依赖推断、容器生成和隔离执行,评估学术笔记本的执行环境,解决依赖问题并提升执行稳定性,但发现仍存在低输出保真度的可重复性差距。
2026-04-01 cs.CE cs.SE
A Flexible Cell Classification for ML Projects in Jupyter Notebooks
RWTH Aachen University(亚琛工业大学)
针对现有Jupyter Notebook ML代码单元分类工具依赖静态查找表、灵活性不足的问题,提出结合规则与决策树的混合分类方法,实现为JupyLabel工具,实验证明其性能显著优于现有工具HeaderGen。
2024-03-12 cs.LG cs.SE
Automated Assertion Generation and Regression Testing for Machine Learning Notebooks
Cornell University(康奈尔大学);Veermata Jijabai Technological Institute(维尔玛塔·吉贾拜技术学院);Dwarkadas J Sanghvi College of Engineering(德瓦卡达斯·J·桑格维工程学院)
本研究提出NBTestGen自动生成ML笔记本的回归断言,搭配NBTest框架实现非侵入式回归测试,在Kaggle笔记本上验证了其高有效性,获开发者认可且被SHAP集成至CI。
2026-08-06 cs.SE
Nalin: Learning from Runtime Behavior to Find Name-Value Inconsistencies in Jupyter Notebooks
变量名对于理解和维护代码很重要。如果变量名和存储在变量中的值不匹配,则程序会出现名称-值不一致,这是由于开发人员可能希望修复的两种情况之一:通过误导性名称引用正确的值,这对代码的可理解性和可维护性产生负面影响,或者正确的名称绑定到错误的值,这可能导致意外的运行时行为。查找名称-值不一致是很困难的,因为它需要理解名称的含义以及有关在运行时分配给变量的值的知识。本文介绍了Nalin,一种自动检测名称-值不一致的技术。该方法结合了一个动态分析,它跟踪名称的值分配,并结合了一个神经机器学习模型,预测名称和值是否匹配。据我们所知,这是第一次将发现编码问题的问题公式化为名称和运行时值的分类问题。我们将Nalin应用于106,652个真实的Python程序,由于没有静态声明的类型,有意义的名称特别重要。我们的研究结果表明,分类器检测名称值不一致的准确性很高,Nalin报告的警告有80%的精度和76%的召回w.r.t.用户研究中创建的基本事实,并且我们的方法补充了查找编码问题的现有技术。
2021-12-12 cs.SE
CodePod: A Language-Agnostic Hierarchical Scoping System for Interactive Development
针对Jupyter Notebook线性结构与全局命名空间限制大型项目扩展性的问题,提出语言无关的分层作用域系统CodePod,通过源码级转换实现嵌套模块增量求值,经形式化证明与用户研究验证可显著提升项目可扩展性。
2025-07-31 cs.PL cs.SE
Static Analysis Driven Enhancements for Comprehension in Machine Learning Notebooks
本文提出 HeaderGen 工具,通过增强 PyCG 调用图分析并引入流敏感性和外部库返回类型解析,自动为机器学习 notebook 代码单元生成分类标题,从而提升 notebook 的可读性与理解效率,实验显示其在调用图分析和标题生成上均具有较高准确率。
2024-06-11 cs.SE
Bridging the Prototype-Production Gap: A Multi-Agent System for Notebooks Transformation
本文提出多智能体系统 Codelevate,通过 Architect、Developer 和 Structure 三个智能体协同工作,自动将 Jupyter notebook 转换为结构良好、可维护的 Python 代码仓库,在保留计算语义的同时提升代码质量指标。
2025-11-10 cs.MA cs.SE
A Notebook Format for the Holistic Design of Embedded Systems (Tool Paper)
本文提出了使用笔记本电脑的设计文档和工具交互的严格设计嵌入式系统。传统上,笔记本是一系列在(文本)代码和散文之间交替的单元格,以形成一个文档,该文档旨在按照文学编程的精神从上到下阅读。我们将笔记本电脑的使用扩展到pCharts指定的嵌入式系统。这些图表在单元格中进行可视化编辑。其他单元格可以包含生成代码并定性和定量分析图表的语句;此外,笔记本单元格可以包含从生成的代码构建产品的其他指令。这使得笔记本可以像脚本一样重放以重新分析设计和重新构建产品,但也允许笔记本用于演示,如本文和设计检查。与笔记本电脑的交互是通过连接到本地或远程服务器的Web浏览器完成的,从而允许在需要时远程运行计算密集型分析。pState笔记本是作为对Quixyter的扩展实现的。底层的软件体系结构进行了描述,并讨论了在笔记本电脑中嵌入的图表中的过渡标签的适当位置的问题。
2018-11-27 cs.PL cs.SE
Themisto: Jupyter-Based Runtime Benchmark
JetBrains Research(JetBrains研究院)
本研究提出包含Jupyter笔记本开发轨迹的Themisto基准测试,用于衡量LLMs利用运行时信息的能力,发现当前LLMs表现不佳,指出代码模型开发中纳入运行时上下文的领域研究不足。
2025-04-16 cs.AI cs.LG cs.SE
Predicting the Understandability of Computational Notebooks through Code Metrics Analysis
Department of Computer Engineering, Sharif University of Technology(计算机工程系,谢赫拉兹大学)
本研究提出利用用户评论和笔记本指标(如UOCU)预测Jupyter笔记本代码可理解性,通过随机森林分类器达到89%准确率,验证了用户意见信号的有效性。
2025-06-17 cs.AI cs.SE
A Study of Scientific Computational Notebook Quality
UC San Diego(加州大学圣地亚哥分校)
本研究评估科学代码质量,发现代码不可重现、重复和状态管理问题严重,需改进工具以提升可重复性、可读性和可重用性。
2026-03-24 cs.SE
Practical programming research of Linear DML model based on the simplest Python code: From the standpoint of novice researchers
QUT(昆士兰科技大学)
本文用最简Python代码在Jupyter notebook中实现并比较线性DML模型,发现当前库API不足以支持新手构建高质量模型,且存在结果变量维度不匹配问题。
2025-02-22 cs.LG cs.SE
Natural Language to Code Generation in Interactive Data Science Notebooks
Google Inc.(谷歌公司)
计算笔记本电脑,如Quixyter笔记本电脑,是交互式计算环境,在数据科学家中无处不在,用于执行数据整理和分析任务。为了衡量人工智能配对程序员的性能,这些程序员自动合成程序以完成用户给出的自然语言(NL)意图,我们使用数据科学笔记本中的pandas数据分析框架构建了ARCADE,这是一个包含1082个代码生成问题的基准测试。ARCADE的特点是从同一个笔记本中产生多轮NL到代码的问题。它需要一个模型来理解丰富的多模态上下文,例如现有的笔记本单元及其执行状态以及先前的交互。为了在这个具有挑战性的任务上建立一个强大的基线,我们开发了PaChiNCo,这是一个用于Python计算笔记本的62 B代码语言模型(LM),它的性能明显优于公共代码LM。最后,我们探索了Few-Shot提示策略,以逐步分解和NL解释来引出更好的代码,显示了提高模型预测的多样性和可解释性的潜力。
2022-12-19 cs.CL cs.SE
CRANE-LLM: Runtime-Augmented LLMs for Crash Prediction and Diagnosis in ML Notebooks
Linköping University(林雪平大学);University of Murcia(穆尔西亚大学)
CRANE-LLM通过整合运行时信息提升ML笔记本崩溃检测与诊断的准确性与F1分数。
2026-08-25 cs.SE
LeakageDetector 2.0: Analyzing Data Leakage in Jupyter-Driven Machine Learning Pipelines
本文提出 LeakageDetector 这一 VS Code 扩展,用于检测 Jupyter Notebook 中 ML 流水线的数据泄漏,并提供快速修复与 LLM 驱动两种纠正机制,帮助开发者提升代码质量。
2025-09-19 cs.SE
Towards Understanding Machine Learning Testing in Practise
本文通过挖掘Jupyter notebooks中的文本、代码和图像,采用定性与实证结合的双管齐下方法研究ML管道可视化,以深入理解ML测试过程并为程序理解和调试提供新视角。
2023-05-22 cs.SE
PandasCorpus: A Resource of Real-World Pandas Workflows and Usage Patterns
Gisma University of Applied Sciences(吉斯马应用科学大学)
该研究构建了包含13.9万个Jupyter笔记本的PandasCorpus数据集,分析2015-2025年Pandas工作流特征,为相关研究提供公开资源。
2026-08-18 cs.LG cs.SE