研究課題/領域番号 |
21K02920
|
研究種目 |
基盤研究(C)
|
配分区分 | 基金 |
応募区分 | 一般 |
審査区分 |
小区分09080:科学教育関連
|
研究機関 | 筑波大学 |
研究代表者 |
中井 央 筑波大学, 図書館情報メディア系, 准教授 (70301083)
|
研究期間 (年度) |
2021-04-01 – 2025-03-31
|
研究課題ステータス |
交付 (2023年度)
|
配分額 *注記 |
4,160千円 (直接経費: 3,200千円、間接経費: 960千円)
2023年度: 1,560千円 (直接経費: 1,200千円、間接経費: 360千円)
2022年度: 1,430千円 (直接経費: 1,100千円、間接経費: 330千円)
2021年度: 1,170千円 (直接経費: 900千円、間接経費: 270千円)
|
キーワード | プログラミング初心者 / 構文エラー / 構文解析 / エラーメッセージ / プログラミング / プログラミング教育 / コンパイラ生成系 / プログラミング初学者 / プログラミング教育支援 |
研究開始時の研究の概要 |
プログラミング初学者への教育では、プログラミング言語処理系(コンパイラやインタプリタ)の出力するエラーメッセージが難解であるなど、プログラミング教育の題材 (ロジックの教育) とは別のところで教育・学習に困難さがある。これには世界中の研究者が着目し研究を行っているが、各研究者の現場の事例の解析とそれへの対応方法の研究がほとんどである。一方でプログラミング言語処理系を作成する観点の研究では、汎用的な構文解析方法に対して、そのエラー処理法の研究が行われている。本研究では、その両方の研究を融合し、教育者が自身の環境に合わせてプログラミング言語処理系をカスタマイズ可能にすることで、教育者を支援する。
|
研究実績の概要 |
本研究では、これまでに行われているプログラミング初学者の教育における問題点に対する研究成果を、特定の環境だけではなく、教育者の環境に合わせられるようにすることを目的としている。前年度までの調査の結果、教育の現場ではその教育の環境にあったメッセージを出せるようにすることが有用であるという見解を得た。すなわち、扱う題材や受講者のエラーを起こす傾向などに応じて、現場の教育者がメッセージをカスタマイズできるというものである。我々は使用している環境やプログラムを改変するのではなく、言語処理系を作成する段階でメッセージが変更できる機能を持たせられる方法を考案し、プロトタイプを作成した。具体的には本研究室で開発している Depager という構文解析器生成系を使用して LR 構文解析における状態とエラーメッセージを紐づけられるようにした。メッセージの変更は独立したテキストファイルに対して行う。このプロトタイプに対して、C言語および Python 言語について具体的にエラーを含むプログラムの適用を試みた。これらのエラーを含むプログラムは他の研究者の研究成果としてウェブ上で公開されているものを用いた。これらのプログラムを gcc および Python の処理系に与えるとエラーである旨の簡潔なメッセージを出力することがほとんどである。これらに対してより具体的なメッセージを設定を行った。なお、LR構文解析の性質から、同じ状態が異なるタイプの入力に対応する場合があるが、この場合はメッセージを併記することになる。
|
現在までの達成度 (区分) |
現在までの達成度 (区分)
4: 遅れている
理由
本研究では実際に授業等で収集され、公開されているデータ(エラーを含んだプログラム)を利用している。しかし、これらのデータは機械的に収集されており、そこには想定外のもの(例えば、if文の条件部分に for 文を記述している)も多く含まれていた。このため、エラーメッセージの分析に想定以上に時間がかかった。 また、システムへ与える文法記述に変更があると内部の状態番号が変わるため、変更前後で用意したメッセージを使用できるようにする仕組みを考案する必要があるが、この部分の開発が遅れている。
|
今後の研究の推進方策 |
プロトタイプの動作は想定通りのものであることが確認できたが、文法の変更には対応できていない、また、一般のユーザに使いやすいフォーマットになっていない、という問題がある。今後はこの点の改善を行う。
|