|  
| 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 | 
Best practices | 
 | 
 | 
 | 
| 04/22 | 
Team meeting | 
 | 
 | 
 | 
| 04/23 | 
Version control and Git | 
 | 
 | 
Architecture & Design (due 04/29)
 | 
| 04/24 | 
Project meeting | 
 | 
 | 
 | 
| 04/25 | 
Architecture & Design | 
 | 
 | 
 | 
         |  
| 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) | 
 | 
 | 
In-class: Git (due 05/02)
 | 
         |  
| 05/05 | 
Test automation | 
 | 
 | 
 | 
| 05/06 | 
Team meeting | 
 | 
 | 
 | 
| 05/07 | 
Coverage-based testing | 
 | 
 | 
Beta Release (due 05/13)
 | 
| 05/08 | 
Project meeting | 
 | 
 | 
 | 
| 05/09 | 
In-class exercise (Code defenders) | 
 | 
 | 
In-class: Code defenders (due 05/09)
 | 
         |  
| 05/12 | 
Hack day | 
 | 
 | 
 | 
| 05/13 | 
Team meeting | 
 | 
 | 
 | 
| 05/14 | 
Mutation-based testing | 
 | 
 | 
Refinement (due 05/20)
 | 
| 05/15 | 
Project meeting | 
 | 
 | 
 | 
| 05/16 | 
In-class exercise (Testing) | 
 | 
 | 
In-class: Testing (due 05/16)
 | 
         |  
| 05/19 | 
Debugging | 
 | 
 | 
 | 
| 05/20 | 
Team meeting | 
 | 
 | 
 | 
| 05/21 | 
SE and Code Review at Scale (Shauvik Roy Choudhary, Uber) | 
 | 
 | 
Peer Review (due 05/27)
 | 
| 05/22 | 
Project meeting | 
 | 
 | 
 | 
| 05/23 | 
In-class exercise (Debugging) | 
 | 
 | 
In-class: Debugging (due 05/23)
 | 
         |  
| 05/26 | 
No class (holiday) | 
 | 
 | 
 | 
| 05/27 | 
Team meeting | 
 | 
 | 
 | 
| 05/28 | 
Program analysis | 
 | 
 | 
Final Release (due 06/03)
 | 
| 05/29 | 
Project meeting | 
 | 
 | 
 | 
| 05/30 | 
In-class exercise (AI-assisted coding) | 
 | 
 | 
In-class: GenAI (due 05/30)
 | 
         |  
| 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 | 
 | 
 | 
In-class: Z3 (due 06/06)
 |