Collaboration skills are important for future software engineers. In computer science education, these skills are often practiced through group assignments, where students develop software collaboratively. The approach that students take in these assignments varies widely, but often involves a division of labour. It can then be argued whether collaboration still takes place. The discipline of computing education is especially interesting in this context, because some of its specific features (such as the variation in entry skill level and the use of source code repositories as collaboration platforms) are likely to influence the approach taken within groupwork. The aim of this research is to gain insight into the work division and allocation strategies applied by computer science students during group assignments. To this end, we interviewed twenty students of four universities. The thematic analysis shows that students tend to divide up the workload to enable working independently, with pair programming and code reviews being often employed. Motivated primarily by grade and efficiency factors, students choose and allocate tasks primarily based on their prior expertise and preferences. Based on our findings, we argue that the setup of group assignments can limit students' motivation for practicing new software engineering skills, and that interventions are needed towards encouraging experimentation and learning.Index Terms-Computing education, group projects, teamwork, programming
I. In t r o d u c t io nCourses in computer science curricula often involve software engineering projects that are assigned to groups of students. Group assignments are commonly the first experiences that computer science students gain in developing software collaboratively. Through group assignments, students get the opportunity to work on software projects that are of larger scale than individual course projects can be. At the same time, group projects enable students to practice their collaboration skills [1], which are important in the software development industry [2]-[4], with current industrial trends promoting cooperative working techniques such as shared code ownership and pair programming [5]. However, even though collaboration and teamwork skills are important for the next generation of software engineers, it has been found that communication and teamwork skills are areas where graduating computer science students frequently fall short of the expectations and work requirements of industry [6], [7].Research in the area of group assignments has highlighted their advantages and disadvantages related to labour market preparation [8]-[12]. Researched topics include the formation