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 subtract 1.5% from your final grade for each time your are absent, and 0.75% for each day you are late to class. There are no excused absences (except in extreme circumstances such as a long-term illness, family emergency, or academic travel), but you are granted a 3% allotment for penalties, so you can miss two classes or arrive late four times with no impact on your final grade.

Preparation: You should complete all assigned reading before class. This includes a quick review of the assigned labs. 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. This is separate from any penalty for unexcused absences or coming to class late.

Quizzes: There will be no exams in this class. Instead, we will have weekly quizzes to cover recent materials. Quizzes will account for 25% of your final grade. I will drop your lowest quiz grade before computing the average.

Labs: Lab work will account for 45% 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 20% of your final grade. Graded work includes a project proposal, the project implementation, documentation, and a brief presentation in the final week of class.

Late Submissions: Missed quizzes will receive a zero, but remember that your lowest quiz score will be dropped. 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 a lab or 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.

Because your participation is so important, I will not grant excused absences except in exceptional circumstances. I will deduct 1.5% from your final grade for each absence and 0.75% for each time you are late to class. However, each student is allotted a 3% “penalty buffer,” so you may miss two classes or arrive late four times with no impact ony our final grade. This policy is intended to give you the flexibility to deal with brief illnesses or personal issues that require you to miss class.

If you need to miss more than two class periods for an exceptional reason (e.g. to attend an academic conference, deal with a family emergency, or due to long-term illness) please talk to me as soon as possible and we will make an alternate arrangement.

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.

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. We will also use the textbook Structured Parallel Programming (ISBN 978-0-124-15993-8) by Michael McCool, Arch Robison, and James Reinders during the parallel programming portion of the class. There will be some supplementary readings, including a few important research papers in systems.

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.


Quizzes will account for 25% of your final grade. I will drop your lowest quiz grade before computing your quiz average.

Quizzes are intended to assess your individual understanding of the course material. Therefore, collaboration on quizzes is not permitted. If you have questions on a quiz, please bring them directly to me. Of course you are encouraged to collaborate when preparing for quizzes. You may not use references or calculators on quizzes unless I provide them.


Lab projects account for 45% 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 20% 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 quizzes. 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.

Students are free to discuss readings and assignments, 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. In short, while you are encouraged to collaborate with others, you are expected to be able to construct and explain each solution on your own.


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.