Syllabus

CMPU 334 Fall 2025

Description

This course examines the theory and implementation of modern operating systems. Topics covered are processes and threads, context switching, synchronization, scheduling, deadlock, dynamic memory allocation, virtual memory, storage devices, and file system implementation.


Prerequisites

  • CMPU-203
  • CMPU-224

Professor

  • Jason Waterman
  • Office: SP 104.4
  • Email: jawaterman

Office Hours

Location: SP 104.4

  • Tuesday 1:30 PM - 2:30 PM
  • Wednesday 1:00 PM - 3:00 PM
  • Thursday 1:30 PM - 2:30 PM

Meeting Times

Location: SP 309

  • Tuesday 3:10 PM to 4:25 PM
  • Thursday 3:10 PM to 4:25 PM

Textbook


Grading

Grades will be weighted as follows:

  • Quiz1: 20%, 25%, or 30%
  • Quiz2: 20%, 25%, or 30%
  • Final: 20%, 25%, or 30%
  • Assignments: 25%

The exam you do the best on will count for 30% of your overall grade. The exam you do the least well on will count for 20% of your overall grade. The exam in the middle will count for 25% of your overall grade.

Note: The final is a regularly scheduled final held during finals period.


Attendance

I would really love to see you in each and every class. We’ll work on problems together during labs, and I will always leave time for questions during lecture. Our classes here at Vassar are small and coming to class is one of the best ways for you to learn the material. That being said, if you are not feeling well, please stay home and review recordings of the lectures posted online. I will make a best-effort attempt to record each lecture and post to the class website.


Electronic Devices in Class

Please turn off or put your phone on “do not disturb” mode in class. Many studies have found a mobile phone to be an impediment to learning in class. Phone use is a distraction to all members of the class — especially yourself. In addition, cognitive and behavioral scientists have found that electronic devices can erode ability to concentrate. Consider this class to be an oasis from your device. If you would like to use your laptop for taking notes in class you are welcome to do so, but please come and talk to me. The use of any electronic devices for non-class related purposes is not allowed.


Late Days

All assignments are due by the deadline stated on the assignment handout. You will receive a budget of five (5) late days for the course. These late days are provided to allow you to cope with most emergencies that prevent completing a lab on time, including computer problems, a cold, getting stuck at the airport, etc. Here is how late days work:

  • Late days are applied automatically until you run out. However, no more than two (2) late days can be used on any one assignment.
  • Late days work in 24 hour increments. If you use a late day, the new due date will be 24 hours from the original date.
  • Late days can only be used on assignments, not quizzes, labs, or finals.

Late days are a tool to allow you to manage your time in the face of personal issues and to help smooth out burstiness in assignment due dates across classes. They are for when you are sick, when a short term emergency situation arises, when you have too many deadlines all at once, etc. Except for serious persistent personal issues (see below), you should not anticipate additional deadline leniency.


Dealing with Serious Persistent Personal Issues

I hope that everyone in this class will remain happy and healthy. But, if you have a serious persistent personal issue, such as being hospitalized for an extended period or needing to leave the country for a family matter, please talk to your class advisor in the dean of studies office as soon as possible. Such issues consistently affect one’s ability to succeed in all classes, rather than just CMPU-334, and the class advisors are equipped to coordinate plans for dealing with them. I will cooperate with such plans, but I cannot construct them independently of the class advisors.


Policy on the Use of AI and Large Language Models (LLMs)

In this course, thh primary objective is for you to develop your own computational thinking and problem-solving skills. The process of struggling with a problem, debugging code, and arriving at a solution is where true learning happens. Tools like ChatGPT, Google Gemini, GitHub Copilot, and other Large Language Models (LLMs) can be powerful aids, but their misuse can severely hinder your learning and constitutes a serious breach of academic integrity. I discourage the use of LLMs in this class but I do not explicitly forbid them.

The guiding principle of the policy is this: You may use AI tools to assist your learning, but not to do the work for you. You are responsible for every line of code and answer you submit.

Permitted Uses (Learning-Focused)

You may use AI assistants for the following purposes, provided you cite their use (see below):

  • Conceptual Understanding: Asking for explanations of core OS concepts, algorithms, or design trade-offs.
    • Example prompt: “Can you explain the difference between preemptive and non-preemptive scheduling with an analogy?”
    • Example prompt: “What is the purpose of a Translation Lookaside Buffer (TLB) in a virtual memory system?”
    • Example prompt: “Describe how an inode-based filesystem helps manage file data and metadata.”
  • Syntax and System Call Help: Getting help with the syntax for system calls or standard library functions.
    • Example prompt: “What are the arguments for the mmap() system call in C and what does each one do?”
    • Example prompt: “How do I check the return value of fork() to know if I am in the parent or child process?”
  • Debugging Assistance (with caution): Using the tool to help identify the logic behind a bug after you have made a significant effort to debug it yourself.
    • Example prompt: “My parent process isn’t waiting for its forked child to finish. What POSIX system call is typically used to solve this synchronization problem?”
    • Example prompt: “I am implementing a page table walk and keep getting segmentation faults. What are common logical errors when calculating the physical address from a virtual address and page table base register?”

Forbidden Uses (Integrity Violations)

