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.