2019 Fiscal Year Annual Research Report
Investigations on applications of GitHub pull requests for code understanding support and programming education
Project/Area Number |
18K18088
|
Research Institution | The University of Tokyo |
Principal Investigator |
矢谷 浩司 東京大学, 大学院工学系研究科(工学部), 准教授 (60741353)
|
Project Period (FY) |
2018-04-01 – 2020-03-31
|
Keywords | ユーザインタフェース / プログラミング支援 / プログラミング教育 |
Outline of Annual Research Achievements |
現在のソフトウェア開発の主流プラットフォームであるGitHubでは,プルリクエストという,コードの変更に関する情報を一元的に管理する機能を利用した開発が活発に行われている.本研究ではプルリクエストを利活用した2つの新たなシステムの構築を通し,プルリクエストがコード開発や教育に対してどのように有効であるかを実証するものである. プルリクエストを用いたコードの理解を支援するシステムととして,ユーザが選択したコード断片に関連する過去のプルリクエストを抽出し,ユーザに提供する CodeGlass を開発した.CodeGlassでは,プルリクエストの説明文を解析し,実装内容や開発背景に関する文章をインターフェース上で強調して表示することが可能となっている.CodeGlass のアルゴリズムにより,選択されたコード断片が過去のバージョンにおいて分裂していた場合にも,関連する過去のプルリクエ ストをユーザに提供することができる.我々が行った CodeGlassの定量的および定性的評価の結果,コード断片の理解や専門的用途における CodeGlass の有用性が確認された. また,実世界のコード例を用いたプログラミング教育システムとして,プルリクエストに存在するイシューとコード変更を用いることで,プログラミング課題を自動で生成するRealCodeというシステムを構築した.プログラミング課題に適するプルリクエストを抽出する機械学習モデルを構築した他,課題の難易度や課題のトピックを自動で分類する手法を構築した.結果,教科書等ではカバーしきれない問題をRealCodeにより提供できる可能性があることが確認できた.本研究終了後はRealCodeの社会実装を目指し,システムの公開への準備を行う予定である.
|