The following uses are strictly prohibited and will be treated as academic dishonesty:

  • Generating Assignment Code: Submitting any code that was generated by an AI tool. You may not provide an assignment prompt to an LLM and ask it to write the solution.
    • Example of a forbidden prompt: “Write a C program that implements the Round Robin scheduling algorithm for a list of processes.”
    • Example of a forbidden prompt: “Give me the C code for a simple shell that handles pipes and I/O redirection using fork(), exec(), and dup2().”
    • Example of a forbidden prompt: “Write a function that simulates translating a virtual address to a physical address using a two-level page table.”
  • Writing Explanations or Reports: Generating prose for design documents, algorithm analyses, or README files. All written work must be your own.
  • Claiming AI-Generated Work as Your Own: Submitting any code, text, or ideas from an LLM without proper and explicit acknowledgement.

Mandatory Acknowledgement Requirement

If you use an AI tool in any of the permitted ways, you must include a specific acknowledgement at the top of your submission files.

Example Acknowledgement:

/*
 * Student: [Your Name]
 * Assignment: Project 2 - A Simple Shell
 *
 * AI Usage Acknowledgement:
 * I used ChatGPT 4.0 to help with this assignment in the following ways:
 * 1. I was confused about how a single call to `fork()` could have two
 * different return values. I asked the AI to explain this mechanism,
 * which helped me structure the if/else logic for my parent and child
 * processes correctly.
 * 2. I asked for a conceptual explanation of how file descriptor redirection
 * works at a high level before implementing it with `dup2()`.
 */

The Golden Rule: If you find yourself copying and pasting code from an AI into your assignment, you are almost certainly violating this policy. If you are unsure whether your use of an AI tool is acceptable, please ask me first before you proceed.


Academic Integrity Policy

This course is designed to challenge you and help you develop critical skills in understanding how Operating Systems work. The purpose of the lab and homework assignments isn’t just to get the answer, but for you to learn the underlying ideas and concepts in this course. Upholding academic honesty ensures that the work you submit is a true measure of your own understanding and effort.

This policy outlines the specific expectations for this class. It’s built on the principles of honesty, trust, fairness, and responsibility. We expect you to submit your own original work, properly credit the ideas of others, and understand the boundaries of acceptable collaboration. Please read the following guidelines carefully. Violating this policy can result in serious academic penalties, ranging from a zero on the assignment to failure of the course and referral to the university’s academic integrity office. If you’re ever unsure about what is permitted, or if you’re struggling with the material, please ask me for help.

Homework assignments must be the sole work of the student turning it in. If you need assistance on a homework assignment, feel free to ask me for help and please note the policy on the Use of AI and Large Language Models.

What is Cheating?

  • Sharing code or other electronic files: either by copying, retyping, looking at, or supplying a copy of a file from this or a previous semester. Also not allowed is verbal or other description of one person’s code to another. Be sure to store your work in protected directories, and log off when you leave classroom or lab computers, to prevent others from copying your work without your explicit assistance.
  • Sharing written assignments or exams: Looking at, copying, or supplying an assignment or exam.
  • Using other’s code. Using code from this or previous offerings of CMPU 334, from other courses at Vassar or other institutions, or from any other non-334 source (e.g., software or code found on the Internet).
  • Looking at other’s code. Although mentioned above, it bears repeating. Looking at other students’ code or allowing others to look at yours is cheating. This includes one person looking at code and describing it to another. There is no notion of looking “too much”, since no looking is allowed at all.

What is not Cheating?

  • Clarifying ambiguities or vague points in class handouts or textbooks.
  • Helping others use the computer systems, networks, compilers, debuggers, profilers, or other system facilities.
  • Using code from the textbook or from the class web pages is always OK.

Title IX

If you (or someone you know) have experienced sexual harassment or sexual violence, including sexual assault, relationship violence, or stalking, know that you are not alone. Vassar has staff trained to support you in navigating campus life, accessing health and counseling services, providing academic and housing accommodations, and more. Vassar strongly encourages all community members to take action, seek support, and report incidents to the EOAA/Title IX Office at (845) 437-7924 or titleix@vassar.edu. For more information about confidential support on- and off-campus, https://offices.vassar.edu/savp/resources/.

Please be aware that faculty members must disclose information about suspected or alleged sexual harassment or other potential sexual misconduct to the EOAA/Title IX Office. When the EOAA /Title IX Office receives information, they will reach out to offer information about resources, rights, and procedural options. Response to this outreach and further participation with the EOAA / Title IX Office is voluntary. Meeting with EOAA / Title IX does not mean you must file a formal complaint or report to another entity, including law enforcement. This meeting can be for information and support only or to file a complaint and receive support.


Academic accommodations

I take accommodations very seriously, and I try to design the course with the ideal of “universal access” in mind. I believe that a course design that benefits students with atypical learning profiles benefits every student.

Academic accommodations are available for students who are registered with the Office of Accessibility and Educational Opportunity (AEO). Students in need of disability (ADA/504) accommodations should schedule an appointment with me early in the semester to discuss any accommodations for this course, which have been approved by the Office of Accessibility and Educational Opportunity, as indicated in your AEO accommodation letter.


Religious Observances During Class Times

Students who wish to request academic accommodations for a religious observance should email me no later than the end of the add period for Full-Term and First Six-Week courses. While requests can be made at any time, accommodations may be more limited if submitted after this period. If you have questions or concerns about your request, please contact the Office of Religious and Spiritual Life and Contemplative Practices or the Office of the Dean of Studies. Please note that accommodations do not exempt you from completing any coursework missed as a result of a religious observance.