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.
翻译:通常由Git 和 Apache Subversion (SVN) 等版本控制系统调解的团队工作,是专业方案编制的核心。因此,许多学院甚至在入门课程中也将协作和在线开发环境纳入课程表。在这项研究中,我们收集了两个编程项目的GitHub日志,作为计算机科学专业CS2 Java编程课程的两个课程。学生每年为两个项目(一个可选项目,另一个强制性项目)工作成对。我们利用GitHub 的历史,根据分工,将学生团队分为三个小组,合作、合作或单独上传。我们随后计算了学生团队合作的不同尺度,包括项目不同部分的总数和平均承诺数量,并使用这些尺度来预测学生团队合作的风格。我们的研究结果显示,我们可以从提交日志中自动识别学生的团队风格(一个可选项目,另一个强制性项目) 。我们用版本控制系统来帮助我们更好地了解学生的习惯。这些习惯可以辨别他们之间的有害工作风格,并可能导致未来团队合作和同侪支持自动工具。