Lab guidance

Hardness of Assignments

Each assignment indicates how difficult it is:

These times are rough estimates. If you find yourself spending more time on an assignment indicated, please let me know.

Lab Commandments

In general, the problem solutions for our labs do not require lots of code (tens to a few hundred lines), but some of the code is conceptually complicated and often details matter a lot. Additionally, the manifestation of a bug in operating system code can be bewildering and may require much thought and careful debugging to understand and fix. For this reason, adhere to the following lab commandments.

  1. Do not start a lab the night before it is due.
  2. Work on the labs in several sessions spread over multiple days.
  3. Complete at least one lab work session prior to the Class Lab Day.
  4. Use the Class Lab Day to make progress and get help.
  5. Complete the assigned reading before programming.
  6. Study the relevant code files before programming.
  7. Consult any documentation listed for the lab before programming.
  8. Only when you have a firm grasp of the lab concepts and a solution design, then start coding.
  9. When you start coding, implement your solution in small steps (the assignments often suggest how to break the problem down in smaller steps) and test whether each steps works before proceeding to the next one.
  10. When complete, perform the Lab Submissions steps.

Debugging Tips

Here are some tips for debugging your solutions: