Assignments

In addition to your collaborative work on labs for this course, you will also need to complete individual assignments. The majority of the individual assignments are programming tasks that should help prepare you for upcoming labs. In the last two weeks of the course, we will read and discuss classic research papers in operating systems; you will need to submit reading journals for those papers.

  Ngram Generator
    • Assigned September 4, 2024
    • Due September 9, 2024 11:59pm
  Sorted List
    • Assigned September 9, 2024
    • Due September 16, 2024 11:59pm
  Archive Printer
    • Assigned September 16, 2024
    • Due September 23, 2024 11:59pm
  Listing Directories
    • Assigned October 7, 2024
    • Due October 14, 2024 11:59pm
  Concurrency Bugs
    • Assigned October 28, 2024
    • Due November 4, 2024 11:59pm
  Week 9 Assignment
    • Assigned November 4, 2024
    • Due November 11, 2024 11:59pm
  Reading Journal: Lampson
    • Assigned November 11, 2024
    • Due November 18, 2024 8:00am
  Week 12 Assignment
    • Assigned November 25, 2024
    • Due December 2, 2024 8:00am
  Reading Journal: UNIX and Worse is Better
    • Assigned December 2, 2024
    • Due December 9, 2024 8:00am

Policies

The following policies apply to all of the individual assignments in this class. If you have any questions about a policy you are welcome to ask about them individually or in class.

Collaboration

These individual assignments are meant to be an assessment of your programming skills and understanding of the basic course material. Mentors may be able to help you if you are confused about the assignment requirements or have trouble understanding the man documentation for a function you’d like to use, but they cannot assist you in any way that requires them to look at your code or discuss your solution to the assignment. You are welcome to me for more assistance, although there may be some questions I cannot answer.

I expect everything you submit to be your own work, but you may discuss general concepts and approaches for assignments with other students in the class. You should limit these discussions to conceptual details and general programming challenges. You are welcome to talk about errors, useful functions, and C language quirks with other students, but you may not share your assignment code or rely on another student’s code for an assignment.

Grading

Your grade for programming assignments will be based on two factors:

20%  Code Quality
Does your implemention follow best-practices for implementation? Is it clear and concise? This will account for 20% of your grade on the assignment. Any warnings or errors when building your code will result in an automatic zero for this portion of the assignment.
80%  Implementation Correctness
I will evaluate your implementation to see how it handles various inputs and edge cases. In some cases this may be done with an automated test suite. I will give partial credit for assignments that miss edge cases but handle the majority of inputs correctly.

Reading journals and written assignments will include their own grading details.