| Operating Systems - CS 3013 |
|
The current Web page is from the previous offering of this course. It is currently in the process of being updated. Once these updates are complete, this disclaimer will be removed. Until then, please do not rely on any of the following information.
CS 3013: Operating Systems
Section: A02 - Shue
Class Dates: A Term 2026, Tuesdays and Fridays
Meeting Time and Place: 12:00pm to 1:50pm in Unity Hall 520
Course Instructor (Section A02): Craig A. Shue, Ph.D.
Email: please post via the class discussion board
Office: Zoom
Office Hours: TBD
We will be using the following textbooks for the course:
| Class | Date | Required Reading | Description |
|---|---|---|---|
| 1 | Friday, Aug. 21, 2026 | Course Syllabus, OSTEP Chapter 2 | Class: Course Introduction |
| 2 | Tuesday, Aug. 25, 2026 | OSTEP Chapters 4 and 5 | Class: System calls and Processes |
| Tuesday, Aug. 25, 2026 | Due: Project 0 | ||
| 3 | Friday, Aug. 28, 2026 | OSTEP Chapters 26 and 27 | Class: System Calls, Introduction to Concurrency |
| Friday, Aug. 28, 2026 | Due: Project 1 - Checkpoint | ||
| 4 | Tuesday, Sep. 1, 2026 | OSTEP Chapter 28 | Class: Intro. to Concurrency, Processes |
| 5 | Friday, Sep. 4, 2026 | OSTEP Chapters 29 and 30 | Class: Synchronization, Concurrent Applications |
| Friday, Sep. 4, 2026 | Due: Project 1 - Final | ||
| 6 | Tuesday, Sep. 8, 2026 | OSTEP Chapters 31 and 32 | Class: Concurrent Applications |
| 7 | Friday, Sep. 11, 2026 | OSTEP Chapters 7, 13 and 14 | Class: Scheduling, Memory Management |
| Friday, Sep. 11, 2026 | Due: Project 2 - Checkpoint | ||
| 8 | Tuesday, Sep. 15, 2026 | OSTEP Chapters 15, 16, and 17 | Class: Memory Management |
| Tuesday, Sep. 15, 2026 | Due: Project 2 - Final | ||
| 9 | Friday, Sep. 18, 2026 | OSTEP Chapters 18, 19, and 20 | Class: Caching Principles and Paging |
| 10 | Tuesday, Sep. 22, 2026 | OSTEP Chapters 21 and 22 | Class: Caching and Paging Performance, Virtual Memory |
| Tuesday, Sep. 22, 2026 | Due: Project 3 - Checkpoint | ||
| Saturday, Sep. 26, 2026 | Due: Project 3 - Final | ||
| 11 | Tuesday, Sep. 29, 2026 | OSTEP Chapters 36 and 37 | Class: Input and Output |
| 12 | Friday, Oct. 2, 2026 | OSTEP Chapter 39 | Class: Input and Output, File Systems |
| Friday, Oct. 2, 2026 | Due: Project 4 - Checkpoint | ||
| 13 | Tuesday, Oct. 6, 2026 | OSTEP Chapters 53 and 54 | Class: System Security and Protection |
| Tuesday, Oct. 6, 2026 | Due: Project 4 - Final | ||
| 14 | Friday, Oct. 9, 2026 | Class: Special Topics |
If circumstances require a change to the schedule, we will announce it as soon as possible. All projects are due at 11:59pm on the due dates indicated.
The reading listed for a class is what will be discussed in class that day, so students should do the reading in advance to be prepared. However, except for the last day of class, quizzes will cover the reading in the class AFTER it has been discussed (e.g., at the beginning of the following class). As an example, Quiz 1 on August 25, 2026 would include textbook material from OSTEP Chapter 2. The material from OSTEP Chapters 4 and 5 would be included in Quiz 2 on August 28, 2026. This is to help reinforce material through reading and discussion prior to assessment.
This section provides background on how the course will run and the reasoning behind the class design decisions. If you have any questions, please discuss them with the professor as soon as possible.
Students will learn the fundamental theory and practice for operating systems and how programs interact with the operating system. We will cover abstraction, virtualization, processes, threads, concurrency, synchronization, memory management, caching, and scheduling. These are concepts that are essential for large-scale applications, even outside of operating systems (especially for those working on embedded devices). The class provides foundation for the networking and distributed systems classes.
Advances in coding assistant tools with generative AI and large language models (LLMs) have helped to simplify the writing of software. Employers of WPI students have indicated they want to recruit people who know how to use these tools effectively while understanding the theory and practice associated with any created software. Accordingly, this class both encourages the use of generative AI coding assistant tools and provide instruction on how to do so. In the Using Generative AI for Learning tutorial, we describe the process for ensuring a Computer Science student becomes familiar with using the tools in ways that accelerate their learning while ensuring they still learn the fundamentals.
A key part of using these generative AI tools responsibly is an assessment step that focuses on what the student has learned rather than what the tool can produce. Accordingly, the course will assess student knowledge of the theory and practice of programming for operating systems where students do not have access to generative AI tools (e.g., in class quizzes).
The course programming assignments and quizzes form the basis for 95% of the course grade. The remaining 5% of the course grade will be attributed to class participation and professionalism associated with the course. Details on each of these components are as follows:
The university-wide Canvas system does not align well with the instructor's course design. Instead, we will be using InstructAssist, a custom-built course management tool created by the instructor. This system will be used for posting grades, submitting projects, obtaining slides, and posting partner evaluations. It is available at https://ia.wpi.edu/cs3013-shue/.
Class discussion, class hand-outs, InstructAssist, posts on the class forum, emails to the student's WPI email account, and the course Web pages are avenues for official course communication. Students are responsible for any information distributed through any of these venues. Since students may miss important information when absent, they are responsible for ensuring they get caught up via Lecture Capture or class notes from peers.
Students must check their WPI email daily. The instructor and TAs will use email to send urgent information to the class. Classmates collaborating on teams may also use email to coordinate efforts, so checking email periodically will be essential for timely responses.
Students should post all questions about the course on the class discussion board. The teaching staff will use the discussion board to keep track of assistance requests. Further, posts on the discussion board will be available to all students by default, allowing everyone to learn from these questions.
By default, all students will be subscribed to receive email copies of the classwide announcements sent by the teaching staff. Students may unsubscribe from non-urgent postings by adjusting their profile settings. Students are responsible for all announcements, even if they elect not to receive email copies.
If a question is of a more personal or private nature, students can choose to create a new discussion topic and select the "Visible by Invitation Only" topic privacy option. Any communication in that topic will be visible only to the Instructor, the TAs, the student creating the topic, and any individuals the student explicitly invites to the topic. This approach will allow students to have a private discussion with the staff while still allowing the staff to keep track of unresolved issues and address them in a timely fashion.
Students with a strong computer science background develop the ability to quickly pick up a new programming language as needed. This provides them the flexibility to adapt to changing work requirements and the ability to recognize the most efficient tool for the job. Students pick up these abilities through exposure to different programming languages, especially those that serve as the model for future languages.
In this course, we will be using the C programming language. This language is the basis of many common operating systems and network programs, with operating system APIs designed with these languages in mind. Students without experience in C will have to develop such a background while concurrently developing course projects. This is extremely challenging and prior courses have shown that students without a background in C programming generally do not perform well in CS 3013.
The C Programming Language, by Kernighan and Ritchie, (ISBN: 0-13-110362-8) is the de facto standard guide to programming in C and provides a good reference in addition to the textbooks.
During lectures, students are to be focused on the course. Students should not use materials or electronic devices that would inhibit their attention to the course lecture and discussion. Laptops may only be used for note-taking purposes; transmission capabilities on these devices must be disabled and only appropriate note-taking application may be used in class. Mobile devices, such as phones or PDAs, are not to be used in class. Significant penalties may be assessed for repeated infractions.
Students must treat each other and the teaching staff with respect at all times. Disagreement, debates, and criticism of ideas are healthy aspects of academic environments; however, students should avoid demeaning language or comments which can be taken personally. The ability to handle conflict professionally and work with a variety of people is an acquired skill, yet is increasingly important in technical careers.
Students will not receive credit for Project 0 if they submit it late.
All other 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 | 10% deduction from maximum grade before the rest of the grading begins |
| 1 day < t ≤ 3 days | 30% deduction from maximum grade before the rest of the grading begins |
| 3 days < t ≤ 5 days | 50% deduction from maximum grade before the rest of the grading begins |
| 5 days < t | no credit will be awarded |
Any projects submitted after 4pm on Thursday, Oct. 8, 2026 will not be graded.
The teaching staff wants our students to succeed and we expect our students to reach out for help whenever they need it. In this course, it is an expectation that students will use office hours periodically in the class. That is normal; it is not a sign of non-success. We incentivize students attend office hours by having them record their visits in InstructAssist to receive participation credit. In some cases, students may come to office hours with a specific goal (e.g., to ask questions about readings, the projects) and other times it may be to participate in informal discussion about course topics (e.g., high level goals in an assignment or chapter). Each of these are considered good outcomes and a good use of student and teaching staff time.
The use of Zoom makes it easier for students to attend office hours in a passive mode or just to have staff available while working on projects. This style of interaction is encouraged. The teaching staff will likely periodically check in with each student to ensure nobody is awaiting the staff's assistance. However, we do not mind students "hanging out" during those sessions.
The teaching staff may employ "break out rooms" during office hours so that students (and their project partners) may share screen with the staff to get help. Students should only share their screens when in such a break out room. If the Zoom session is running, but the teaching staff is not visible, they may be in a break out room. Please wait for them to return.
The instructor may use the main room of the Zoom session to share his own screen to illustrate concepts for the group. He will often survey the gathered students to learn what topics multiple people want to hear about. When he is doing that, feel free to ask questions even if another student was the one that spurred a particular discussion.
Computer Science would not be what it is without contributions by a broad range of people. Ada Lovelace's work in the 1800s made her recognized as the world's first programmer. As popularized in the "Hidden Figures" film, Mary Jackson's work with the West Area Computing section at NASA was instrumental to the US space program. Alan Turning, recognized as the father of Computer Science and Artificial Intelligence, was an openly gay man in the 1950s (and was unfortunately prosecuted for it).
While we have all benefited from a wide range of contributors, society's work to support and respect everyone is incomplete. We must continue to recognize there is a role for us all in computing. In this class, we will treat each other with respect and we will recognize we all belong, regardless of identity or background. The teaching staff will support all our students.
We want to maximize the learning and benefit our students gain from this course. This can lead to fast-paced, highly technical material and that can be overwhelming. The goal for all should be to gain the most they can while still remaining healthy and well. We understand that there is inherent balance. Please talk with the course instructor about any challenges and we will plan a path forward together. In many cases, a little flexibility can help. In others, it might take a couple attempts at the course to really master the material. We can figure that out together.
Students with approved academic accommodations should plan to submit their accommodation letters through the Office of Accessibility Services Student Portal. Should you have any questions about how accommodations can be implemented in this particular course, please contact me as soon as possible. Students who are not currently registered with the Office of Accessibility Services (OAS) but who would like to find out more information about requesting accommodations, documentation guidelines, and what the accommodated interactive process entails should plan to contact OAS either by email AccessibilityServices@wpi.edu, by phone (508) 831-4908, or by stopping by the office on the 5th floor of Unity Hall.
For a WPI degree to have value, students must earn the credential by demonstrating completion of course learning outcomes on their own merits. Therefore, it is essential that we ensure academic integrity in this course.
The WPI Academic Integrity Policy describes types of academic dishonesty and requirements in documentation. In the case of academic dishonesty, I am required to report the incident to the Dean of Student Affairs. Further, my penalty for academic dishonesty is to assign a NR grade for the course.
Any materials submitted for grading must solely be created by the student themselves. The assessment in the class is to determine a student's capabilities, not the capabilities of others. In accordance with this, students may not look at any previous versions of a course assignment, quizzes, or projects, regardless of its distribution mechanism. If a student accidentally discovers they have obtained unauthorized materials, they must report it to the instructor immediately, avoid the resource in the future, and delete any copies that are cached on their computer. Likewise, on quizzes, students may not submit work that has been generated by automated programming, text generation tools, or writing tools (such as Grammarly, Copilot or ChatGPT).
Students are likewise forbidden from facilitating other students, current or future, in plagiarism or cheating. Students may not distribute their code publicly on the Internet, or in other means, during the term or even after the class has concluded. Students may share their code with potential employers or other individuals privately, so long as the code would not become available to other WPI students.
Academic integrity can be detail-oriented. The following table summarizes and augments the above policy. If a student has any doubt about whether something is allowed, they must ask the teaching staff in advance.
| Question | Quizzes | Projects |
|---|---|---|
| Must be done 100% alone? | Yes | Yes |
| May consult textbook or instructor-provided materials? | No | Yes |
| Must cite any referenced materials? | May not consult during quiz | Yes |
| May use ChatGPT, Co-Pilot, or other automated programming tools? | No | Yes |
| Submission may include source code written by anyone other than self? | No | No |
| Must be able to explain all submitted work? | Yes | Yes |
| May consult prior years' materials? | No | No |
| May discuss assignment concepts at a high level with classmates? (When in doubt about whether something is "high level", seek advance approval from teaching staff.) | Only after all quizzes are turned in | Yes |
| May discuss assignment in detail with classmates? | Only after all quizzes are turned in | No |
| May make instructor's materials (e.g., project specs, quiz questions) public or available to future years' students? | No | No |
| May make your own created materials (e.g., solutions) public or available to future years' students? | No | No |
| May privately share instructor's materials (e.g., project specs, quiz questions) with specific non-students (e.g., prospective employers)? | Yes | Yes |
| May privately share your own created materials (e.g., solutions) with specific non-students (e.g., prospective employers)? | Yes | Yes |