Assignments
Labs
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.
Some labs come with checkpoints.
Late policy for labs: See policies.
| Lab | Topic | Release | Due |
|---|---|---|---|
| Lab 0 | Teaming | Jan 13 | Jan 14: Questionnaire Jan 19: Team Formation |
| Lab 1 | Straight Line Code | Jan 15 | Jan 24: Tests & Checkpoint Jan 28: Compiler |
| Lab 2 | Control | Jan 27 | Feb 4: Tests Feb 14: Compiler |
| Lab 3 | Functions | Feb 13 | Feb 21: Tests Feb 28: Compiler |
| Lab LLVM | Target LLVM | Feb 27 | Mar 14 |
| Lab 4 | Memory | Mar 13 | Mar 21: Tests Mar 28: Compiler |
| Lab 5 | Optimizations | Mar 27 | Apr 11: Tests & CheckPoint Apr 25: Compiler May 2: Report |
Written Assignments
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.
LaTeX Dependencies: homework.sty ; compilerstoolbox.sty
Late policy for individual written assignments: See policies.
| Assignment | Topic | Release | Due |
|---|---|---|---|
| Written 1 | Backend | Jan 20 | Jan 28 |
| Written 2 | Statics | Feb 3 | Feb 11 |
| Written 3 | Parsing & SSA | Feb 17 | Feb 25 |
| Written 4 | Dynamics | Mar 10 | Mar 18 |