Course catalog description
This course provides the student with an understanding of the basic components of a general-purpose operating system. Topics include processes, process management, synchronization, input/output devices and their programming, interrupts, memory management, resource allocation, and an introduction to file systems. Students will be expected to design and implement a large piece of system software in the C programming language. Undergraduate credit may not be earned both for this course and for CS 502. Recommended background: CS 2303 or CS 2301, and CS 2011.
What, When, Where, and Who
- CS3013 C01: Operating Systems
- Tuesdays and Fridays from 9–10:50am
- AK 219
Instructor
Instructor: Prof. Robert Walls
- Office hours: Tuesdays 1:30--3:00pm.
- Office: Online only (subject to change)
- Zoom link in IA.
- Email: please come talk to me during office hours or send a private message on the IA forums.
Teaching Assistants
Teaching Assistant: Guin Gilman
- Office: Online
- Office Hours: Mondays 2:00--4:00pm. Wednesdays 2:00--4:00pm.
- Zoom link in IA Forum
- Email: please talk to the TA during office hours or send a private message on the IA forums.
Teaching Assistant: Akim Ndlovu
- Office: Online
- Office Hours: Thursdays 11:00--1:00pm.
- Zoom link in IA Forum
- Email: please talk to the TA during office hours or send a private message on the IA forums.
Textbooks
We will be using the following textbooks for the course:
- Required: Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau, Operating Systems: Three Easy Pieces (OSTEP), March, 2015. Available online for free at http://pages.cs.wisc.edu/~remzi/OSTEP/.
- Optional: Allen Downe, The Little Book of Semaphores. Available online for free at https://open.umn.edu/opentextbooks/BookDetail.aspx?bookId=83.
Communication policy
Given the quantities of email I receive everyday, I find it difficult to keep track of emails. Please consider coming to my office hours if you would like to speak to me.
On the occasions that I have to make announcements outside of normal class hours, I will use the course's InstructAssist forum, so students should to check the site regularly. By default, IA will also send email for forum announcements---this setting can be manually configured.
Delivery Method
This course will be delivered via in-person lectures. All assignments will be submitted online via InstructAssist. There are no in-class quizzes or exams. Lecture recordings may be found via echo360, but I cannot guarantee the quality, availability, or completeness of those recordings.
Grading
Students will earn points in the course by completing projects and video responses. The total number of earned points determines the student's final letter grade, with one constraint: the student must earn a minimum passing score on all projects to pass the course. See the project section below for more details.
The anticipated grade thresholds are as follows:
- A >= 550 points
- B >= 350 points
- C >= 225 points
The final thesholds will be norm-referenced, influenced strongly by the performance of students this term. There are no opportunities for extra credit in this course.
Students are responsible for monitoring their grades. Grades will be available through InstructAssist and you should check them regularly and review any provided feedback. If you encounter any issues with your grades, you will have one week past the first posting of a particular assignment’s grade to InstructAssist to contact the course staff so that we can investigate. We will not generally accept questions about an individual assignment’s grade beyond this one week, so you must be prompt.
Programming Projects
There will be multiple programming projects in the course to allow students to apply concepts. These projects may be done individually or in pairs unless otherwise indicated. Projects may have different point values and projects may have checkpoint deliverables in which students must show substantial progress towards completing the project. Each project also has a minimum point value which a student must achieve in order to pass the course.
The CS Department Documentation Format should be considered when programming. In general, code must be clean and organized. It must be appropriately commented as well. Students may be graded on their ability to accurately describe what a code segment does, so students are well-advised to aim for clarity in their programming.
In general, project submissions must include a README file and a Makefile for compilation. All programs must compile and execute on Ubuntu 20.04 LTS. The student is responsible for setting up a virtual machine as necessary. Programs that do not compile, or programs lacking commenting, risk being assigned a score of 0. All submitted projects will be checked against a library of previously submitted projects for the purposes of detecting instances of academic dishonesty.
For students working in pairs, each student must complete a partner evaluation indicating the contributions of each team member. Failure to complete an evaluation will result in a penalty. Students who are found to not have contributed their fair portion of the assigned deliverables may face grade deductions at the discretion of the teaching staff.
Minimum Point Values. Each project is assigned a minimum point value which roughly corresponds to a C-level of understanding. To pass the course, a student must obtain the minimum point value for all of the assigned projects.
Conceptually, students are expected to demonstrate at least a C-level of understanding of all core course concepts. As each project focuses on one of the core concepts in this course, the minimum point value is the mechanism used to enforce this expectation.
Project Resubmission. A student that fails to meet the minimum point value may resubmit their project for regrading, subject to the following constraints.
- The resubmission must occur within 1 week of the student receiving their grade for the project.
- Resubmissions may only be used to obtain the minimum passing grade. For example, if the minimum grade is 25 points, then a resubmission can receive at most 25 points.
- Students that receive higher than the minimum passing value cannot resubmit their project.
- Students can resubmit at most two projects.
In other words, resubmissions are designed to help a student pass the course, but they are unlikely to improve a student's final letter grade beyond that. In rare cases, I may decide to relax the above constraints.
Late Submissions. Programming projects may be submitted late, but with significant penalties. Programs that are late by a certain amount of time, denoted as t, will incur the following penalties:
- 0 minutes < t <= 1 day: 15% deduction from maximum grade before the rest of the grading begins
- 1 day < t: no credit will be awarded
Given the limited length of the academic term, I only grant project extensions in rare cases. If you need an extension for an assignment, contact me a reasonable amount of time before the assignment is due---generally, at least a full business day. If you are incapacitated for one or more days up to and including the due date, I will require written documentation explaining your inability to work on course material in order to consider granting a retroactive extension, at my discretion.
Video Responses
Students will periodically submit video responses to questions/prompts. These questions/prompts will cover material from the assigned reading and the previous lectures. Once a set of questions has been released, the students will have until the start of the next class to answer the questions. For example, if the set of questions is released during a Friday lecture, the student has until the Tuesday lecture to submit the video responses.
Each response may be no more than 60 seconds and should answer the question/prompt as thoroughly (yet concisely) as possible. Each response will be graded on technical accuracy, completeness, display of mastery of the material, and presentation effectiveness. After the submission deadline, the teaching staff will choose a subset of the questions/prompts and grade all student submissions for those questions/prompts. Other responses will not be graded. Students will not be informed in advance as to which prompts will be selected for grading and are thus expected to submit high-quality responses to all prompts/questions.
Videos must use the mp4 format.
Each student will be assigned a score from based on the overall quality of their video response.
-
9-10 points: The answers are detailed, well-spoken, and demonstrate the student's understanding of the material. Presentation is persuasive. Supporting material is referenced. Little if any extraneous material present.
-
6-8 points: The answers are correct and demonstrate the student's understanding of the topic. Presentation my overlook minor details. Points mostly clear. Some extraneous material present.
-
2-5 points: The answers are inadequate. Includes several mistakes suggesting a lack of understanding. The discussion is also lacking important details and polish. Significant extraneous material present.
-
0-1 points: The answers are lacking important details. Response contains several critical errors suggesting a poor grasp of course concepts.
Minimum Point Values. To pass the course, a student must obtain at least 40 points from video responses.
Late Submissions. Video responses must be submitted on time, no late submissions will be accepted.
While the video responses will be used for assessment, they also intended to serve as a learning opportunity since it requires students to contemplate and distill the material. Students must create their video responses on their own. They may consult research papers, the instructor's videos, and textbooks in preparing their materials. However, they must not consult other individuals, including other students in the class or via Internet forums, while completing the assignment. Students must determine how best to present the materials, including metaphors/analogies or visual aids, independently.
Academic Honesty
Students should read and be familiar with WPI's Academic Honesty Policy. Any suspected instance of academic dishonesty will be dealt with according to WPI policies, which dictate that I report such instances to the Dean of Students.
Do not provide your solutions to others, either directly or via some sort of public posting. This includes public code repositories such as those found on Github. This prohibition extends for the duration of the course. In other words, even if the project deadline has passed, you may not post your solution publicly at any point during the term. Doing so is a violation of the WPI's prohibition against facilitating academic dishonesty.
Likewise, students may not reference any previous versions of a course assignment or project, regardless of how it is posted. If a student discovers such a posting, they should report it to the instructor immediately, avoid the resource in the future, and delete any copies that are cached on their computer.
Cheating is usually the result of other problems in school. Please come see the course staff if you are unable to keep up with the work for any reason and we will work something out. We want to see you succeed and will do everything we can to help you out!
You may discuss material with others, but quiz answers and your code must be your own work. When in doubt, contact the instructor about whether a potential action would be considered plagiarism. When discussing problems with others, do not show any of your written or programmed solutions to others (except your partner). When asking others for help, it is best to avoid taking direct notes about the solution other than to jot down publicly available references. Use only verbal communication.
If you do discuss material with anyone besides the instructors, acknowledge your collaborators in each write-up. If you obtain a key insight with help (for example, through library work or a friend), acknowledge your source, briefly state the insight, and write up the solution on your own.
Never misrepresent someone’s work as your own. It must be absolutely clear what material is your original work. You MUST cite all your sources properly. You must remove any possibility of someone else’s work from being misconstrued as yours. Also note that the facilitation of plagiarism (giving your work to someone else) is academic dishonesty as well.
Plagiarism and other anti-intellectual behavior will be dealt with severely. If you engage in academic dishonesty, you will almost certainly fail the course. Investigating plagiarism is a pleasant experience for neither instructor nor student. Please help us by avoiding any questionable behavior.
Accommodation statement
WPI is committed to providing an equal educational opportunity for all students. If you have a documented physical, psychological, or learning disability on file with Disability Services (DS), you may be eligible for reasonable academic accommodations to help you succeed in this course.
Students with disabilities who need to utilize accommodations in this class are encouraged to contact the Office of Disability Services (ODS) as soon as possible to ensure that such accommodations are implemented in a timely fashion. This office can be contacted via email: DisabilityServices@wpi.edu, via phone: (508) 831-4908, or in person: 124 Daniels Hall. If you have approved accommodations, please request your accommodation letters online through the Office of Disability Services Student Portal.