Skip to content

Latest commit

 

History

History
58 lines (48 loc) · 2.36 KB

schedule.md

File metadata and controls

58 lines (48 loc) · 2.36 KB

Schedule

Important note: This schedule is subject to change. I will try to keep it up to date, but please see Piazza for the latest information and homework deadlines.

Section 1: Specifications and Proofs

Week Date Topic Readings & HW Lecture #
1 April 1 Introduction and demos 0
April 3 Hypothesis I: Specifications and correctness Correctness (computer science) 1
April 5 Hypothesis II Hypothesis docs 1
2 April 8 Hypothesis III: Complex specifications HW0 due 2
April 10 Hypothesis IV 2
April 12 Hypothesis V: Limitations 2
3 April 15 Z3 and Satisfiability Z3 introduction 3
April 17 Z3 II Z3 docs 3
April 19 Z3 III HW1 due 3
4 April 22 Z3 IV: Applications 4
April 24 Z3 V 4
April 26 Z3 VI 4
5 April 29 Z3 VII 4
May 1 Z3 VIII: Advanced 5
May 3 Z3 IX HW2 due 5
6 May 6 Z3 X 5
May 8 Z3 XII 5
May 10 Z3 XIII: Internals and Limitations 5

Section 2: Program Verification and Type Systems

Week Date Topic Readings & HW Lecture #
7 May 13 Dafny I: Formal Verification HW3 due 6
May 15 Dafny II 6
May 17 Dafny III 6
8 May 20 Dafny IV 6
May 22 Dafny V 7
May 24 Dafny VI 7
9 No Class (Memorial Day)
May 29 Dafny VII 7
May 31 Rust I: Safety Properties 8

Section 3: Advanced Topics and Review

Week Date Topic Readings & HW Lecture #
10 June 3 Rust II HW4 due 8
Last day of class -- June 5 Course review
June 6 (Thursday) HW5 due (optional)
11 June 10 Last day to submit make-up assignments
Final -- June 12

Notes

Advanced topics1 was skipped due to time.

Footnotes

  1. Possible advanced topics: polymorphism, concurrency, distributed systems, security properties