プログラミング学習において学習者の理解の差は大きく、個々の学習者の理解度に応じて適切に学習支援を行うには、学習者の理解の程度を表した学習者モデルが必要である。学習者の理解不足や知識の間違いは、学習者の作成したプログラムの誤りとなって表れると考えられる。そこで、初心者の作成したプログラムを調べ、プログラムに含まれる誤りを分析し、コンパイラーから出力される診断メッセージよりプログラムの誤りを推定する誤りモデルを定義した。 プログラミングの基礎的な問題を5題用意し、初心者のプログラム理解の程度を、テストの形式で調べた。プログラミングの初心者として、入学して半年間C言語を学んだ学生42名を対象にした。学生の作成したプログラムに含まれる誤りを9グループ40種類に分類した。またプログラムは、計算機に通すと33種類のコンパイルメッセージを出力した。さらに、1種類の誤りだけからなる誤りのサンプルプログラムを作成し、各誤りに対して出力されるコンパイルメッセージを調べた。 学生のプログラムから分析した誤りと誤りに対するコンパイラからのメッセージとの関係を基に、ベイズの定理を用いて、コンパイラの診断メッセージより、プログラムの誤りを推定する誤りのモデルUを定義し、このモデルがプログラムの誤りを適切に表しているか検証を行った。初心者に対するプログラミング教材の関連図をもとに教材を9つの誤りグループに対応付け、教材モデルを作成した。学習者モデルは、学習内容をモデル化した教材モデルと学習者の誤りを推定する誤りモデルを掛け合わせることにより構築した。 構築した学習者モデルをもとに、今後、学習者の誤った知識や不十分な知識を推論し正しい知識を定着させる知的CAIの検討を行う。
|