Date Topic Materials Readings Assignments

03/31 Introduction
04/01 Project proposal work
04/02 The Joel Test Project proposal (due 04/08)
04/03 Project proposal work
04/04 Software development life cycle

04/07 Teams and Scrum
04/08 Project proposal work
04/09 Proposal pitches Team setup (due 04/15)
04/10 Proposal pitches
04/11 Proposal pitches Project preferences (due 04/11 2pm)

04/14 Requirements
04/15 Team meeting
04/16 Requirements Requirements (due 04/22)
04/17 Project meeting
04/18 Data modelling

04/21 Architecture
04/22 Team meeting
04/23 Design Architecture & Design (due 04/29)
04/24 Project meeting
04/25 Version control and Git

04/28 Build systems
04/29 Team meeting
04/30 Testing and CI Testing & CI (due 05/06)
05/01 Project meeting
05/02 In-class exercise (Git)

05/05 Coverage-based testing
05/06 Team meeting
05/07 Mutation-based testing Beta Release (due 05/13)
05/08 Project meeting
05/09 In-class exercise (Code defenders)

05/12 Hack day
05/13 Team meeting
05/14 Code review Refinement (due 05/20)
05/15 Project meeting
05/16 In-class exercise (Testing)

05/19 Program analysis
05/20 Team meeting
05/21 Debugging Peer Review (due 05/27)
05/22 Project meeting
05/23 In-class exercise (Debugging)

05/26 No class (holiday)
05/27 Team meeting
05/28 Fault localization Final Release (due 06/03)
05/29 Project meeting
05/30 In-class exercise (Fault localization)

06/02 Hack day
06/03 Team meeting
06/04 Advanced program analysis Individual reflection (due 06/10)
06/05 Project meeting
06/06 Optional in-class exercise