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 to complete course work.
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 only grant excused absences in exceptional circumstances. I will deduct 1.5% from your final grade for each unexcused absence and 0.75% for each time you are late to class. However, each student is allotted a 4.5% “penalty buffer,” so you may miss three classes or arrive late six times with no impact on your 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 your are sick, please do not come to class. Stay in your room, send me a message, rest, and seek medical care as needed. Student Health and Counseling Services (SHACS) offers health and mental health services to students.
If you need to miss more than three class periods (e.g. to attend an academic conference, for religious observance, to 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. I will only grant excused absences if you notify me of your absence at least 48 hours before the class you will miss. You do not need to notify me in advance if you will miss a class day using one of your free absences, although I appreciate advance notice if you will miss a lab day.
If you miss class you are responsible for making up any missed topics and in-class work. Please complete the day’s assigned reading, review the posted notes from class, and talk to at least one classmate about what was covered. If you still have questions after reviewing those materials I would be happy to help during office hours.
If you miss class on a day with an in-class exercise you should complete that exercise on your own. I generally do not grade these exercises, so you do not need to turn anything in unless the schedule says otherwise. If you miss a lab day, please send me an email after the class period and I will assign you to a group to complete the lab; I generally do not group students who miss labs with groups that started during class time, so you will end up working individually or with other students who missed the lab. Unless we have made alternate arrangements prior to your absence, work is due at the originally scheduled times.
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:
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.
You will need to complete reading journals for several papers we will read in the last few weeks of the semester. These reading journals will account for 5% of your total grade in this class. You should submit reading journals through gradescope by noon on the day of the class when the reading is assigned. I will evaluate your submitted responses both in terms of their accuracy and the quality of your writing. Reading journals will be evaluated on a simplified grading scale; you should expect to earn an A for any reading journal that contains clear, well-written answers that show evidence that you completed the reading for class. Submissions with a small writing or technical issue will receive a B, and submissions with more serious issues will receive a C. Late reading journals will not be accepted.
Individual assignments will make up 15% of your total grade. These assignments are intended to help you practice programming skills you will use in labs, and 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. Late assignments will not be accepted.
Labs will 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 not be accepted.
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 grade in this class. This includes the project proposal, implementation, documentation, and presentation. Late projects and project 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.
The same rules for collaboration and citing sources apply to both labs and all stages of the project.
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.
Please come by during my office hours to discuss course content, get extra assistance, or just talk about how the course is going. My office hours are available by appointment. To reserve a time, go to https://calendly.com/curtsinger/office-hours. If I have unscheduled time during office hours you can still stop by, but I recommend making an appointment if at all possible.
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.