Prerequisites: COMP 230 Computer Architecture
Course Web Page: http://www.cs.kzoo.edu/cs430/
This course provides an introduction to operating system and networking concepts. In particular, the course covers processes and threads, process synchronization, deadlocks, CPU scheduling, memory management, file systems, security, and network structures and protocols.
A tentative course schedule can be found on the course web page.
Required Text: Silberschatz, Galvin, and Gagne. Operating System Concepts, Ninth edition, Wiley, 2013.
Regular attendance and participation is expected of all students. Active participation in this class means coming to class on time, completing assigned reading and exercises, listening to others, contributing ideas of your own, and asking questions as they come up.
Collaboration and the Honor System:
This course operates in accordance with the principles of the Kalamazoo College Honor Code. Unauthorized collaboration and receiving help from others outside the bounds permitted by the instructor are also violations of the college honor code. You are responsible for working within the permitted bounds, and acknowledging any help from others or contributions from other sources. Failure to do so will result in consequences that may include failure of an assignment, failure of the course, or referral to the Dean of Students.Assignments and Grading:
Grading will be based on programming projects, homework assignments, one in-class presentation, and two exams. All assignments are due by midnight on the due date. Late assignments will lose points unless you have cleared it with me in advance.
Programming projects and presentations may be done in pairs. I reserve the right to limit the number of times you may work with the same partner.
Programming Projects: There will be 3-5 programming projects assigned. These projects will be user level programs that explore operating system concepts and algorithms. The projects will be graded on the basis of functionality, style, and documentation. You have should follow the guidelines presented in the CS Program Style Guide and Documentation Standards. As a rule, I am as interested in seeing a program run as trying to figure out if it works by reading the code. Therefore, you will be expected to demo your projects for me. (This is in addition to looking at the actual code.)
You may discuss the requirements and strategies of a programming assignment with others in the class, but you should not look at code belonging to anyone else if you are working on the same, or a similar, problem. If you have code-specific questions beyond simple syntactic help you should address them to computer science faculty members only. You should acknowledge any help you receive in your program documentation.
Presentations: Each student will be required to do one substantial presentation on some operating system concept. You will be required to select appropriate readings, give a 30-45 minute presentation, and develop 2-3 homework questions based on materials presented. You must also provide (correct) solutions to the homework questions provided. You should acknowledge and cite your sources in your presentation.
Homework: There will be 5-7 homework assignments. You are welcome to discuss the assignments with your classmates at a conceptual level, but all answers should be written in your own words based on your own understanding of the material. Organizing and writing up the solutions on your own ensures that you really understand the material. Submitting someone else's work does not help you learn and constitutes academic dishonesty. As always, if you work with a classmate on an assignment, you must acknowledge that fact on your submission.
Exams: There will be two exams. Questions on the exams may be derived from lectures, readings, homework assignments, or student presentations. Obviously, your answers to exam questions should be entirely your own work and not the result of collaboration with others. If the use of outside sources (such as the textbook) is permitted, be careful to cite ideas and material from those sources, whether derived, summarized, quoted or paraphrased.
The final grade will be weighted as follows:
Exams 25% Homework Assignments 25% Programming Projects 30% Presentation 10% Attendance and Participation 10%