プログラミングコースにおける学生の理解度の評価
自動質問は、学生のプログラミング知識の隙間を明らかにするかもしれない。
― 1 分で読む
プログラミングのコースでは、生徒たちがコーディングタスクを成功させることはあるけど、自分のコードがどう機能しているかを完全には理解していないことが多いんだ。これが後々の学習に問題を引き起こすことがあるよ。それを解決するために、研究者たちは生徒自身のコードに基づいた自動化された質問を作ったんだ。これらの質問は、生徒が自分のプログラムの機能を本当に知っているのか、それとも単に動作するコードを生み出しているだけなのかを見極めることを目的としている。
背景
初心者がプログラミングを学ぶとき、動くプログラムを書けても、自分のコードに関する基本的な質問に苦労することがあるんだ。以前の研究では、多くの生徒が自分のプログラムに関する簡単な質問に正しく答えられないことが分かっている。この状況は、プログラミングスキルが弱かったり、重要な概念を誤解していたりすることに繋がる。さらに、コードを生成するAIツールの普及によって、この問題は悪化する可能性があって、生徒は受け取ったコードを十分に理解せずにこれらのツールに頼ってしまうかもしれない。
研究の目的
この研究は、入門コースを終えた後のフォローアッププログラミングコースで、生徒が自分のコーディング課題に関する質問にどう反応するかを調べることを目的としていた。質問に間違えて答えた生徒がコースでの成功率が低いのか、またこれらの質問が生徒がもっと支援を必要とする領域を明らかにできるのかを見たかった。
方法論
研究では、生徒が数日間の平均降雨量を計算するプログラムを作成するプログラミング課題が行われた。プログラムは自動的に評価され、生徒はすぐにフィードバックを受け取った。コードを提出した後、生徒は提出内容に基づいた選択肢形式の質問を提示された。この質問は、プログラムの論理と構造を理解しているかをテストするように設計されていた。
参加した生徒は324人で、そのデータを使用することに同意した結果、完全に参加しなかった生徒を除外して291人のサンプルサイズとなった。研究者たちは生徒の質問への答えとコース全体でのパフォーマンスを比較した。
結果
参加した生徒のうち、27%が自分のコードに関連する質問のうちの少なくとも1つで苦労していた。驚くことに、より進んだコースでも、多くの生徒が基本的な質問に正しく答えるのが難しかった。この質問に対するパフォーマンスは、コアプログラミング概念の理解を反映していた。質問で苦戦した生徒は通常、コース全体でのスコアも低かったんだ。
質問の種類
質問は3つの主要なタイプに分かれていた:
変数の認識:この質問タイプは、生徒がコード内の変数名を特定できるかをテストした。約86%の生徒がこれに正しく答えられた。
プログラムの流れの理解:これは生徒が自分のコードのどの部分がエラーを引き起こす可能性があるかを特定できるかを評価することを目的とした。ここでは成功率は少し低く約85%だった。
コードの目的:これは生徒に特定の行のコードの背後にある理由を尋ねた。このカテゴリーでは96%の生徒が正しく答えた。
全体的に成功率は高いものの、プログラムの流れや目的に関する質問を逃した生徒は、コース全体での成功率も低いことが多く、これらの重要な領域での理解が弱いことを示唆している。
学習への影響
この研究の結果は、多くの生徒が機能するコードを生み出すことができるけど、それがどう機能するのかを理解するのに苦労している可能性があることを示唆している。この理解のギャップを埋める方法を見つけることが重要だ。QLC(学習者のコードに関する質問)は、生徒がもっと支援を必要とする領域を特定するのに重要な役割を果たすことができる。コースの初めに使用することで、知識が不安定な生徒を浮き彫りにするのに役立つかもしれない。
コードにおけるAIの使用
AIツールの使用は、生徒の間で一般的になってきていて、コードをすぐに生成することができる。これらの技術は課題を完了するのに役立つけど、深い理解が欠ける原因にもなる。生徒はこれらのツールに過度に依存するかもしれず、それがコードの構造や論理を理解する能力を妨げるかもしれない。
AIが進化し続ける中、教育も適応が必要だ。教師は、生徒がコードを生み出すだけでなく、理解し分析するための戦略を開発するのを助けることに焦点を当てるべきだ。理解を促進する教育ツールを取り入れることで、生徒に大きな利益をもたらすことができる。
結論
プログラミングを理解することは、生徒がコーディングタスクで成功するために重要だけど、多くの生徒がまだ苦労している。自動化された質問が生徒自身のコードから派生することで、知識のギャップを特定し、学習成果を改善するのに役立つ。プログラミングの重要性が増す中、理解を促進する有効な教授法を開発することが重要になるだろう。
これらの自動化された質問を洗練させるためや、なぜ一部の生徒がそれに正しく答えるのが難しいのかを理解するためにさらなる研究が必要だ。これらの課題に対処することで、教育者は生徒のプログラミング教育をよりよくサポートし、将来の学びのためのしっかりとした基盤を築く手助けができるんだ。
タイトル: Automated Questions About Learners' Own Code Help to Detect Fragile Knowledge
概要: Students are able to produce correctly functioning program code even though they have a fragile understanding of how it actually works. Questions derived automatically from individual exercise submissions (QLC) can probe if and how well the students understand the structure and logic of the code they just created. Prior research studied this approach in the context of the first programming course. We replicate the study on a follow-up programming course for engineering students which contains a recap of general concepts in CS1. The task was the classic rainfall problem which was solved by 90% of the students. The QLCs generated from each passing submission were kept intentionally simple, yet 27% of the students failed in at least one of them. Students who struggled with questions about their own program logic had a lower median for overall course points than students who answered correctly.
著者: Teemu Lehtinen, Otto Seppälä, Ari Korhonen
最終更新: 2023-06-28 00:00:00
言語: English
ソースURL: https://arxiv.org/abs/2306.16267
ソースPDF: https://arxiv.org/pdf/2306.16267
ライセンス: https://creativecommons.org/licenses/by/4.0/
変更点: この要約はAIの助けを借りて作成されており、不正確な場合があります。正確な情報については、ここにリンクされている元のソース文書を参照してください。
オープンアクセスの相互運用性を利用させていただいた arxiv に感謝します。