COMP 430 Operating Systems and Networking
Kalamazoo College Computer Science Program Spring 2008


Instructor:   Nathan Sprague nsprague{at}kzoo{dot}edu
Olds-Upton 203E, 337-7096

Office Hours:   My weekly schedule is available on-line.

Prerequisites:  COMP 230 Computer Architecture

Course Web Page:  http://www.cs.kzoo.edu/cs430/


Required Text:  Silberschatz, Galvin, and Gagne. Operating System Concepts, seventh edition, Wiley, 2005.

Recommended Text:  Love. Linux Kernel Development, second edition, Novell Press, 2005.


Course Overview:
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. The course will provide opportunities to explore the Linux operating system in order to gain a more concrete understanding of operating system concepts.

A tentative course schedule can be found on the course web page.


Attendance and Participation:
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, two non-cumulative midterm exams, and a final project. All assignments are due at 5:00 PM on the due date. In recognition of the fact that life is full of unexpected hurdles, you are entitled to two "late days" which can be used on any project or homework assignment with the exception of the final project and the in-class presentation. The use of a late day allows you to submit an assignment by 5:00PM on the day following the original deadline, or 5:00PM the following Monday if the deadline was on a Friday. Once your late days are exhausted, late assignments will not be accepted.

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 programming projects in the C programming language. These projects will not require writing operating system code. Rather, they will be user level programs that explore operating system concepts. The projects will be graded on the basis of functionality, style, and documentation. You have a choice of following the guidelines presented in the CS Program Style Guide and Documentation Standards, or the Linux kernel coding style guidelines.
Final Programming Project: The final project for the course will require making a substantive modification to the Linux kernel, testing the result, and handing in a fully documented patch.
Presentations: The goal of this class is to learn general operating system concepts, and to examine how those concepts are realized in one particular operating system: Linux. Our examination of Linux will take the form of a collaborative seminar. To that end, every student will give a presentation on one component of the Linux kernel. Students will be required to select appropriate readings, make a minor modification to the kernel, give a 45 minute presentation, and develop appropriate exam questions based on the material presented.
Homework: There will be approximately five 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. If you do work with a classmate on an assignment, you must acknowledge that fact on your submission.
Midterms: There will be two non-cumulative 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:

Examinations 25%
Homework Assignments 20%
Programming Projects 25%
Final Project 15%
Linux Presentation 15%


Any student with a disability who needs an accommodation or other assistance in this course should make an appointment to speak with me as soon as possible.



This page is maintained by Nathan Sprague nsprague{at}kzoo{dot}edu. It was last modified on  March 28, 2008 4:24 PM.