[論文レビュー] Teaching Python programming with automatic assessment and feedback provision
本論文では、ユニットテストフレームワークを用いたスケーラブルで自動化されたフィードバックシステムを提案する。学生はコードを提出すると、事前に定義されたテストケースに基づき即座に評価され、メールで即時かつ詳細なフィードバックを受け取る。このシステムは教員の負担を著しく軽減し、反復学習を支援し、大規模な受講者集団における学生の関与度と成績を向上させる。425名の受講生を対象とした実践的応用において、高い満足度と高い評価処理効率が確認された。
We describe a method of automatic feedback provision for students learning programming and computational methods in Python. We have implemented, used and refined this system since 2009 for growing student numbers, and summarise the design and experience of using it. The core idea is to use a unit testing framework: the teacher creates a set of unit tests, and the student code is tested by running these tests. With our implementation, students typically submit work for assessment, and receive feedback by email within a few minutes after submission. The choice of tests and the reporting back to the student is chosen to optimise the educational value for the students. The system very significantly reduces the staff time required to establish whether a student's solution is correct, and shifts the emphasis of computing laboratory student contact time from assessing correctness to providing guidance. The self-paced nature of the automatic feedback provision supports a student-centred learning approach. Students can re-submit their work repeatedly and iteratively improve their solution, and enjoy using the system. We include an evaluation of the system and data from using it in a class of 425 students.
研究の動機と目的
- 大規模な学部および大学院の授業において、プログラミング課題を効率的かつ一貫して評価するという増大する課題に対処すること。
- ユニットテストフレームワークを用いて正しさのチェックを自動化することで、教員が行う手動の採点作業を軽減すること。
- 即座の反復的提出とフィードバックサイクルを可能にすることで、学生中心で自己-pacedな学習を支援すること。
- 教員の関心を、基本的な正しさの確認から、コードの品質、可読性、設計に関する上位レベルのガイダンスへとシフトさせること。
- 本システムが実際の大学課程において、学生の学習、満足度、スケーラビリティに与える影響を評価すること。
提案手法
- 教員が各プログラミング演習についてテストケースを定義するユニットテストフレームワークを用いる。このテストケースは、学生の提出物に対して自動実行される。
- 学生のコードはWebインターフェース経由で提出され、システムは事前に定義されたユニットテストを実行して正しさ、実行効率、耐障害性をチェックする。
- フィードバックは自動的に生成され、提出後数分以内にメールで学生に送信され、テスト失敗の原因や診断情報が明示される。
- システムは緩やかに結合されたプロセスとファイルベースのジョブキューを採用しており、Moodleのような既存のプラットフォームへの統合とスケーラビリティを実現している。
- 正しさの確認と早期のエラー検出に焦点を当てることで、教育的価値を最大化するフィードバックを最適化している。一方、上位レベルのコード品質は手動で評価される。
- 繰り返しの提出をサポートしており、学生が全テストに合格するまで段階的に解決策を改善できる。
実験結果
リサーチクエスチョン
- RQ1大規模な授業におけるプログラミング課題の採点において、自動ユニットテストシステムは教員の負担をどの程度軽減できるか?
- RQ2即時の自動フィードバックは、入門的プログラミングコースにおける学生の学習成果と関与度をどの程度向上させるか?
- RQ3このシステムは、プログラミング教育における自己-pacedで反復的な学習および学生の自律性をどの程度支援するか?
- RQ4自動フィードバックは、大規模なプログラミングコースにおける学生の満足度と学習の実感にどのような影響を与えるか?
- RQ5本システムは、Python以外のプログラミング言語や、異なる教育機関への応用を想定してスケーラブルかつ適応可能か?
主な発見
- 正しさの評価にかかる教員の作業時間は、1件あたり数時間から数分に短縮され、1授業で425名の受講者を効率的に処理できた。
- 学生は1演習あたり平均4.5回の提出を行っており、即時のフィードバックによって支えられる反復的改善モデルへの高い関与度が示された。
- 最初の2週間を過ぎると、 scheduled lab セッションへの出席率が著しく低下した。これは、多くの学生が自らのペースで事前に課題を完了していたことを示唆している。
- システムのおかげで、採点にかかる教員の時間に変化なく、受講者数を85名から425名まで拡大できた。これは、高いスケーラビリティを示している。
- 学生からのフィードバックは圧倒的に肯定的であり、学習の楽しさが増し、プログラミングの概念に対する理解が深まったと報告された。
- システムのアーキテクチャは堅牢で拡張性に富んでおり、Moodleのような外部プラットフォームとの統合を可能にし、他機関でも再利用可能であることが実証された。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。