CS3650: Labs
Lab | Topic | Due |
Lab1 | Setup and tools | 01/19/2024, 23:59 |
Lab2 | Shell | 02/07/2024, 23:59 |
Lab3 | Concurrent KV-store | 02/26/2024, 23:59 |
Lab4 (Part A) | CS3650 file system | 03/27/2024, 23:59 |
Lab4 (Part B) | Testing CS3650 file system | 04/05/2024, 23:59 |
Lab5 | Socket programming | 04/15/2024, 23:59 |
Spending your time on labs (and start early!)
A crucial component of the course is the labs. You should expect these labs to require you to spend substantial time programming.
Reading is part of the labs
Systems tasks require a good understanding of what you will do a priori—“trial and error” is not a good strategy. Likely, you will need to spent a good amount of time reading lab instructions, corresponding documents, and the provided skeleton code. Indeed, one of the main purposes of the labs is for you to go through the exercise of figuring out how computer systems work. Thus, if a lab is at first confusing even in its instructions, please don’t be discouraged; understanding the instructions is part of the work of the labs!
Asking for help
We (the course staff) are happy and even eager to help on the labs. When should you ask for such help? Mainly, you should use your judgment (the rough answer is: “when you’re actually stuck”). But, asking for help every 20min is clearly not a good idea.
When asking for help, you should describe the problem (what you’ve observed and why this is a problem) and your initial analysis (what could be the root cause of the problem). Please do not expect TAs will help debug your code because debugging is part of your lab.
A final note
Some of these labs will be challenging. We hope they will also be very satisfying. We will work to help you meet the challenge. Our hope and expectation is that everyone who works hard on the labs will succeed. If you have ideas for improving the labs, please let us know. Good luck!