Skip to main content
QUICK REVIEW

[論文レビュー] Computing with CodeRunner at Coventry University: Automated summative assessment of Python and C++ code

David Croft, Matthew England|arXiv (Cornell University)|Nov 25, 2019
Teaching and Learning Programming参考文献 5被引用数 4
ひとこと要約

本論文は、コヴェントリー大学の初年次コンピューターサイエンスカリキュラムにおいて、PythonおよびC++のコードを自動的に要約評価するためのオープンソースMoodleプラグインであるCodeRunnerの評価を行っている。複数選択式のクイズに代えて実行可能なコードテストを導入することで、評価の真正性が向上し、フィードバックに対する学生満足度が7%上昇し、プログラミング能力の正確な反映が図られた。ただし、C++の評価では、構文的に正しいが論理的に誤ったコードに対して部分的評価を付与するため、SFINAEベースのインスペクション技術を独自に開発する必要があった。

ABSTRACT

CodeRunner is a free open-source Moodle plugin for automatically marking student code. We describe our experience using CodeRunner for summative assessment in our first year undergraduate programming curriculum at Coventry University. We use it to assess both Python3 and C++14 code (CodeRunner supports other languages also). We give examples of our questions and report on how key metrics have changed following its use at Coventry.

研究の動機と目的

  • 初年次コンピューターサイエンスの学生における真のプログラミング能力を測るうえで、複数選択式評価の限界を是正すること。
  • CodeRunnerを用いて、要約的文脈におけるPythonおよびC++コードの自動的で実行可能な評価を実装および評価すること。
  • 実際のコード実行によるフィードバックの質の向上と学生満足度の向上を図るため、低精細度の評価を実行可能なコードテストに置き換えること。
  • コンパイルエラーによりテスト実行が不可能になる場合に、C++の評価で部分的評価を付与する課題を解決すること。
  • SFINAEベースのインスペクションライブラリを設計・展開し、微細な構文エラーがある場合でも正しいコード構造を検出できるようにすること。

提案手法

  • MoodleプラグインとしてCodeRunnerを採用し、ユニットテストを用いて学生が提出したPythonおよびC++コードを自動的に評価した。
  • 正答性と耐障害性を評価するため、複数のテストケース(隠しテストを含む)を含む評価問題を設計した。
  • SFINAEおよびプリプロセッサマクロを用いたカスタムC++インスペクションライブラリを実装し、関数シグネチャーやクラス構造を検出するようにした。
  • インスペクションライブラリを活用して、微細なエラーによりコンパイルに失敗しても、正しいコード構造が検出された場合に部分的評価を可能にするようにした。
  • 2つの初年次モジュールにおいて、従来の複数選択式の中間試験を実行可能なコード評価に置き換えた。
  • 2年間の学術年度にわたり、学生の成績データ、フィードバック満足度スコア、評価結果を収集および分析した。

実験結果

リサーチクエスチョン

  • RQ1CodeRunnerを用いて複数選択式評価を実行可能なコードテストに置き換えることで、学生のプログラミング能力をより正確に測定できるようになるか?
  • RQ2CodeRunnerによる自動評価は、フィードバックおよび評価プロセスに対する学生満足度にどのような影響を及えるか?
  • RQ3特にコンパイルエラーによりテスト実行が不可能になる場合に、C++の評価においてCodeRunnerを使用する際に生じる課題は何か?
  • RQ4SFINAEベースのインスペクション技術は、コンパイルエラーがある場合でも、正しいコード構造を効果的に特定し、部分的評価を付与できるか?
  • RQ5自動評価の導入は、従来の評価方法と比較して、合格率および平均得点にどのような影響を及えるか?

主な発見

  • CodeRunner評価の平均得点は、以前の複数選択式テストよりも低く、これはCodeRunnerが実際のプログラミング能力をより正確に反映していることを示している。
  • CodeRunner導入後、評価およびフィードバックに対する学生満足度が7ポイント上昇し、90%に達した。
  • 4000CEMの最終試験では、CodeRunner評価を経験した学生の平均得点が7%上昇し、合格率も10%上昇した。これは学習成果の向上を示唆している。
  • 4003CEMでは、成績と満足度の初期の低下が、SFINAEベースのインスペクションライブラリの開発を促し、C++のコンパイルエラーに対する対応を改善し、部分的評価を可能にした。
  • SFINAEベースのインスペクションライブラリは、正しいコード構造の検出に成功し、意味のあるエラーメッセージを提供することで、微細な構文エラーによるゼロ点リスクを低減した。
  • CodeRunnerの使用により、構文チェックと反復的テストを伴う、実世界のプログラミングに近い本物の評価環境が実現された。

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

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

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

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