2024 Fiscal Year Research-status Report
Development of a dynamic and friendly program visualization for learning materials of functional programming
| Project/Area Number |
22K12320
|
| Research Institution | Tamagawa University |
Principal Investigator |
塩澤 秀和 玉川大学, 工学部, 教授 (80328533)
|
| Co-Investigator(Kenkyū-buntansha) |
田中 昂文 玉川大学, 工学部, 講師 (30851274)
|
| Project Period (FY) |
2022-04-01 – 2026-03-31
|
| Keywords | プログラムの可視化 / 関数型プログラミング / プログラミング学習支援 / ソフトウェア可視化 |
| Outline of Annual Research Achievements |
関数型プログラミングは、コンピュータで行う処理を、副作用のない数学的な意味での関数によって記述するものであり、近年では開発者に必要な知識になりつつある。そこで、本研究では、関数型プログラミングの学習支援のために、初学者に理解が難しいとされるプログラムの動的な振る舞いを可視化する手法を開発することを目的としている。 前年度までの研究では、関数型プログラミングの学習支援において可視化すべき機能や概念について必要な要件を整理し、それをもとに関数型プログラミングの中でも代表的な機能である高階関数と遅延評価を可視化するアニメーションのプロトタイプを試作した。このプロトタイプはWebアプリケーションで実装され、ユーザによる関数型プログラムの入力を実現するために、ブロック型ビジュアルプログラミング言語のGUIを提供し、データ型としてリストを扱う機能を備える。ユーザがプログラムのソースコードの断片を入力すると、その部分の振る舞いをアニメーションによって可視化する。 本研究が提案する可視化では、関数がノードではなく水平な線分として表現され、関数の評価はノード間の静的な線の接続ではなく、引数が線分をまたいで上から下に移動するアニメーションで表現される。また、遅延評価は、評価処理が行われた引数だけが移動するアニメーションで表現される。このような可視化を実現するために、システムはユーザがGUIから入力したプログラムの断片の構造を取得し、その振る舞いを動的に可視化に変換する。ユーザによってプログラムが修正された場合は、それに対応して動的に可視化も変更される。 令和6年度は、さらに多くの構文要素や関数に対応するように、このWebアプリケーションの機能の追加を行ない、ユーザが実際に利用して評価できるように改善を行った。現在、学会発表や論文投稿を目指して、途中成果をまとめている。
|
| Current Status of Research Progress |
Current Status of Research Progress
3: Progress in research has been slightly delayed.
Reason
開発されたプロトタイプで実現されている構文要素や関数が十分でないことや、ユーザを集めた使用評価等ができなかったことなどで遅れが生じていたが、2年間の研究期間の延長によって状況が回復し、当初に計画した目標を達成して期間を終了できると考えている。
|
| Strategy for Future Research Activity |
現在までに開発したWebアプリケーションの機能を拡充させ、ユーザがWebページ上で関数型プログラミングの小規模なソースコードを入力すると、その動的な振る舞いが可視化されるように機能の充実を行っている。それをユーザに使用してもらうことによって、追加された機能の研究の評価を行いたい。ソースコードの入力インタフェースに関しては、さらに対応する構文要素や関数を増やし、新たな可視化方法を追加する。さらに、本研究の独自性と創造性である学習者に対する親しみやすさと理解しやすさを重視し、キャラクターのアニメーションを用いるような、より具体的な可視化手法を実現するという点で、具体的な可視化の手法を実装し、複数の可視化方法による効果を比較することで研究の評価を行い、学会発表や論文投稿につなげたい。 本研究では、機能が制限された関数型プログラミング言語のソースコードを自動的に解析して、可視するWebインタフェースを作成し、それをプログラミング学習用のデジタル教科書や統合開発環境に組み込むことも提案している。このシステムを大学生等に使用してもらうことで、ユーザの使用状態からその有用性を評価する。例えば、デジタル教科書にプログラムの可視化インタフェースを組み込むことで、学習者であるユーザが教科書に記述されたソースコードの一部を選択すると、システムがその部分で使われている機能を判別して、それに対応した動的な可視化のアニメーションを表示するようなことが可能になる。 これらの成果は論文としてまとめ、学会発表や論文投稿を行う計画である。
|
| Causes of Carryover |
前年度に多くの繰越があったため、また、計画していた論文採択・学会参加等がなかったため、次年度への繰越が生じた。令和7年度については、物品の購入だけでなく、論文投稿料や学会の参加費および旅費なども使用する予定である。
|