本研究の具体的な課題として(1)正誤の自動判定機構の強化(2)誤答に対する適応的なフィードバックの追加(3)適切なエラーメッセージの提示法(4)問題作成支援、の4点を設定した。これらのうち(1)については研究期間を通じて演習問題の作成を継続し、その過程で得られた問題作成、自動判定機構の構成に関するノウハウを蓄積し、またそのノウハウの適用を支援するためのライブラリを改良した。(3)について「パーサコンビネータにおける網羅的なエラー報告候補集合の生成とそれに基づくエラー報告」(最終年度成果)は、言語処理系における構文解析器を実現するためのライブラリに対して、構文エラーの報告をより理解しやすいものにするための試みである。(4)に対して「分岐カバレッジ向上を目的とした静的解析を用いたテストケース自動生成」は、適切なコーナーケースのテストを加えることで、教師による精度の高い判定の作成を支援する。「プログラミング演習における自動正誤判定の精度向上を目的とするミューテーション手法」はソフトウェア工学の分野で利用されているミューテーションテストの手法を応用して、正誤判定の条件に不足があればそれを指摘するシステムを提案している。 中途より、プログラム作成課題に至る前の学習段階を支援することの重要性を認識し、プログラムの動作理解支援を追加課題として設定した。そのためには教育に適したプログラミング言語処理系・実行系が必要と考え、独自のHaskell処理系の開発を始めた。「Haskell処理系HiTSを用いたスペースリーク検出手法」(最終年度成果)はこの処理系の応用例で、意図しない実行時の振る舞いを発見を支援する手法を提案している。「Haskellを対象とした値コンストラクタへの関数注入によるトレース手法」(最終年度成果)はプログラムの実行時の振る舞いを観察する新たな手法を提案している。
|