Schedule
  Note: this schedule is tentative and may change based on student feedback as the semester progresses.
| Day | Content | Reading | Due | 
|---|---|---|---|
| Wed, Jan 22 | |||
| Thu, Jan 23 | Economics of Software Correctness David R. MacIver, 2016. | ||
| Mon, Jan 27 | The Fuzzing Book: Introduction to Software Testing Skim through `Run-Time Verification`. Zeller et al, 2024. | ||
| Wed, Jan 29 | 
          
            
            Workshop: Launch PBT
            
          
         | 
        Due: Preliminaries (Gradescope)
       | |
| Thu, Jan 30 | Property-Based Testing in Practice Harrison Goldstein et al, 2024. Feel free to read before or after class, we will discuss Monday the 3rd | ||
| Mon, Feb 3 | Evaluating the “Small Scope Hypothesis” Read Abstract, skim Introduction. Andoni et al, 2002. | ||
| Wed, Feb 5 | 
          
            
            Workshop: Launch Modeling 1
            
          
         | Skim book: Ch. 1-2.5 | |
| Thu, Feb 6 | Skim book: Ch. 3.0-3.2.3 | 
        Due: PBT
       | |
| Mon, Feb 10 | Skim book: Ch. 3.4, read 3.5.1-3.5.2 | ||
| Wed, Feb 12 | 
          
            
            Workshop: Launch Modeling 2
            
          
         | 
        Due: Modeling 1
       | |
| Thu, Feb 13 | AlloyDocs: Time Hillel Wayne, 2024. | ||
| Mon, Feb 17 | Presidents' Day; no class | ||
| Tue, Feb 18 | (Optional/supplemental): Alloy 6: It's about time blog post Hillel Wayne, 2021. | ||
| Wed, Feb 19 | 
          
            
            Workshop: Launch Modeling 3
            
          
         | 
        Due: Modeling 2
       | |
| Thu, Feb 20 | (Discussion): The Urgent Need for Memory Safety in Software Products Press release from the US Cybersecurity Agency, 2023 | ||
| Mon, Feb 24 | (Supplemental): Automated Memory Management Wikipedia | ||
| Wed, Feb 26 | 
          
            
            Workshop: Launch Modeling 4
            
          
         | 
        Due: Modeling 3
       | |
| Thu, Feb 27 | |||
| Mon, Mar 3 | (Supplemental): Peterson's algorithm Wikipedia | ||
| Wed, Mar 5 | 
          
          Workshop: Catchup day; finish modeling 4
        
         | 
        Due: Modeling 4
       | |
| Thu, Mar 7 | (Supplemental): Formally Modeling Database Migrations Hillel Wayne, 2019 | ||
| Mon, Mar 10 | Boolean Satisfiability: From Theoretical Hardness to Practical Success Malik & Zhang, 2009 | ||
| Wed, Mar 12 | 
          
            
            Workshop: Working session for Modeling 5
            
          
         | ||
| Thu, Mar 13 | |||
| Mon, Mar 17 | Spring break | ||
| Mon, Mar 24 | |||
| Wed, Mar 26 | 
          
            
            Workshop: Launch SAT
            
          
         | 
        Due: Modeling 5
       | |
| Thu, Mar 27 | Why Amazon Chose TLA+ Chris Newcombe, 2014 | ||
| Mon, Mar 31 | (Supplemental): SAT/SMT by Example Dennis Yurichev, 2024 | ||
| Wed, Apr 2 | 
          
            
            Workshop: Launch SMT 1
            
          
         | 
        Due: Solver
       | |
| Thu, Apr 3 | |||
| Mon, Apr 7 | (Supplemental): Symbolic execution and program testing James C. King, 1976 | ||
| Wed, Apr 9 | 
          
            
            Workshop: Final project group formation
            
          
         | 
        Due: SMT 1
       | |
| Thu, Apr 10 | The Coming Software Apocalypse James Somers for The Atlantic, 2017 | ||
| Mon, Apr 14 | 
          
            
            Workshop: Launch SMT 2
            
          
         | ||
| Wed, Apr 16 | Ruhlman conference; no class | ||
| Thu, Apr 17 | 
        
          
          Program synthesis
          
        
        
       | 
        Due: Final project proposal
       | |
| Mon, Apr 21 | Patriots day; no class | ||
| Wed, Apr 23 | 
          
          Workshop: Final project checkins
        
         | 
        Due: SMT 2
       | |
| Thu, Apr 24 | 
        
          
          Guest lecture: Anjali Pal, University of Washington
          
        
        
       | ||
| Mon, Apr 28 | 
        
          
          Final project checkins
          
        
        
       | ||
| Weds, Apr 30 | 
        
          
          No workshop
          
        
        
       | ||
| Thu, May 1 | 
        
          
          Final class! Guest lecture: Carolyn Zech, AWS
          
        
        
       | ||
| Mon, May 6 | Final exam period starts | ||
| Thurs, May 8 | Final exam period | 
        Due: Final presentations, 9-11:30am
       | |
| Fri, May 9 |  | 
        Due: Final project code, report
       |