Link Search Menu Expand Document

CS5600: Labs

LabTopicDueTeams
Lab 116-bit CPU EmulatorSeptember 24Lab 1 Teams
Lab 2Simple ShellOctober 15Lab 2 Teams
Lab 3Simple Threading LibraryNovember 12 

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!