2021 Fiscal Year Research-status Report
Automatic generation of programming questions by symbolic execution
Project/Area Number |
20K12106
|
Research Institution | The University of Tokyo |
Principal Investigator |
萩谷 昌己 東京大学, 大学院情報理工学系研究科, 教授 (30156252)
|
Co-Investigator(Kenkyū-buntansha) |
田辺 良則 鶴見大学, 文学部, 教授 (60443199)
斎藤 俊則 星槎大学, 教育実践研究科, 准教授 (80434447)
|
Project Period (FY) |
2020-04-01 – 2023-03-31
|
Keywords | プログラミング教育 / 情報教育 / プログラミング言語 / 記号実行 / 定理証明 / 仕様記述・検証 / ソフトウェアテスト |
Outline of Annual Research Achievements |
2021年度は,前年度に引き続いて,プログラミング試験問題の自動採点手法の開発を中心に研究を進めた. プログラムを作成させる試験の自動採点において,指定された通りに振る舞うプログラムを正答と判定することは比較的容易であるが,指定と異なった振舞をするプログラムを確実に誤答と判定することは,簡単ではない.本研究課題では,2020年度にこの問題を解決する試験用のプログラミング言語を開発したが,この言語における文法的な制限事項を理解することが,プログラミング初級者には容易ではないという課題が残った.2021年度は,この課題を,ブロック部品を用いたGUIプログラミング環境を提供することで解決する研究を行った. この環境を,ウェブブラウザ上で動作するものとして設計した.プログラミング言語の文法要素ごとにブロック部品が用意され,解答者はブロック部品を組み合わせることによってプログラムを作成する.提供されるインタプリタを用いて,テスト・デバッグを行うこともできる.妥当性を確認した後に提出操作を行うと,プログラムのソースコードが生成されるので,前年度に開発した手法によって,プログラムの正誤を自動的に判定することができる. Blockly と呼ばれる開発ツールを用いて実装を行った.バブルソートや二分探索などを題材とした問題からなる,初級者を対象とするプログラミング試験を,この環境で実施できることが確認できた.一方で,この一般的な方式においては,主として自動判定アルゴリズムの実行時間に起因する性能上の限界があることも確認された.これを回避するための手法の検討を行い,個別の問題に応じて機能の異なるブロックを提供するという,改善の方向性を確認した.
|
Current Status of Research Progress |
Current Status of Research Progress
2: Research has progressed on the whole more than it was originally planned.
Reason
2020年度に検討した方式における問題点であった,初級者にとってわかりにくい言語上の制約をブロックプログラミングによって回避するというアイディアを,ツールの形で具現化することができ,実際のプログラミング試験における適用に近づけることができた.2021年度に新たに見つかった問題点については2022年度において修正する方向も確認しており,総合的に判断しておおむね順調な進展ということができる.
|
Strategy for Future Research Activity |
試験用のプログラミング作成環境の開発については,2021年度の検討結果をもとに,問題ごとのブロックを提供する方式を設計し,これを既に作成したツールに統合することで,性能的にも問題の無いツールを完成させる.評価については,実際にプログラミング初級者を対象とする試験を実施して,本方式の実用性を確認する.
|
Causes of Carryover |
新型コロナ禍のため、予定していた出張・招聘ができなかったため。 次年度におこなわれる関連分野の学会に際して、研究内容について討議する予定であり、研究者の招聘旅費に使用する計画である。
|
Research Products
(3 results)