プログラミング初学者のためのデバッグ支援に関する研究は近年盛んに行われている.しかし,初学者の
バグ
の傾向を捉えたデバッグの 演習問題を提供することによる学習支援は研究されていない.そこで,本研究では,そのような演習問題の生成を目指す.その方法として,実際に開発者が作成した
バグ修正前後のソースコードから埋め込まれているバグ
を機械翻訳技術の応用により学習し,
バグ
を生成する Learning-Mutation という手法に着目した.九州大学のプログラミング初学者らのデータに対して Learning-Mutation を適用し,生成された
バグと実際のバグ
を比較することで,デバッグ演習問題の作成に繋げられるかを評価した.その結果,トークン数が少ないとき,生成される
バグは実際のバグ
に類似しており,セミコロン忘れや変数・関数の未宣言が 36%以上を占めていた.一方, トークン数が多くなると実際とは異なる
バグ
を埋め込む可能性が高まることがわかった.また,初学者が作成する
バグ
のうち Learning-Mutation では生成が困難な
バグ
は存在するが,その
バグの分布はビームサーチによってプログラミング初学者のバグ
の分布に近づけることができ,デバッグの学習支援に繋げられる可能性を示した.
抄録全体を表示