Skip to main content
QUICK REVIEW

[논문 리뷰] Student Teamwork on Programming Projects: What can GitHub logs show us?

Niki Gitinabard, Ruth Okoilu|arXiv (Cornell University)|2020. 08. 25.
Software Engineering Research참고 문헌 38인용 수 8
한 줄 요약

이 연구는 자연어 처리 기법을 활용해 커밋 메시지를 분류하고 기계학습을 통해 협업 유형을 예측함으로써 프로그래밍 과제에서 학생의 팀워크 스타일을 자동으로 분류하는 방법을 제안한다. 협업, 협력, 개별 제출 팀을 식별하는 데 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 커밋 로그를 사용하여 학생의 팀워크 스타일—협업, 협력, 개별 제출—을 자동으로 식별하기 위해.
  • 학생들이 구현, 테스트 등 프로젝트 구성 요소에 기여를 어떻게 분배하는지 커밋 패턴을 통해 분석하기 위해.
  • 커밋 메트릭스와 이전 성과를 기반으로 예측 모델을 개발하여 위험한 팀을 경고하기 위해.
  • 강사가 기여 불균형을 조기에 탐지하고 적절한 시점에 간섭할 수 있도록 지원하기 위해.

제안 방법

  • 400개의 커밋 메시지를 수작업으로 분류하여 레이블이 부여된 데이터셋을 구축하기 위해 (예: 구현, 테스트, 버그 수정).
  • TF-IDF와 로지스틱 회귀를 적용하여 나머지 커밋 메시지를 자동으로 프로젝트 구성 요소 카테고리로 분류하기 위해.
  • 2개의 CS2 자바 과정에서 페어 프로그래밍 과제를 수행한 학생들의 GitHub 커밋 데이터를 수집하기 위해.
  • 분야 전문가를 활용해 100개의 팀 레포지터리를 세 가지 팀워크 스타일로 수작업 레이블링하기 위해: 협업, 협력, 개별 제출.
  • 커밋 수 per 카테고리, 사용자별 커밋 비율, 이전 학업 성취도 등의 특징을 추출하기 위해.
  • 로지스틱 회귀 및 랜덤 포레스트 모델을 훈련하고 평가하여 커밋 기반 메트릭스에서 팀워크 스타일을 예측하기 위해.

실험 결과

연구 질문

  • RQ1자연어 처리 기법을 사용해 커밋 메시지 내용을 프로젝트 구성 요소 카테고리로 자동으로 분류할 수 있는가?
  • RQ2GitHub 커밋 로그에서 학생의 팀워크 스타일—협업, 협력, 개별 제출—을 정확하게 예측할 수 있는가?
  • RQ3다양한 팀워크 스타일 예측에 가장 예측력 있는 커밋 기반 메트릭스는 무엇인가?
  • RQ4이전 학생 성취도와 팀 편성 선택이 팀워크 스타일 예측에 어떤 영향을 미치는가?
  • RQ5자동화된 모델은 최종 과제 제출 전에 개별 제출 행동의 조기 신호를 탐지할 수 있는가?

주요 결과

  • TF-IDF와 로지스틱 회귀를 활용해 커밋 메시지를 프로젝트 구성 요소로 성공적으로 분류하여 기여 패턴의 자동 분석을 가능하게 하였다.
  • 랜덤 포레스트 모델은 개별 제출 팀을 식별하는 데 F1 스코어 0.90을 기록하여 이 카테고리에 대해 강력한 예측 능력을 보였다.
  • 전체 프로젝트 기간 동안 사용자별 커밋 비율이 개별 제출 행동 예측의 최상위 특징였다.
  • 테스트, 구현 등 특정 카테고리의 커밋 비율 같은 메트릭스는 총 커밋 수보다 협업 및 협력 팀에 대해 더 예측력이 높았다.
  • 놀랍게도 페어 프로그래밍 활동은 상위 예측 기능에 포함되지 않았는데, 이는 일관되지 않은 커밋 메시지 기록 때문일 가능성이 높다.
  • 모델들은 GitHub 로그의 자동 분석이 학기 초반에 문제 있는 팀워크 패턴을 신뢰성 있게 탐지할 수 있음을 보여주며, 강사의 사전 간섭을 지원한다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.