Operating systems is a large area with a long history, so we have a lot of ground to cover in just one semester. We will be moving quickly, so you will need to manage your time carefully to keep up. Consider setting aside specific times each week (ideally with other students) to complete course work.

Complete course policies are detailed below, but the high level points are summarized here:

Attendance: I will not take attendance in class, but you are still expected to attend. If you miss class you are expected to make up any missed material by first talking to your peers. If you regularly miss lab days there will be a penalty of up to 20% on each lab, depending on the circumstance.

Preparation: You should complete all assigned reading before class. If you do not understand the material in the reading, seek out additional materials and talk to your classmates for help. If you find additional reading materials that help you, please share them with me.

Participation: Your participation in class will account for 10% of your total grade. If you consistently contribute in class you should expect to receive at least 90% for this category. Poor attendance will have a negative impact on your participation grade.

Assignments: This course does not have any quizzes or exams. Instead, the individual assessment for this course will come in the form of small weekly assignments. These assignments will account for 15% of your total grade in the class.

Labs: You will complete labs with assigned groups during the semester. These labs will account for 50% of your final grade. Labs will require a significant amount of programming, so please start them early and ask questions.

Project: You will complete an end-of-semester project, which will account for 25% of your final grade. Graded work includes a project proposal, the project implementation, documentation, and a brief presentation during finals week.

Late Submissions: Late assignments will not be accepted. Labs will be penalized one full letter grade (10%) for each day they are late. Late projects and proposals will not be accepted. If there are issues with MathLAN that significantly prevent the entire class from working on an assignment, lab, or the project, I will issue an extension.

Academic Honesty: When you rely on outside sources for help, you must cite them. Submitting work that is not your own, including group work to which you did not significantly contribute, will result in an automatic zero on the assigned work. Serious or repeated infractions will be forwarded to the Committee on Academic Standing and may result in an automatic F in the course.


My goal is to help you learn as much as possible in this course; please let me know what I can do meet your learning needs. If you have a disability that requires accommodations, please contact Disability Resources. Disability Resources will work with you to determine your needs, and will provide you with paperwork outlining the accommodations you require. Please give me this paperwork at least a week before the course activity for which you need accommodations. If this timeline is not feasible for any reason, please contact me as soon as possible and we will work together to find a solution.


Your classmates and partner(s) depend on your contributions to learn new material and complete the required work for this course. Don’t let them down! You are expected to arrive on time and actively participate in every class.

If your are sick, please do not come to class. Stay in your room, rest, and seek medical care as needed. Student Health and Counciling Services (SHACS) offers health and mental health services to students.

While there is no penalty for missing regular class days (other than the additional work you will need to put in to make up for missed material) there will be a penalty for missing lab days. This penalty may be as large as 20% on the lab assigned that day, depending on the circumstance. Please notify me at least one week in advance if you need to miss a lab day for an academic or athletic event or a high holy day, otherwise a penalty may apply. If you miss a lab day due to illness I will waive the penalty if you provide documentation from SHACS.

Preparation for Class

Our primary textbook is Operating Systems: Three Easy Pieces, by Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau. This textbook is available for free online. The textbook page includes information on how to order a printed copy of the book, but this is not required. There will be some supplementary readings, including a few important research papers in systems. All of these readings are linked on the course schedule, and should be available for free. Some readings may require you to log in with your Grinnell account when you are off campus.

If you find additional readings that help you to prepare for class, please share them with me! I will incorporate these into a future offering of the class. I also encourage you to share additional references with your classmates.


Your participation in class will account for 10% of your final grade. Participating in class involves:

  • being present in class (physically and mentally),
  • coming to class prepared,
  • asking questions,
  • making contributions to class discussion by volunteering and when called upon,
  • staying on task during collaborative exercies, and
  • working effectively with your group.

Students who consistently meet these criteria can expect to earn 90% (an A-) for their class participation grade. I will reward students who regularly provide significant insights or guide discussion in a productive manner. Students who fail to participate, or participate in counterproductive ways—by dominating the discussion or making inappropriate comments—will earn a lower score.


Individual assignments will make up 15% of your total grade. These assignments are intended to assess your individual understanding of the course material. Therefore, collaboration on assignments is not permitted. Prohibited collaboration includes discussion of common issues, potential solutions, or past assignments; we will spend class time discussing these assignments after they are due. If you have questions on an assignment, please bring them directly to me.


Labs will account for 50% of your grade in this class. You are expected to work collaboratively on labs with your assigned partner(s). Make sure you follow all instructions for completing and submitting each lab. This includes requirements for building and running your code. Late labs will be penalized a full letter grade (10%) for each day they are late.

You are encouraged to use outside resources when completing labs, provided you cite them. Building on existing code is a valuable skill, and relying on outside sources will not be penalized. However, you may not use an outside source for the majority of your implementation. If your assignment is to implement a shell, you cannot simply submit someone else’s shell implementation with a citation. If you find an outside source you would like to use but you are unsure whether that would be acceptable, come talk to me.


The final project will account for 25% of your final grade. This includes the project proposal, implementation, documentation, and presentation. Late projects and project proposals will not be accepted in general, but if a special circumstance comes up please let me know as soon as possible so we can discuss an alternate timeline. If there are issues with MathLAN that significantly prevent the entire class from working on a lab or project, I will issue an extension.

The same rules for collaboration and citing sources apply to both labs and all stages of the project.

Academic Honesty

I encourage collaboration when it promotes learning. However, it is important for you to understand the course materials and demonstrate your own learning on assignments. As an instructor, I will meet my obligation to bring any work suspected to be in violation of the College’s Academic Honesty Policy to the attention of the Committee on Academic Standing, after which there is no recourse with me.

You are free to discuss course readings and labs, but copying is not acceptable. The work you turn in must be your own. You must acknowledge the contributions of others, whether they come from other students in the class, or from print and online resources. While I encourage you to collaborate with others when appropriate, you are expected to be able to construct and explain each solution on your own.


The graded components for this course will contribute to your total grade in the following proportions:


There will be no curves or competitive grading in this course. Every student has an opportunity to earn an A. Your final grade will be determined with the following scale:


I reserve the right to adjust this scale during the semester, until two weeks before the end of class. I will notify all students of any change in the grading scale. You may ask me for your current grade in the class at any point; I will happily give you my best estimate based on the current scale and graded work so far, but these estimates are not guarantees of a specific final grade.

Getting Help

Office Hours

Please come by during my office hours to discuss course content, get extra assistance, or just talk about how the course is going. I am using a new system for office hours this semester; if you would like to meet during my office hours, make an appointment at If I have unscheduled time during office hours you can still stop by.

If you cannot make it to regular office hours, email me to schedule an appointment. Please provide at least three possible meeting times so I can pick one that works for me.


I am happy to answer questions by email, but please allow 24 hours for a response (except on weekends, when I may not answer email at all). If you have an urgent issue that must be resolved, email is the best way to reach me. If an issues comes up and it cannot wait until the next class period, please include the text “URGENT” at the beginning of your subject line.