• Search Research Projects
  • Search Researchers
  • How to Use
  1. Back to previous page

Development of a dynamic and friendly program visualization for learning materials of functional programming

Research Project

Project/Area Number 22K12320
Research Category

Grant-in-Aid for Scientific Research (C)

Allocation TypeMulti-year Fund
Section一般
Review Section Basic Section 62030:Learning support system-related
Research InstitutionTamagawa University

Principal Investigator

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

Co-Investigator(Kenkyū-buntansha) 田中 昂文  玉川大学, 工学部, 講師 (30851274)
Project Period (FY) 2022-04-01 – 2025-03-31
Project Status Granted (Fiscal Year 2023)
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

関数型プログラミングは、コンピュータで行う処理を、副作用のない「数学的な意味での関数」によって記述するものであり、近年では開発者に必要にな知識はなりつつある。そこで、本研究では、関数型プログラミングの学習支援のために、初学者に理解が難しいとされるプログラムの動的な振る舞いを可視化する手法を開発することを目的としている。
前年度の令和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インタフェースを作成し、それをプログラミング学習用のデジタル教科書や統合開発環境に組み込む計画である。このシステムを大学生等に使用してもらうことで、ユーザの使用状態からその有用性を評価する。例えば、デジタル教科書にプログラムの可視化インタフェースを組み込むことで、学習者であるユーザが教科書に記述されたソースコードの一部を選択すると、システムがその部分で使われている機能を判別して、それに対応した動的な可視化のアニメーションを表示するようなことが可能になる。
これらの成果は論文としてまとめ、学会発表や論文投稿を行う計画である。

Report

(2 results)
  • 2023 Research-status Report
  • 2022 Research-status Report
  • Research Products

    (1 results)

All 2023

All Presentation (1 results) (of which Int'l Joint Research: 1 results)

  • [Presentation] Dynamic Visualization of Basic High-Order Functions for Learning Functional Programming2023

    • Author(s)
      Hidekazu Shiozawa, Takumi Shimura, Koki Asakawa, Takafumi Tanaka
    • Organizer
      2023 RISP International Workshop on Nonlinear Circuits, Communications and Signal Processing
    • Related Report
      2022 Research-status Report
    • Int'l Joint Research

URL: 

Published: 2022-04-19   Modified: 2024-12-25  

Information User Guide FAQ News Terms of Use Attribution of KAKENHI

Powered by NII kakenhi