ソフトウェア工学教育の改善を目的とした初学者による探索的行動の分析

 
槇原 絵里奈
同志社大学理工学部インテリジェント情報工学科 助教

[背景]少数の教員で多数の学生を教育・支援する
[問題]各学生の進捗や理解度に応じた教育が困難
[貢献]学生の試行錯誤にかかわるログから適切なアドバイスを推定


 第4次産業革命により社会におけるソフトウェアが果される役割はより一層重要なものとなった.そこで,情報系学部学科を有するほとんどの教育機関において,プログラミング演習やソフトウェア開発演習といった,プログラムのコーディングやテスト等,ソフトウェア開発に必要な技術を学生が手を動かしながら学ぶ実践的な形式の演習が開講されている.

 これら演習において学生のプログラミング行動の分析による支援が行われている.プログラミング行動とは,開発者がソフトウェアを開発するにあたって行ったコーディング,コンパイル,デバッグ等一連の過程における内容や成果物,およびそれらに関連する一連のメトリクスを指す.本研究では上述した2つの演習科目におけるプログラミング行動のうち,エラーや異常出力を修正するために開発者が行った試行錯誤にかかわる振る舞いを,探索的行動と定義し,分析を行った.探索的行動を分析することで,ソフトウェア開発を行うにあたっての各学生の理解度の計測や,難所・躓きに応じた支援,また理解度や躓きに応じた適切なアドバイスの推測を,教員が主体的に行うことが可能になると考える.

 まず,プログラミング演習においてソースコードの編集履歴に着目し探索的行動を収集・分析した.分析の結果,初学者も熟練の開発者が行うような,まずエラーを含まない途中成果物にあたるプログラムを開発し,徐々に機能を付け加え,エラーが発生したときはエラーを含まないソースコードへ手戻りを行うといった,プロトタイプ開発のような行動を取ることが判明した.一方,エラーを含んだソースコードのまま機能を付け加えるといった手戻りを行わない探索的行動も行うことを確認した.さらに,探索的行動が,条件分岐や繰り返し処理など,プログラミングのどの要素に対して行われているか,すなわち学生が躓いているプログラミングの要素を自動検出する手法を提案した.提案手法により教員に負担を強いることなく教員サイドから各学生のプログラミングに対する試行錯誤や理解度を推測することが可能となった.

 次に,文部科学省 情報技術人材育成のための実践教育ネットワーク形成事業 「分野・地域を越えた実践的 情報教育協働ネットワーク」(略称 enPiT)のクラウドコンピューティング分野の一環として実施されている人材育成プログラム「CloudSpiral」を対象とした.CloudSpiralのカリキュラムに組み込まれているソフトウェア開発演習において,ビルドエラーに着目した探索的行動を収集・分析した.まず,2013年度から2015年度のビルドエラーのログを基に,エラーの分類や各種エラーが発生する原因等について調査を行った結果,個人で解決可能なエラーとチームメンバと協力することで解決可能なエラーを特定した.次に,本結果を基にCloudSpiralの教員により2016年度の同開発演習の改善が行われた結果,エラー数の減少やエラー解決時間の減少に繋がった.本研究の結果はソフトウェア開発演習において教員が補填すべき内容を明らかにしただけでなく,学生がビルドエラーを引き起こしたときの適切なアドバイスを可能にする.

 
 
 
(2018年5月31日受付)
取得年月日:2018年3月
学位種別:博士(工学)
大学:奈良先端科学技術大学院大学



推薦文
:(ソフトウェア工学研究会)


本論文はソフトウェア開発における試行錯誤の過程である探索的行動に着目し,教員に負担を強いることなく,ソフトウェア開発に躓く学生の発見,支援を可能にした.社会におけるソフトウェアが担う役割の重要性は年々拡大しており,若手技術者の育成・支援に貢献する本研究は大きな将来性を有すると考え,推薦する.


研究生活


博士論文執筆にあたり,飯田元教授,松本健一教授,市川昊平准教授,崔恩瀞助教,井垣宏准教授,吉田則裕准教授からは貴重かつ熱心な御指導御鞭撻を賜りました.また,藤原賢二助教を始めとするソフトウェア設計学研究室の先輩,同期,後輩の皆様には,日頃から多大な御協力と御助言をいただきました.この場をお借りして改めて心より厚く御礼を申し上げます.

自分自身プログラミングが苦手だったことをきっかけに,ソフトウェア工学教育に興味を持ちました.またCloudSpiralでソフトウェア開発における実際の教育現場に携わったことが,研究を進める上で大きな支えとなりました.CloudSpiralにかかわった教員の皆様,受講生の皆様,特に同期である2013年度受講生の皆様に,この場をお借りして深く御礼を申し上げます.

今後は,学生にプログラミングやソフトウェア開発の面白さや楽しさを伝える一方で,高度IT人材の育成に,研究・教育の両面から取り組んでいきたいと思います.