| Project/Area Number |
22K12320
|
| Research Category |
Grant-in-Aid for Scientific Research (C)
|
| Allocation Type | Multi-year Fund |
| Section | 一般 |
| Review Section |
Basic Section 62030:Learning support system-related
|
| Research Institution | Tamagawa University |
Principal Investigator |
塩澤 秀和 玉川大学, 工学部, 教授 (80328533)
|
| Co-Investigator(Kenkyū-buntansha) |
田中 昂文 玉川大学, 工学部, 講師 (30851274)
|
| Project Period (FY) |
2022-04-01 – 2026-03-31
|
| Project Status |
Granted (Fiscal Year 2024)
|
| Budget Amount *help |
¥4,290,000 (Direct Cost: ¥3,300,000、Indirect Cost: ¥990,000)
Fiscal Year 2024: ¥1,170,000 (Direct Cost: ¥900,000、Indirect Cost: ¥270,000)
Fiscal Year 2023: ¥1,560,000 (Direct Cost: ¥1,200,000、Indirect Cost: ¥360,000)
Fiscal Year 2022: ¥1,560,000 (Direct Cost: ¥1,200,000、Indirect Cost: ¥360,000)
|
| Keywords | プログラムの可視化 / 関数型プログラミング / プログラミング学習支援 / ソフトウェア可視化 / プログラム可視化 / プログラミング教育 / ビジュアルプログラミング / 学習支援システム |
| Outline of Research at the Start |
関数型プログラミングは、コンピュータで行う処理を、副作用のない「数学的な意味での関数」によって記述するものである。これは、記述の簡潔性など大きな利点がある反面、抽象度が高く習得が難しいとされてきたが、近年、開発者にとって必要な知識となりつつある。本研究では、関数型プログラミングのための視覚的な学習教材の開発を目標として、初学者にとって理解が難しいとされるプログラムの動的な振る舞いを可視化する手法を開発する。具体的には、キャラクターの画像や実物のロボットを動かすといったプログラミング学習支援の知見を応用し、関数型プログラミングの各機能に関して、親しみやすく理解しやすい可視化手法を開発する。
|
| 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インタフェースを作成し、それをプログラミング学習用のデジタル教科書や統合開発環境に組み込むことも提案している。このシステムを大学生等に使用してもらうことで、ユーザの使用状態からその有用性を評価する。例えば、デジタル教科書にプログラムの可視化インタフェースを組み込むことで、学習者であるユーザが教科書に記述されたソースコードの一部を選択すると、システムがその部分で使われている機能を判別して、それに対応した動的な可視化のアニメーションを表示するようなことが可能になる。 これらの成果は論文としてまとめ、学会発表や論文投稿を行う計画である。
|