Skip to main content
QUICK REVIEW

[論文レビュー] Student Teamwork on Programming Projects: What can GitHub logs show us?

Niki Gitinabard, Ruth Okoilu|arXiv (Cornell University)|Aug 25, 2020
Software Engineering Research参考文献 38被引用数 8
ひとこと要約

本研究では、GitHubのコミットログを活用して、プログラミングプロジェクトにおける学生のチームワークスタイルを自動的に分類する手法を提案する。自然言語処理(NLP)を用いてコミットメッセージを分類し、機械学習を用いて協働タイプを予測する。協働的、協同的、単独提出のチームを識別する際、F1スコアが0.68以上を達成し、不均等な貢献パターンの早期検出を可能にする。

ABSTRACT

Teamwork, often mediated by version control systems such as Git and Apache Subversion (SVN), is central to professional programming. As a consequence, many colleges are incorporating both collaboration and online development environments into their curricula even in introductory courses. In this research, we collected GitHub logs from two programming projects in two offerings of a CS2 Java programming course for computer science majors. Students worked in pairs for both projects (one optional, the other mandatory) in each year. We used the students' GitHub history to classify the student teams into three groups, collaborative, cooperative, or solo-submit, based on the division of labor. We then calculated different metrics for students' teamwork including the total number and the average number of commits in different parts of the projects and used these metrics to predict the students' teamwork style. Our findings show that we can identify the students' teamwork style automatically from their submission logs. This work helps us to better understand novices' habits while using version control systems. These habits can identify the harmful working styles among them and might lead to the development of automatic scaffolds for teamwork and peer support in the future.

研究の動機と目的

  • GitHubのコミットログを用いて、学生のチームワークスタイル(協働的、協同的、単独提出)を自動的に特定すること。
  • コミットパターンを通じて、学生がプロジェクトの各コンponent(例:実装、テスト)に貢献をどのように分配しているかを分析すること。
  • コミットメトリクスと過去の成績に基づいた予測モデルを開発し、リスクが高まるチームを特定すること。
  • 教員が不均等な協働状況を早期に検出し、的確な介入を可能にする支援をすること。

提案手法

  • 400件のコミットメッセージを手動で分類し、カテゴリ(例:実装、テスト、バグ修正)にラベル付けしてラベル付きデータセットを構築した。
  • TF-IDFとロジスティック回帰を用いて、残りのコミットメッセージをプロジェクトコンponentカテゴリに自動分類した。
  • 2回のCS2 Javaコースの実施で、ペアプログラミングプロジェクトを対象にGitHubのコミットデータを収集した。
  • 分野の専門家を用いて、100件のチームリポジトリを3つのチームワークスタイル(協働的、協同的、単独提出)に手動でラベル付けした。
  • 1人あたりのコミット数、各ユーザーのコミット割合、過去の学業成績などの特徴量を抽出した。
  • ロジスティック回帰およびランダムフォレストモデルを訓練・評価し、コミットベースのメトリクスからチームワークスタイルを予測した。

実験結果

リサーチクエスチョン

  • RQ1自然言語処理(NLP)技術を用いて、コミットメッセージの内容をプロジェクトコンponentカテゴリに自動分類できるか?
  • RQ2GitHubのコミットログから、学生のチームワークスタイル(協働的、協同的、単独提出)を正確に予測できるか?
  • RQ3どのコミットベースのメトリクスが、異なるチームワークスタイルを最も予測可能か?
  • RQ4過去の学生の成績とチーム編成の選択が、チームワークスタイルの予測にどのように影響するか?
  • RQ5自動化されたモデルは、最終提出の前に対象となる単独提出行動の兆候を早期に検出できるか?

主な発見

  • TF-IDFとロジスティック回帰を用いて、コミットメッセージをプロジェクトコンponentカテゴリに成功して分類し、貢献パターンの自動分析を可能にした。
  • ランダムフォレストモデルは、単独提出チームを特定する際、F1スコア0.90を達成し、このカテゴリの予測能が非常に高いことを示した。
  • プロジェクト全体を通じて1人あたりのコミット数の割合が、単独提出行動を予測する上で最も重要な特徴量であった。
  • テストや実装などの特定カテゴリにおけるコミット数の割合といったメトリクスが、協働的・協同的チームの予測において、総コミット数よりも予測能が高かった。
  • 驚くべきことに、ペアプログラミング活動は上位の予測特徴量に含まれず、おそらくコミットメッセージの記録が一貫していないためと推測される。
  • モデルは、GitHubログの自動分析が、学期の初期段階で問題のあるチームワークパターンを信頼性高く検出できることを示し、教員による能動的介入を支援することが可能である。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。