Labs
This course will be organized around 10 in-class labs on varying topics. Many labs also have "pre-lab" assignments (i.e. homework) and/or "post-lab" assignments (i.e. homework or projects).
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 OpenOffice template provided here, with separate sections for pre-lab, lab, and post-lab questions. Answers to most lab questions can be short; a few sentences is generally sufficient.
Lab Submission:
The first lab (and only the first lab!) will be submitted via the Sakai site. For all other labs, everything (programs source code, lab reports, etc...) must checked into the corresponding lab directory in version control and pushed to the online repository.
Lab Reports must be submitted in PDF format, not as OpenOffice files (Choose File->Export as PDF).
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 (which includes sub-sections for the Pre-Lab, Lab, and the Post-Lab as necessary) is due by 11:59:59pm on the dates listed in the table below.
Grading:
To account for the varying amount of work required, each pre-lab, lab, and post-lab is worth a different point amount, as listed in the table below.
Lab # | Topic | Lab Date | Lab Report Due Date | Grading Rubric | Pre-Lab Points | Lab Points | Post-Lab Points |
---|---|---|---|---|---|---|---|
1 | Linux Basics | Tue, Sept 4th | Tue, Sept 11th | 50 | 50 | 50 | |
2 | Version Control | Thur, Sept 6th | Thur, Sept 13th | 20 | 50 | 0 | |
3 | C Programming | Thur, Sept 13th | Sun, Sept 23rd | 0 | 100 | 150 | |
4 | Performance Measurement | Thur, Sept 20th | Sun, Sept 30th | 50 | 100 | 50 | |
5 | Performance Optimization (Compilers and programmer techniques) |
Thur, Sept 27th | Fri, Oct 12th | 20 | 125 | 125 | |
6 | Performance Optimization (Memory Hierarchy) |
Tue, Oct 9th | Sun, Oct 28th | 0 | 120 | 80 | |
7 | Endianness | Postponed | 30 | 75 | 75 | ||
8 | MIPS Assembly Programming (Basic) | Tue, Oct 30th | Tue, Nov 6th | 0 | 150 | 0 | |
9 | MIPS Assembly Programming (Advanced) | Tue, Nov 6th | Tue, Nov 20th | 0 | 200 | 0 | |
10 | Network Socket Programming with Python | Tue, Nov 27th | Fri, Dec 7th | 0 | 125 | 0 |