2023 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 – 2025-03-31
|
Keywords | プログラムの可視化 / 関数型プログラミング / プログラミング学習支援 / ソフトウェア可視化 |
Outline of Annual Research Achievements |
関数型プログラミングは、コンピュータで行う処理を、副作用のない「数学的な意味での関数」によって記述するものであり、近年では開発者に必要にな知識はなりつつある。そこで、本研究では、関数型プログラミングの学習支援のために、初学者に理解が難しいとされるプログラムの動的な振る舞いを可視化する手法を開発することを目的としている。 前年度の令和4年度では、関数型プログラミングの学習支援において可視化すべき機能や概念について必要な要件を整理し、それをもとに関数型プログラミングの中でも代表的な機能である高階関数と遅延評価を可視化するアニメーションのプロトタイプを試作した。本研究が提案する可視化では、関数をノードではなく水平な線分として表現し、関数の評価はノード間の静的な線の接続ではなく、引数が線分をまたいで上から下に移動するアニメーションで表現する。遅延評価では、評価処理が行われた引数だけが移動する。 前年度の問題点として、このプロトタイプは、ユーザが入力したプログラムに対応する可視化を表示するものではなく、ユーザが機能を選択するとアニメーションとプログラムの例を表示するものであったので、令和5年度の研究では、ユーザがプログラムのソースコードの断片を入力すると、その部分の振る舞いをアニメーションによって可視化するWebアプリケーションの開発を行なった。このアプリケーションは、ユーザによる関数型プログラムの入力を実現するために、ブロック型ビジュアルプログラミング言語のGUIを提供し、データ型としてリストを扱う機能を備える。そして、システムは、ユーザがGUIから入力したプログラムの断片の構造を取得し、その振る舞いを上述の提案手法によって動的に可視化する。これによって、Web上で本システムをユーザに使ってもらうことが可能になった。 現在、学会発表や論文投稿を目指して、途中成果をまとめている。
|
Current Status of Research Progress |
Current Status of Research Progress
4: Progress in research has been delayed.
Reason
前年度の遅れを取り戻していないため、特に現在までの研究に関する評価が不十分な状況である。それにともなって、本研究の独自性と創造性である「学習者に対する親しみやすさと理解しやすさを重視し、キャラクターのアニメーションを用いるような、より具体的な可視化手法を実現する」という点で、具体的な実装に取り掛かれていない。
|
Strategy for Future Research Activity |
今後、開発したWebアプリケーションの機能を拡充させ、ユーザがWebページ上で関数型プログラミングの小規模なソースコードを入力すると、その動的な振る舞いが可視化されるようなシステムを開発する。それをユーザに使用してもらうことによって、研究の評価を行いたい。ソースコードの入力インタフェースに関しては、対応する構文要素や関数を増やし、新たな可視化方法を追加する。さらに、本研究の独自性と創造性である「学習者に対する親しみやすさと理解しやすさを重視し、キャラクターのアニメーションを用いるような、より具体的な可視化手法を実現する」という点で、キャラクター等を用いた複数の具体的な可視化の手法を実装し、複数の可視化方法によるの効果を比較することで研究の評価を行い、学会発表や論文投稿につなげたい。 本研究では、最終的に、機能が制限された関数型プログラミング言語のソースコードを自動的に解析して、可視するWebインタフェースを作成し、それをプログラミング学習用のデジタル教科書や統合開発環境に組み込む計画である。このシステムを大学生等に使用してもらうことで、ユーザの使用状態からその有用性を評価する。例えば、デジタル教科書にプログラムの可視化インタフェースを組み込むことで、学習者であるユーザが教科書に記述されたソースコードの一部を選択すると、システムがその部分で使われている機能を判別して、それに対応した動的な可視化のアニメーションを表示するようなことが可能になる。 これらの成果は論文としてまとめ、学会発表や論文投稿を行う計画である。
|
Causes of Carryover |
令和4年度に、本研究に関連する研究プロジェクトの立ち上げが、所属機関における1年間の助成対象として認められたため、両方のプロジェクトの共通の基盤の整備を優先として、本研究課題の研究費を繰り越し令和5年度および令和6年度に再分配して使用するように研究計画を修正する措置をとった。また、新型コロナウイルス対策の影響によって、令和4年度は旅費の支出が不要であった。 以上のような経緯で、前年度に多くの繰越があったため、令和5年度についても必要な機材等の購入は行なっているが、次年度への繰越が生じた。令和6年度については、物品の購入だけでなく、論文投稿料や、新型コロナウイルスの影響で参加を見合わせた学会の参加費および旅費なども使用する予定である。
|