PyCon 2019 in Cleveland, Ohio

Sunday 10 a.m.–1 p.m. in Expo Hall

Using Python and GitHub for Team Formation and Assessment

Gregory M. Kapfhammer


Since real-world software engineers collaborate through GitHub, students who are learning to create software should also work in teams. Yet, team formation is challenging for instructors who must surface student skills and interests when forming balanced teams. Instructors also face the challenge of quickly and accurately assessing both individual contributions and overall team effectiveness. Both the formation of unstable teams and an instructor's slow or incorrect assessment of students and their teams will compromise the learning objectives for an assignment. Since the manual creation and assessment of teams is time consuming and error-prone, instructors need automated tools to support this process. This poster will explain how to use the Python programming language and the GitHub platform to form and assess student teams. After introducing surveys that capture student interests and skills, the poster will show how to use the [GatorGrouper tool]( that forms teams according to the survey results, a student roster, and the desired number and size of the teams. In addition to introducing the behavior and trade-offs associated with GatorGrouper's techniques for group formation, the poster will highlight features like the one that accounts for student absences. Since GatorGrouper outputs teams in a format accepted by [GitHub Classroom](, this poster will show how to use this platform to create a version control repository for each team. After explaining how teams can collaborate with GitHub's issue tracker and flow model, this poster will highlight how to use Python to assess both individual and team effectiveness. Along with showing how to access the issue tracker, pull request, and branch history of a GitHub repository, the poster will show how the [GatorGrader tool]( can use this information to ensure that, for instance, the team effectively shared the assignment's workload and each student made acceptable individual contributions. Software engineers and programming educators who visit this poster will learn how the Python language and the GitHub platform support simple ways to form and assess teams. Accessible to individuals from a wide variety of backgrounds and skill levels, this poster will explain how teachers can use tools, like GatorGrouper, GatorGrader, and GitHub, to ensure that students master the real-world skills that will enable them to be effective software engineers.