槇原 絵里奈 同志社大学理工学部インテリジェント情報工学科 助教 |
[背景]少数の教員で多数の学生を教育・支援する
[問題]各学生の進捗や理解度に応じた教育が困難
[貢献]学生の試行錯誤にかかわるログから適切なアドバイスを推定
[問題]各学生の進捗や理解度に応じた教育が困難
[貢献]学生の試行錯誤にかかわるログから適切なアドバイスを推定
第4次産業革命により社会におけるソフトウェアが果される役割はより一層重要なものとなった.そこで,情報系学部学科を有するほとんどの教育機関において,プログラミング演習やソフトウェア開発演習といった,プログラムのコーディングやテスト等,ソフトウェア開発に必要な技術を学生が手を動かしながら学ぶ実践的な形式の演習が開講されている.
これら演習において学生のプログラミング行動の分析による支援が行われている.プログラミング行動とは,開発者がソフトウェアを開発するにあたって行ったコーディング,コンパイル,デバッグ等一連の過程における内容や成果物,およびそれらに関連する一連のメトリクスを指す.本研究では上述した2つの演習科目におけるプログラミング行動のうち,エラーや異常出力を修正するために開発者が行った試行錯誤にかかわる振る舞いを,探索的行動と定義し,分析を行った.探索的行動を分析することで,ソフトウェア開発を行うにあたっての各学生の理解度の計測や,難所・躓きに応じた支援,また理解度や躓きに応じた適切なアドバイスの推測を,教員が主体的に行うことが可能になると考える.
まず,プログラミング演習においてソースコードの編集履歴に着目し探索的行動を収集・分析した.分析の結果,初学者も熟練の開発者が行うような,まずエラーを含まない途中成果物にあたるプログラムを開発し,徐々に機能を付け加え,エラーが発生したときはエラーを含まないソースコードへ手戻りを行うといった,プロトタイプ開発のような行動を取ることが判明した.一方,エラーを含んだソースコードのまま機能を付け加えるといった手戻りを行わない探索的行動も行うことを確認した.さらに,探索的行動が,条件分岐や繰り返し処理など,プログラミングのどの要素に対して行われているか,すなわち学生が躓いているプログラミングの要素を自動検出する手法を提案した.提案手法により教員に負担を強いることなく教員サイドから各学生のプログラミングに対する試行錯誤や理解度を推測することが可能となった.
次に,文部科学省 情報技術人材育成のための実践教育ネットワーク形成事業 「分野・地域を越えた実践的 情報教育協働ネットワーク」(略称 enPiT)のクラウドコンピューティング分野の一環として実施されている人材育成プログラム「CloudSpiral」を対象とした.CloudSpiralのカリキュラムに組み込まれているソフトウェア開発演習において,ビルドエラーに着目した探索的行動を収集・分析した.まず,2013年度から2015年度のビルドエラーのログを基に,エラーの分類や各種エラーが発生する原因等について調査を行った結果,個人で解決可能なエラーとチームメンバと協力することで解決可能なエラーを特定した.次に,本結果を基にCloudSpiralの教員により2016年度の同開発演習の改善が行われた結果,エラー数の減少やエラー解決時間の減少に繋がった.本研究の結果はソフトウェア開発演習において教員が補填すべき内容を明らかにしただけでなく,学生がビルドエラーを引き起こしたときの適切なアドバイスを可能にする.
これら演習において学生のプログラミング行動の分析による支援が行われている.プログラミング行動とは,開発者がソフトウェアを開発するにあたって行ったコーディング,コンパイル,デバッグ等一連の過程における内容や成果物,およびそれらに関連する一連のメトリクスを指す.本研究では上述した2つの演習科目におけるプログラミング行動のうち,エラーや異常出力を修正するために開発者が行った試行錯誤にかかわる振る舞いを,探索的行動と定義し,分析を行った.探索的行動を分析することで,ソフトウェア開発を行うにあたっての各学生の理解度の計測や,難所・躓きに応じた支援,また理解度や躓きに応じた適切なアドバイスの推測を,教員が主体的に行うことが可能になると考える.
まず,プログラミング演習においてソースコードの編集履歴に着目し探索的行動を収集・分析した.分析の結果,初学者も熟練の開発者が行うような,まずエラーを含まない途中成果物にあたるプログラムを開発し,徐々に機能を付け加え,エラーが発生したときはエラーを含まないソースコードへ手戻りを行うといった,プロトタイプ開発のような行動を取ることが判明した.一方,エラーを含んだソースコードのまま機能を付け加えるといった手戻りを行わない探索的行動も行うことを確認した.さらに,探索的行動が,条件分岐や繰り返し処理など,プログラミングのどの要素に対して行われているか,すなわち学生が躓いているプログラミングの要素を自動検出する手法を提案した.提案手法により教員に負担を強いることなく教員サイドから各学生のプログラミングに対する試行錯誤や理解度を推測することが可能となった.
次に,文部科学省 情報技術人材育成のための実践教育ネットワーク形成事業 「分野・地域を越えた実践的 情報教育協働ネットワーク」(略称 enPiT)のクラウドコンピューティング分野の一環として実施されている人材育成プログラム「CloudSpiral」を対象とした.CloudSpiralのカリキュラムに組み込まれているソフトウェア開発演習において,ビルドエラーに着目した探索的行動を収集・分析した.まず,2013年度から2015年度のビルドエラーのログを基に,エラーの分類や各種エラーが発生する原因等について調査を行った結果,個人で解決可能なエラーとチームメンバと協力することで解決可能なエラーを特定した.次に,本結果を基にCloudSpiralの教員により2016年度の同開発演習の改善が行われた結果,エラー数の減少やエラー解決時間の減少に繋がった.本研究の結果はソフトウェア開発演習において教員が補填すべき内容を明らかにしただけでなく,学生がビルドエラーを引き起こしたときの適切なアドバイスを可能にする.

(2018年5月31日受付)