研究概要 |
本研究では、プログラム言語の文法や計算機内部のデータ構造を極力隠蔽し、プログラムによって解決しようとする問題に応じた語彙で、プログラムの働きを説明することによって、プログラミングの初学者の学習を支援するシステムの構築と評価を行った。 問題領域として,最大値発見問題やソーティングなどの問題に対応する「大小関係世界」と,ニュートン法による高次方程式の解法問題や台形法による定積分問題などに対応する「2次元平面世界」を取り上げて,問題領域モデルの構築を行った。 また,問題領域モデル上でのプログラムのシミュレーション機構の設計構築を行った。「大小関係世界」上でのプログラムシミュレーションについては,H11年度に既にアルゴリズムが構築されていたが,これは「大小関係世界」の特殊性に依存するものであった。そこで,一般の問題領域モデルを対象に稼動するように拡張を行い,「2次元平面世界」を対象としてその有効性を確認した。 更に,シミュレーション結果を用いてプログラムの動作を可視化するアニメーション生成機構について検討を行った。この場合も,「大小関係世界」の特殊性に依存した方法であれば用意に実装が可能である。そこで,まず,そのような方法で実装した上で一般的問題領域に適応できるような拡張を行った。その結果,ソースプログラムのみを入力として受け取って,プログラムの動作をアニメーションとして提示しうる機能を実現した。 以上の検討を進めつつ,本システムが学習支援システムとしてプログラム学習の初学者を有効に支援できるか否かを実験的に評価した。その結果,文科系の学習者に対してもアルゴリズムの理解,その実装方法の理解の双方において,本システムが有効であることが確認できた。
|