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
ひとこと要約

本論文は、C90における初心者向けプログラミング課題(IPAs)25件の公開ベンチマーク、C-Pack-IPAsを紹介する。このデータセットには、意味的に正しい、意味的に誤りのある、構文的に誤りのある学生の提出物が含まれており、初心者向けのプログラミング言語を対象とした自動プログラム修復フレームワークの評価を可能にする。各IPAには多様な正しい実装と包括的なテストスイートが用意されており、意味的および構文的エラーの両方をカバーする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.

研究の動機と目的

  • 大規模オンライン公開講座(MOOC)における高い学生の受講者数に伴い、自動的かつ個別化されたフィードバックのニーズが高まっていることを踏まえ、その対応。
  • 初心者向けCプログラマーを対象とした自動プログラム修復ツールの評価のための包括的ベンチマークを提供すること。
  • 実際の学生の提出物を用いて、意味的および構文的修復フレームワークの開発を支援すること。
  • 各IPAに対してテストスイートを備えた、公開可能で匿名化されたデータセットを提供し、再現可能な評価を可能にすること。
  • 意味的および構文的エラーを含み、各IPAに対して複数の正しい実装が存在する、公開可能なC言語ベンチマークの不足を埋めること。

提案手法

  • 本ベンチマークは、イstituto Superior Técnicoの初心者向けCプログラミング講座における3つの実習授業から学生の提出物を収集した。
  • 提出物は、すべてのテストケースに合格する(意味的に正しい)、コンパイルは通るがテストに失敗する(意味的に誤りがある)、コンパイルに失敗する(構文的に誤りがある)の3つに分類される。
  • 各IPAには、正しさの評価に使用されるテストスイートが含まれており、修復フレームワークとの互換性を確保するための参照実装も提供されている。
  • すべての学生プログラムは匿名化され、コメントは削除され、学術的利用のための使用許可が取得された。
  • データセットはGitHubにホスティングされており、提出物が年次および課題ごとにどのように分布しているかを示す詳細なメタデータが含まれている。
  • 本ベンチマークは、実際の学生コードを用いて意味的および構文的修復技術の両方の評価を可能にする。

実験結果

リサーチクエスチョン

  • RQ1自動プログラム修復フレームワークは、初心者プログラマーが提出した意味的に誤ったC90プログラムをどれほど効果的に修復できるか?
  • RQ2修復フレームワークは、複数の正しい実装を活用することで、IPAの修復精度をどの程度向上させられるか?
  • RQ3構文的修復ツールは、初心者Cコードに見られる現実のコンパイルエラーを効果的に処理できるか?
  • RQ4正しい提出物、意味的に誤った提出物、構文的に誤った提出物の分布が、修復ツールの評価にどのように影響するか?
  • RQ525の異なるIPAを含み、複数の正しい実装および誤った実装を含むベンチマークのスケーラビリティと多様性はどの程度か?

主な発見

  • C-Pack-IPAsには、25の異なる初心者向けプログラミング課題にわたり、意味的に正しいC90プログラムが653件、意味的に誤ったものが513件、構文的に誤ったものが98件含まれている。
  • 各IPAにはテストスイートと参照実装が含まれており、修復フレームワークの包括的評価が可能である。
  • ベンチマークはGitHub上で公開されており、匿名化された学生の提出物と削除されたコメントが含まれ、プライバシー保護がなされている。
  • C-Pack-IPAsは、各IPAに複数の正しい実装に加え、意味的および構文的エラーの両方を含むC90用のベンチマークとしては非常に稀である。
  • データセットは2つの学年度と3つの実習授業にわたって収集されており、提出物に時間的および教育的多様性が存在する。
  • ベンチマークは、意味的および構文的自動修復技術の両方の評価を可能とし、既存のC言語プログラム修復データセットにおける重要なギャップを埋めている。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。