Labs
This course is organized around 11 in-class labs on varying topics.
Lab Reports:
Each lab requires you to write a lab report that answers key questions as you work through the lab. These reports should follow the format of the LibreOffice template provided here. Answers to most lab questions can be short; a few sentences is generally sufficient.
All labs will be submitted via the Canvas site. For each lab, everything (programs source code, lab reports, etc...) must be compressed in ZIP format and submitted through Canvas.
Lab Reports must be submitted in PDF format, not as LibreOffice files (Choose File->Export as PDF). Documents not in PDF format will be returned ungraded.
Deadlines:
Pre-Lab checkpoints are due at the beginning of class of the corresponding lab. A "checkpoint" is simply a quick verification that the requested activity was complete. Detailed grading will be done when the full lab report is submitted.
The full Lab Report is due by 5:00am on the dates listed in the table below. (The intent is that you finish it up at your leisure the night before, rather than waiting till the last second and submitting it at 4:59am...)
Grading:
To account for the varying amount of work required, each lab is worth a different point amount, as listed in the table below.
Lab # | Topic | Lab Start Date | Lab Report Due Date | Points Per Problem | Pre-Lab Points | Lab Points |
---|---|---|---|---|---|---|
1 | Linux Basics | Jan 25th, 2022 | Jan 31st, 2022 by 5am | Rubric | 50 | 60 |
2 | C Programming (Language, Tools, and Makefiles) |
Feb 1st, 2022 | Feb 7th, 2022 by 5am | Rubric | - | 70 |
3 | C Programming Project | Feb 8th, 2022 | Feb 14th, 2022 by 5am | Rubric | - | 150 |
4 | Performance Measurement | Feb 15th, 2022 |
Feb 28th, 2022 by 5am | Rubric | - | 140 |
5 | Performance Optimization (Compilers and programmer techniques) |
Feb 22nd, 2022 | Mar 7th, 2022 by 5am | Rubric | - | 160 |
6 | Performance Optimization (Memory Hierarchy) |
Mar 1st, 2022 |
Mar 14th, 2022 by 5am |
Rubric | - | 160 |
7 | Network Socket Programming (Basic) |
Mar 10th, 2022 |
Apr 4th, 2022 by 5am |
Rubric | - | 120 |
8 | Network Socket Programming (Intermediate) |
Mar 22nd, 2022 |
Apr 11th, 2022 by 5am |
Rubric | - | 120 |
9 | MIPS Assembly Programming (Basic) |
Mar 31st, 2022 | Apr 18th, 2022 by 5pm |
Rubric | - | 125 |
10 | MIPS Assembly Programming (Intermediate) |
Apr 7th, 2022 | Apr 25th, 2022 by 5am | Rubric | - | 135 |
11 | MIPS Assembly Programming (Advanced) |
Apr 12th, 2021 | May 2nd, 2022 by 5am | Rubric | - | 135 |