Logistics
- Class: CS 537 - Introduction to Operating Systems, Spring 2024
- Instructors: Tej Chajed, Louis Oliphant
- Office: 7361 CS, 7358 CS
Tej Chajed Office Hours:
- MW 10-11
Louis Oliphant Office Hours:
- MWF 11-12
- Lecture Sections:
- Section 1: Tue, Thu 1:00 - 2:15 @ 5206 Social Sciences
- Section 2: Tue, Thu 9:30 - 10:45 @ 180 Science Hall
- Discussion Sections:
- Discussion 311: Wed, 8:50-9:40 @ 1263 CS
- Discussion 312: Wed, 9:55-10:45 @ 3355 Engineering Hall
- Discussion 313: Wed, 11:00-11:50 @ 2540 Engineering Hall
- Discussion 314: Wed, 12:05-12:55 @ 1263 CS
- Discussion 315: Wed, 1:20-2:10 @ 3024 Engineering Hall
- Discussion 316: Wed, 2:25-3:15 @ 3355 Engineering Hall
- Discussion 321: Wed, 8:50-9:40 @ 1257 CS
- Discussion 322: Wed, 9:55-10:45 @ 2239 Engineering Hall
- Discussion 323: Wed, 11:00-11:50 @ 2309 Engineering Hall
- Discussion 324: Wed, 12:05-12:55 @ 1213 Engineering Hall
- Discussion 325: Wed, 1:20-2:10 @ 1263 CS
- Discussion 326: Wed, 2:25-3:15 @ 2309 Engineering Hall
- Labs:
- There are no lab sessions for this course. Programming projects are a very important part of this course and the projects should be done on departmental PCs running the Linux operating system. We will cover some aspects of Unix/Linux in class and discussion.
- Questions: We will be using Piazza for outside-class Q&A and for all announcements. Please make sure you read Piazza often especially around project deadlines. The system is highly catered to getting you help fast and efficiently from classmates, TAs and myself. Rather than emailing questions to the teaching staff, I encourage you to post your questions on Piazza.
Textbook
We will be using the free OS textbook Operating Systems: Three Easy Pieces. You can also buy a printed copy if you like from the same website.
For the programming projects, there are three textbooks that are recommended but not required
Prerequisites
This course assumes familiarity with basic computer organization (e.g., processors, memory, and I/O devices as covered in CS354) and data structures (e.g., stacks and hash tables as covered in CS367). You will need to be able to program in C (not C++, not Java, not Python, not Javascript, not Ruby, etc.) to perform the assignments in the course. We will spend some time covering background, but learning C on your own is important and valuable.
Grading Components
- Quizzes (5%):We will have in-class quizzes covering the content of the lectures. I will drop your lowest 5 quizzes.
- Projects (50%): You will have seven coding projects over the course of the semester. Projects are back-to-back so start early. You may turn in projects up to 3 days late but you will lose 10 percentage points per day. You will also have 2 slip days for projects 1 - 3 (individual projects) and 3 slip days for projects 4 - 7 (group projects). These are for emergencies. Do not squander them and discover when you do have an emergency that you have no slip days left.
- Code Review (5%): For project 3 you will have an in-person code review where a TA will look over your code, have a discussion with you, and give you feedback to improve your coding skills.
- Exams (40%): Three exams, all in-person
- Exam 1 - 2/23/24 5:45-7:15pm (15%)
- Exam 2 - 3/20/24 5:45-7:15pm (10%)
- Exam 3 - (based on section) (Lec 001 -- 5/8/24 12:25-2:25 )(Lec 002 -- 5/6/24 2:45-4:45)(15%)
- If you are unable to take the exam at the designated date and time, please fill out this form to request to take the exam during the alternately scheduled date and time.
- OPTIONAL:Homeworks from the textbook (ungraded)