| 研究課題/領域番号 |
22K12320
|
| 研究種目 |
基盤研究(C)
|
| 配分区分 | 基金 |
| 応募区分 | 一般 |
| 審査区分 |
小区分62030:学習支援システム関連
|
| 研究機関 | 玉川大学 |
研究代表者 |
塩澤 秀和 玉川大学, 工学部, 教授 (80328533)
|
| 研究分担者 |
田中 昂文 玉川大学, 工学部, 講師 (30851274)
|
| 研究期間 (年度) |
2022-04-01 – 2026-03-31
|
| 研究課題ステータス |
交付 (2024年度)
|
| 配分額 *注記 |
4,290千円 (直接経費: 3,300千円、間接経費: 990千円)
2024年度: 1,170千円 (直接経費: 900千円、間接経費: 270千円)
2023年度: 1,560千円 (直接経費: 1,200千円、間接経費: 360千円)
2022年度: 1,560千円 (直接経費: 1,200千円、間接経費: 360千円)
|
| キーワード | プログラムの可視化 / 関数型プログラミング / プログラミング学習支援 / ソフトウェア可視化 / プログラム可視化 / プログラミング教育 / ビジュアルプログラミング / 学習支援システム |
| 研究開始時の研究の概要 |
関数型プログラミングは、コンピュータで行う処理を、副作用のない「数学的な意味での関数」によって記述するものである。これは、記述の簡潔性など大きな利点がある反面、抽象度が高く習得が難しいとされてきたが、近年、開発者にとって必要な知識となりつつある。本研究では、関数型プログラミングのための視覚的な学習教材の開発を目標として、初学者にとって理解が難しいとされるプログラムの動的な振る舞いを可視化する手法を開発する。具体的には、キャラクターの画像や実物のロボットを動かすといったプログラミング学習支援の知見を応用し、関数型プログラミングの各機能に関して、親しみやすく理解しやすい可視化手法を開発する。
|
| 研究実績の概要 |
関数型プログラミングは、コンピュータで行う処理を、副作用のない数学的な意味での関数によって記述するものであり、近年では開発者に必要な知識になりつつある。そこで、本研究では、関数型プログラミングの学習支援のために、初学者に理解が難しいとされるプログラムの動的な振る舞いを可視化する手法を開発することを目的としている。 前年度までの研究では、関数型プログラミングの学習支援において可視化すべき機能や概念について必要な要件を整理し、それをもとに関数型プログラミングの中でも代表的な機能である高階関数と遅延評価を可視化するアニメーションのプロトタイプを試作した。このプロトタイプはWebアプリケーションで実装され、ユーザによる関数型プログラムの入力を実現するために、ブロック型ビジュアルプログラミング言語のGUIを提供し、データ型としてリストを扱う機能を備える。ユーザがプログラムのソースコードの断片を入力すると、その部分の振る舞いをアニメーションによって可視化する。 本研究が提案する可視化では、関数がノードではなく水平な線分として表現され、関数の評価はノード間の静的な線の接続ではなく、引数が線分をまたいで上から下に移動するアニメーションで表現される。また、遅延評価は、評価処理が行われた引数だけが移動するアニメーションで表現される。このような可視化を実現するために、システムはユーザがGUIから入力したプログラムの断片の構造を取得し、その振る舞いを動的に可視化に変換する。ユーザによってプログラムが修正された場合は、それに対応して動的に可視化も変更される。 令和6年度は、さらに多くの構文要素や関数に対応するように、このWebアプリケーションの機能の追加を行ない、ユーザが実際に利用して評価できるように改善を行った。現在、学会発表や論文投稿を目指して、途中成果をまとめている。
|
| 現在までの達成度 |
現在までの達成度
3: やや遅れている
理由
開発されたプロトタイプで実現されている構文要素や関数が十分でないことや、ユーザを集めた使用評価等ができなかったことなどで遅れが生じていたが、2年間の研究期間の延長によって状況が回復し、当初に計画した目標を達成して期間を終了できると考えている。
|
| 今後の研究の推進方策 |
現在までに開発したWebアプリケーションの機能を拡充させ、ユーザがWebページ上で関数型プログラミングの小規模なソースコードを入力すると、その動的な振る舞いが可視化されるように機能の充実を行っている。それをユーザに使用してもらうことによって、追加された機能の研究の評価を行いたい。ソースコードの入力インタフェースに関しては、さらに対応する構文要素や関数を増やし、新たな可視化方法を追加する。さらに、本研究の独自性と創造性である学習者に対する親しみやすさと理解しやすさを重視し、キャラクターのアニメーションを用いるような、より具体的な可視化手法を実現するという点で、具体的な可視化の手法を実装し、複数の可視化方法による効果を比較することで研究の評価を行い、学会発表や論文投稿につなげたい。 本研究では、機能が制限された関数型プログラミング言語のソースコードを自動的に解析して、可視するWebインタフェースを作成し、それをプログラミング学習用のデジタル教科書や統合開発環境に組み込むことも提案している。このシステムを大学生等に使用してもらうことで、ユーザの使用状態からその有用性を評価する。例えば、デジタル教科書にプログラムの可視化インタフェースを組み込むことで、学習者であるユーザが教科書に記述されたソースコードの一部を選択すると、システムがその部分で使われている機能を判別して、それに対応した動的な可視化のアニメーションを表示するようなことが可能になる。 これらの成果は論文としてまとめ、学会発表や論文投稿を行う計画である。
|