Red-Green-Go! A Self-Organising Game for Teaching Test-Driven Development

Suzanne M. Embury,Martin Borizanov,Caroline Jay
DOI: https://doi.org/10.1007/978-981-13-2751-3_19
2018-10-25
Abstract:Teaching test-driven development (TDD) in an already crowded undergraduate curriculum presents a number of challenges. How can we achieve deep understanding of the technique in a limited number of hours, in large classes, with extremely varying programming ability amongst the students and even with wide variations in the prior experience of students with TDD itself? We describe how we have applied a range of agile practices in the design of Red-Green-Go!, a board game for learning TDD that allows students to tailor the learning experience to suit their own level of experience and skill. After unsatisfactory attempts to use traditional teaching methods in our TDD classes, we made use of self-organising teams, big visible charts, frequent feedback and reflection to create a self-paced teaching activity. The game board guides pairs of students through the TDD cycle, as well as introducing students to different pair-coding styles. Feedback is available in various forms, including “community chest” style hint cards, with more extensive explanations and examples on a GitHub wiki for those that need them. Further scaffolding is provided by fully worked examples. As well as describing the agile principles and practices used in the design of the game, we present an experience report from its use over 3 years, with cohorts of up to 100 students per year. We also reflect on the approach we took as a general technique for maximising learning amongst large student groups with widely varying levels of knowledge, experience and skills.
What problem does this paper attempt to address?