2023 Fiscal Year Research-status Report
プログラミング初学者のための言語横断的エラー修正学習システムの開発
Project/Area Number |
23K11355
|
Research Institution | Nihon University |
Principal Investigator |
村上 知里 日本大学, 理工学部, 助教 (30733753)
|
Co-Investigator(Kenkyū-buntansha) |
鈴木 潔光 日本大学, 理工学部, 教授 (10216369)
大原 衛 地方独立行政法人東京都立産業技術研究センター, 企画部経営企画室, 上席研究員 (80463008)
|
Project Period (FY) |
2023-04-01 – 2026-03-31
|
Keywords | プログラミング教育 / 学習システム / エラー処理 / アクティビティ図 |
Outline of Annual Research Achievements |
本研究の目的は、複数のプログラミング言語に対応し、自主学習や教材に利用可能な、ツールの構成やツール間の処理を学ぶことができるエラー発生位置描画システムの開発である。エラー発生位置の描画表現を複数のプログラミング言語に対応させるために、ツールの構成と処理の流れを振る舞い図で抽象化する。近年のプログラミング教育での需要が多いPythonをはじめとしたインタプリタ型言語を対象とし、プログラムとエラーメッセージから推定されるエラー発生位置を振る舞い図に描画するシステムを構築する。このシステムの利用者はプログラミングの学習者や教授者である。エラー発生時には、学習者が作成したコードから生成される振る舞い図でエラーの発生位置を確認することができ、振る舞い図を授業や自主学習の教材として利用することができる。 1年目では、まず、コードとエラーメッセージを収集する。次に、実行単位ごとのコードに対して振る舞い図を生成するシステムを開発する。2年目では、エラー発生位置を振る舞い図に描画する機能を追加する。また、ユーザインタフェースの最適化を含むソフトウェア開発を委託する。2~3年目では、開発したエラー発生位置描画システムの評価を行う予定である。 1年目である2023年度では、はじめに、PythonとRによるコードとエラーメッセージの収集を実施した。また、Pythonのコードから取得した抽象構文木を振る舞い図の構文に変換するプログラムを開発した。この際、振る舞い図には、アクティビティ図を採用した。振る舞い図の構文には、UMLダイアグラム作図用言語であるPlantUMLを採用した。これらに加え、アクティビティ図を使用した複数のプログラミング言語におけるエラー処理学習について、その学習効果を調査した。この検討についてまとめ、第71回工学教育研究講演会で成果発表を行った。
|
Current Status of Research Progress |
Current Status of Research Progress
2: Research has progressed on the whole more than it was originally planned.
Reason
本研究では、ツールの構成やツール間の処理を抽象的に表現してエラー発生位置を描画でき、複数のプログラミング言語に対応したエラー発生位置描画システムを開発することが目的である。1年目の「振る舞い図生成システムの開発」では、次の作業を計画した。(1)インタプリタ型言語であるPythonとRを対象とし、ツールの構成とエラー原因の体系化を行う。それぞれのプログラミング言語におけるエラーメッセージ情報を収集し、エラーメッセージに対するエラー原因と発生位置を網羅的にまとめる。(2)インタプリタ型言語ではコードの行レベルで実行が行われるため、実行単位ごとのコードを読み込み、読み込んだコードに対して振る舞い図を生成するシステムを開発する。 1年目である2023年度では、計画の通り、(1)および(2)を実施した。(1)に対応して、はじめに、PythonとRによるコードとエラーメッセージの収集を実施した。また、(2)に対応して、Pythonのコードから取得した抽象構文木を振る舞い図の構文に変換するプログラムを開発した。(2)の実施の際、振る舞い図には、アクティビティ図を採用した。振る舞い図の構文には、UMLダイアグラム作図用言語であるPlantUMLを採用した。 これらに加え、アクティビティ図を使用した複数のプログラミング言語におけるエラー処理学習の学習効果を検討した。この検討についてまとめ、第71回工学教育研究講演会で成果発表を行った。以上のことから、研究はおおむね順調に進展していると判断する。
|
Strategy for Future Research Activity |
本研究では、ツールの構成やツール間の処理を抽象的に表現してエラー発生位置を描画でき、複数のプログラミング言語に対応したエラー発生位置描画システムを開発することが目的である。1年目の「振る舞い図生成システムの開発」では、インタプリタ型言語であるPythonとRそれぞれのプログラミング言語におけるエラーメッセージ情報を収集した。また、コードに対応する振る舞い図を生成するプログラムを作成した。 2年目の「エラー発生位置描画システムの開発」では、1年目に開発したシステムに、エラー発生位置を振る舞い図に描画する機能を開発する。システムはブラウザアプリケーションとして作成し、コードはテキストあるいはコードを撮影した画像を読み込み、PCやスマートフォン、タブレット画面に対応した画像を出力する。これらに対応したアプリケーションとして、ユーザインタフェースの最適化を含むソフトウェア開発を委託する予定である。加えて、1年目の研究成果を論文として発表する。 2~3年目の「エラー発生位置描画システムの評価」では、開発したエラー発生位置描画システムの評価を行う。プログラミング学習を必要とする情報系および非情報系学科の大学生、プログラミングに関する講習会に参加する社会人などを対象とする。日本大学理工学部および東京都立産業技術研究センターで有志協力者や講習会参加者を募り、実施する予定である。さらに、IoTやAIに関心を持つ中小企業の社会人などを対象として、調査を実施する予定である。
|
Causes of Carryover |
研究計画を立案した申請時では、総額500万円として計画を行っていた。しかし、実際の交付額が研究計画立案時に比べて少なかったため、2年目に予定しているソフトウェア開発の委託費用を確保する必要があった。そこで、当初は、1年目から契約する予定であったサーバなどのサービスを、2年目以降に見送り、委託費用を確保した。1年目の未使用額は、当初の計画通り、ソフトウェア開発の委託費用に使用する予定である。
|