Assignments
The course includes three individual programming labs, two paper reviews, and a final project. Programming labs account for 45% of the final grade, paper reviews for 10%, and the final project for 45%.
Assignment instructions and submission links are posted below as each assignment is released.
Programming labs
| Assignment | Release | Due | Materials |
|---|---|---|---|
| SMT Solver | Sep 16, 2026 | Sep 28, 2026 (EOD) | Link (See Github template for details) |
| Dafny Replication | Sep 28, 2026 | Oct 11, 2026 (EOD) | Link |
General expectations
Programming labs are individual work unless an assignment explicitly states otherwise. You may discuss high-level ideas with classmates, but submitted work must be your own and you must understand all parts of it.
The five shared late days and the policy on AI-assisted tools are described on the Policies page.
Paper reviews
Each paper review is worth 5% of the final grade. Read the Paper Review Guide for the required
format, grading scale, and submission policies. Submit your review as
submission.pdf through Classroom50; other documents are
welcome in your repository as long as the final PDF is easy to find.
| Review | Release | Due | Materials |
|---|---|---|---|
| Paper Review 1: Learning Invariants | Sep 30, 2026 | Oct 7, 2026, 11:59 p.m. MT | Instructions and paper choices · Classroom50 submission |
Final project
The final project is worth 45% of the final grade. Read the Final Project Guide for the expected scope, team requirements, proposal, presentation, final report, and assessment criteria. Project presentations will take place on December 2 and December 7.