Skip to main content
QUICK REVIEW

[论文解读] C-Pack of IPAs: A C90 Program Benchmark of Introductory Programming Assignments

Pedro Orvalho, Mikoláš Janota|arXiv (Cornell University)|Jun 17, 2022
Teaching and Learning Programming被引用 7
一句话总结

本文介绍了 C-Pack-IPAs,这是一个公开可用的基准数据集,包含 25 个 C90 语言的入门级编程作业(IPAs),涵盖语义正确、语义错误和语法错误的学生提交代码。该数据集可用于评估针对初学者程序员的自动化程序修复框架,提供每项作业的多种正确实现方式和全面的测试套件,是目前少数同时涵盖语义和语法错误的 C 语言基准之一。

ABSTRACT

Due to the vast number of students enrolled in Massive Open Online Courses (MOOCs), there has been an increasing number of automated program repair techniques focused on introductory programming assignments (IPAs). Such techniques take advantage of previous correct student implementations in order to provide automated, comprehensive, and personalized feedback to students. This paper presents C-Pack-IPAs, a publicly available benchmark of students' programs submitted for 25 different IPAs. C-Pack-IPAs contains semantically correct, semantically incorrect, and syntactically incorrect programs plus a test suite for each IPA. Hence, C-Pack-IPAs can be used to help evaluate the development of novel semantic, as well as syntactic, automated program repair frameworks, focused on providing feedback to novice programmers.

研究动机与目标

  • 为应对大规模在线课程(MOOCs)中因入门级编程课程学生人数众多而产生的对自动化、个性化反馈的日益增长的需求。
  • 提供一个全面的基准,用于评估针对初学者 C 语言程序员的自动化程序修复工具。
  • 通过真实学生提交的代码,支持语义和语法修复框架的开发。
  • 提供一个公开可访问、已匿名化的数据集,并为每项 IPA 配备测试套件,以支持可复现的评估。
  • 填补现有公开 C 语言基准中缺乏同时包含语义和语法错误以及多项正确实现方式的空白。

提出的方法

  • 该基准从里斯本技术大学(Instituto Superior Técnico)的一门入门级 C 语言编程课程中的三个实验班收集学生提交代码。
  • 提交代码被分类为:语义正确(通过所有测试用例)、语义错误(可编译但测试失败)或语法错误(编译失败)。
  • 每项 IPA 均包含用于评估正确性的测试套件,同时提供参考实现以确保与修复框架的兼容性。
  • 所有学生程序均已匿名化,注释被移除,并获得了用于学术用途的使用许可。
  • 该数据集托管在 GitHub 上,包含关于提交代码在不同学年和不同题目中分布的详细元数据。
  • 该基准支持使用真实学生代码评估语义和语法修复技术。

实验结果

研究问题

  • RQ1自动化程序修复框架在修复初学者程序员提交的语义错误 C90 程序方面效果如何?
  • RQ2修复框架在多大程度上可以利用多种正确实现来提高对 IPA 的修复准确性?
  • RQ3语法修复工具能否有效处理初学者 C 代码中常见的真实编译错误?
  • RQ4正确、语义错误和语法错误提交代码的分布如何影响修复工具的评估?
  • RQ5一个包含 25 个不同 IPA 且每项包含多种正确和错误实现的基准,其可扩展性和多样性如何?

主要发现

  • C-Pack-IPAs 涉及 25 个不同的入门级编程作业,共包含 653 个语义正确的 C90 程序、513 个语义错误的程序以及 98 个语法错误的程序。
  • 该数据集为每项 IPA 提供了测试套件和参考实现,支持对修复框架的全面评估。
  • 该基准在 GitHub 上公开提供,学生提交代码已匿名化,注释已移除以保护隐私。
  • C-Pack-IPAs 是少数同时包含语义和语法错误案例以及每项 IPA 多种正确实现方式的 C90 基准之一。
  • 该数据集涵盖两个学年和三个实验班,为学生提交代码提供了时间维度和教学方法上的多样性。
  • 该基准支持对语义和语法自动化修复技术的评估,弥补了现有 C 语言程序修复数据集中的一项关键空白。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。