• 研究課題をさがす
  • 研究者をさがす
  • KAKENの使い方
  1. 前のページに戻る

関数型プログラミング学習教材のための親しみやすい動的なプログラム可視化手法の開発

研究課題

研究課題/領域番号 22K12320
研究種目

基盤研究(C)

配分区分基金
応募区分一般
審査区分 小区分62030:学習支援システム関連
研究機関玉川大学

研究代表者

塩澤 秀和  玉川大学, 工学部, 教授 (80328533)

研究分担者 田中 昂文  玉川大学, 工学部, 講師 (30851274)
研究期間 (年度) 2022-04-01 – 2025-03-31
研究課題ステータス 交付 (2023年度)
配分額 *注記
4,290千円 (直接経費: 3,300千円、間接経費: 990千円)
2024年度: 1,170千円 (直接経費: 900千円、間接経費: 270千円)
2023年度: 1,560千円 (直接経費: 1,200千円、間接経費: 360千円)
2022年度: 1,560千円 (直接経費: 1,200千円、間接経費: 360千円)
キーワードプログラムの可視化 / 関数型プログラミング / プログラミング学習支援 / ソフトウェア可視化 / プログラム可視化 / プログラミング教育 / ビジュアルプログラミング / 学習支援システム
研究開始時の研究の概要

関数型プログラミングは、コンピュータで行う処理を、副作用のない「数学的な意味での関数」によって記述するものである。これは、記述の簡潔性など大きな利点がある反面、抽象度が高く習得が難しいとされてきたが、近年、開発者にとって必要な知識となりつつある。本研究では、関数型プログラミングのための視覚的な学習教材の開発を目標として、初学者にとって理解が難しいとされるプログラムの動的な振る舞いを可視化する手法を開発する。具体的には、キャラクターの画像や実物のロボットを動かすといったプログラミング学習支援の知見を応用し、関数型プログラミングの各機能に関して、親しみやすく理解しやすい可視化手法を開発する。

研究実績の概要

関数型プログラミングは、コンピュータで行う処理を、副作用のない「数学的な意味での関数」によって記述するものであり、近年では開発者に必要にな知識はなりつつある。そこで、本研究では、関数型プログラミングの学習支援のために、初学者に理解が難しいとされるプログラムの動的な振る舞いを可視化する手法を開発することを目的としている。
前年度の令和4年度では、関数型プログラミングの学習支援において可視化すべき機能や概念について必要な要件を整理し、それをもとに関数型プログラミングの中でも代表的な機能である高階関数と遅延評価を可視化するアニメーションのプロトタイプを試作した。本研究が提案する可視化では、関数をノードではなく水平な線分として表現し、関数の評価はノード間の静的な線の接続ではなく、引数が線分をまたいで上から下に移動するアニメーションで表現する。遅延評価では、評価処理が行われた引数だけが移動する。
前年度の問題点として、このプロトタイプは、ユーザが入力したプログラムに対応する可視化を表示するものではなく、ユーザが機能を選択するとアニメーションとプログラムの例を表示するものであったので、令和5年度の研究では、ユーザがプログラムのソースコードの断片を入力すると、その部分の振る舞いをアニメーションによって可視化するWebアプリケーションの開発を行なった。このアプリケーションは、ユーザによる関数型プログラムの入力を実現するために、ブロック型ビジュアルプログラミング言語のGUIを提供し、データ型としてリストを扱う機能を備える。そして、システムは、ユーザがGUIから入力したプログラムの断片の構造を取得し、その振る舞いを上述の提案手法によって動的に可視化する。これによって、Web上で本システムをユーザに使ってもらうことが可能になった。
現在、学会発表や論文投稿を目指して、途中成果をまとめている。

現在までの達成度 (区分)
現在までの達成度 (区分)

4: 遅れている

理由

前年度の遅れを取り戻していないため、特に現在までの研究に関する評価が不十分な状況である。それにともなって、本研究の独自性と創造性である「学習者に対する親しみやすさと理解しやすさを重視し、キャラクターのアニメーションを用いるような、より具体的な可視化手法を実現する」という点で、具体的な実装に取り掛かれていない。

今後の研究の推進方策

今後、開発したWebアプリケーションの機能を拡充させ、ユーザがWebページ上で関数型プログラミングの小規模なソースコードを入力すると、その動的な振る舞いが可視化されるようなシステムを開発する。それをユーザに使用してもらうことによって、研究の評価を行いたい。ソースコードの入力インタフェースに関しては、対応する構文要素や関数を増やし、新たな可視化方法を追加する。さらに、本研究の独自性と創造性である「学習者に対する親しみやすさと理解しやすさを重視し、キャラクターのアニメーションを用いるような、より具体的な可視化手法を実現する」という点で、キャラクター等を用いた複数の具体的な可視化の手法を実装し、複数の可視化方法によるの効果を比較することで研究の評価を行い、学会発表や論文投稿につなげたい。
本研究では、最終的に、機能が制限された関数型プログラミング言語のソースコードを自動的に解析して、可視するWebインタフェースを作成し、それをプログラミング学習用のデジタル教科書や統合開発環境に組み込む計画である。このシステムを大学生等に使用してもらうことで、ユーザの使用状態からその有用性を評価する。例えば、デジタル教科書にプログラムの可視化インタフェースを組み込むことで、学習者であるユーザが教科書に記述されたソースコードの一部を選択すると、システムがその部分で使われている機能を判別して、それに対応した動的な可視化のアニメーションを表示するようなことが可能になる。
これらの成果は論文としてまとめ、学会発表や論文投稿を行う計画である。

報告書

(2件)
  • 2023 実施状況報告書
  • 2022 実施状況報告書
  • 研究成果

    (1件)

すべて 2023

すべて 学会発表 (1件) (うち国際学会 1件)

  • [学会発表] Dynamic Visualization of Basic High-Order Functions for Learning Functional Programming2023

    • 著者名/発表者名
      Hidekazu Shiozawa, Takumi Shimura, Koki Asakawa, Takafumi Tanaka
    • 学会等名
      2023 RISP International Workshop on Nonlinear Circuits, Communications and Signal Processing
    • 関連する報告書
      2022 実施状況報告書
    • 国際学会

URL: 

公開日: 2022-04-19   更新日: 2024-12-25  

サービス概要 検索マニュアル よくある質問 お知らせ 利用規程 科研費による研究の帰属

Powered by NII kakenhi