The labs are the heart of this course and count for 70% of your grade. Much of what you learn in this course will be through completing these labs. Labs can be done individually or in pairs. All deadlines are 11:59pm on the due date.
Late policy for labs: See policies.
|Lab 1||Straight line code||Sep 3||Sep 10 (test), Sep 17 (compiler)|
|Lab 2||Control||Sep 18||Sep 24 (test), Oct 1 (compiler)|
|Lab 3||Functions||Oct 2||Oct 8 (test), Oct 15 (compiler)|
|Lab 4||Memory||Oct 16||Oct 25 (test), Oct 29 (checkpoint), Nov 5 (compiler)|
|Lab 5||Optimization||Nov 6||Nov 19 (compiler), Nov 26 (report)|
|Lab 6||Special Topics:
- Garbage collection
- C0 and beyond
- Choose your own adventure
|Nov 23||Dec 10 (compiler), Dec 12 (report)|
Written assignments are to be completed individually. They are handed in as PDFs through Gradescope. We expect you to use word processing or typesetting software for your assignments where appropriate, but hand-drawn diagrams are acceptable if they are done neatly. All deadlines are 11:59pm on the due date.
Late policy for individual written assignments: See policies.
|Assignment 1||Backend||Aug 31||Sep 12|
|Assignment 2||Frontend||Sep 14||Sep 26|
|Assignment 3||Middle||Oct 2||Oct 12|
|Assignment 4||Semantics||Oct 14||Nov 3|
|Assignment 5||Project Proposal||Nov 7||Nov 17|