プログラミングを学習する有効な教育方法としては、与えられた問題に対して机上でプログラムを書くだけではなく、実際にプログラムを作成し、コンピュータを使って実行することが効果的である。しかし初心者はプログラムを作成する過程において頻繁に誤りを犯し、その誤りを修正しながらプログラミングを理解していく。この学習過程において誤りに応じて助言を与え学習者の支援を行うことが望ましい。 プログラミング言語を学習するとき、学習者の知識、理解の程度によって支援の種類をシステムが自動的に選択する機能を持たせることが必要である。理解状況に応じた支援の種類を決定するため、7年度は、初心者が理解しにくいところである制御構造の問題に対して、プログラミングを完成させるテスト形式の調査を実施し、そのデータをもとに、for文、while文についてそれぞれ誤りの原因問の類似度や関連を調べるためクラスター分析した。そして、学習者が誤りを犯す原因に対する支援を決めた。 8年度では、各クラスターに対応した支援に対して、実際に調査した学生に提供したら良いと考えられる支援の割合を調べることによって支援内容の妥当性を検討した。その結果初心者に対しては、誤りを犯した学習者に対しその課題に対する例示プログラムの提示による支援、およびプログラムの文法を示すことによる支援が必要であり、さらにトレース機能、流れ図による支援等が必要であることが判った。誤りによる支援内容の決定部分の調査を終えたので、システムにおける教材データベース、および学習者の履歴、支援の全体構成について検討した。教材についてはCプログラミングの教材関連図をISM法による教材の構造化を用いて作成し、教材データベースの構成を検討した。
|