Course Organization
|
Course Overview
This course provides an introduction to the theory and application of operating systems. Students will develop the skills necessary to use and develop modern operating systems. The course will examine the fundamental topics of operating systems, focusing on the key systems concepts and the major systems mechanisms. In addition, this course will focus on the trade-offs inherent to such mechanisms. Course projects will focus on the application of operating systems concepts in practical systems.
A detailed list of a lecture by lecture contents, assignments, and due dates (subject to change as semester evolves) is available on the course schedule.
Grading
The course will be graded on exams, course projects, quizzes, homeworks, and class participation in the following proportions:
40% | Course Programming Projects |
20% | Midterm Exam |
25% | Final Exam |
15% | Quizzes and Homeworks |
NOTE: To pass the course, at least 50% credit is expected on both the course programming projects and the exams.
Projects
Three programming projects will be assigned in this class. You will be expected to program in the C programming language, often building on existing code that you will need to understand -- just like a real OS programmer. For ease of management, you will program at the application level (not in a real OS), but you will write operating system-style code with operating system concepts.
Note that the programming assignment compromise over 1/3 of the class grade, so it is incumbent on you to complete these assignments, effectively. The content and due dates of these assignments will be decided over the course of the semester. If you cannot attend a lecture, contact the TA and/or other students to see if any assignments have been made.
Lateness Policy
Project milestones are assessed a 20% per-day late penalty, up to a maximum of 4 days. Unless the problem is apocalyptic, don't give me excuses. Students with legitimate reasons who contact the professor before the deadline may apply for an extension.
Exams
There will be one midterm and a final exam. Both will be closed-book exams to be held outside normal course meetings on pre-designated times during the semester. The exams may include any topic previously covered in lectures or assigned readings. While all topics are fair game for the final exam, it will emphasize material covered since the midterm. Students who have conflicts with the exam schedule should see the course instructor immediately.
A hint: exam questions will often require students to think beyond or delve deeper into the particulars of the lectures. Hence, students who have read and understand all assigned material and taken notes in lectures to supplement their understanding of the slides will have a much better chance a doing well on the exams. Students who rely exclusively on reviewing slides will almost certainly do poorly. In short, the exams will not ask students to regurgitate facts, but to reason about the field. This requires a deep understanding of the material that cannot be acquired from slides alone.
Quizzes and Homeworks
There will be 10-minute quizzes at the beginning of class 4 times during the semester. You will be able to drop the lowest quiz grade, so there will be no makeups. The quizzes will be delivered via scantron.
I will post 4 homework problem sets related to the lectures for you to gain some practice for the quizzes and exams. You will need to submit the homeworks for grading.
Lateness Policy
All milestones are assesed a 20% per-day late penalty, up to a maximum of 4 days. Unless the problem is apocalyptic, don't give me excuses. Students with legitmate reasons who contact the professor before the deadline may apply for an extension.
Required Texts
Most of the course readings will come from the following required textbook:
- Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau, Operating Systems: Three Easy Pieces, 2015.
- Trent Jaeger, Operating System Security, 1st edition, Morgan and Claypool, 2008.
Course Outline
A rough outline of the class is as follows:
|
Academic Integrity Policy
Students are required to follow the university guidelines on academic conduct at all times. Students failing to meet these standards will automatically receive a 'F' grade for the course. The instructor carefully monitors for instances of offenses such as plagiarism and illegal collaboration, so it is very important that students use their best possible judgement in meeting this policy. The instructor will not entertain any discussion on the discovery of an offense, and will assign the 'F' grade and refer the student to the appropriate University bodies for possible further action.
The University defines academic integrity as the pursuit of scholarly activity in an open, honest and responsible manner. All students should act with personal integrity, respect other students' dignity, rights and property, and help create and maintain an environment in which all can succeed through the fruits of their efforts (refer to Senate Policy 49-20). Dishonesty of any kind will not be tolerated in this course. Dishonesty includes, but is not limited to, cheating, plagiarizing, fabricating information or citations, facilitating acts of academic dishonesty by others, having unauthorized possession of examinations, submitting work of another person or work previously used without informing the instructor, or tampering with the academic work of other students. Students who are found to be dishonest will receive academic sanctions and will be reported to the University's Office of Student Conduct for possible further disciplinary sanctions (refer to Senate Policy G-9).
Note that students are explicitly forbidden to copy anything off the Internet (e.g., source code, text) for the purposes of completing an assignment or the final project. Also, students are forbidden from discussing or collaborating on any assignment except were explicitly allowed in writing by the instructor.
