OPERATING SYSTEMS ICOMS W4118, Dept of Computer Science, Columbia University
Home | Announcements | Lectures | Homeworks | Grades | Discussion | Resources

GENERAL INFORMATION - http://www.cs.columbia.edu/~nieh/teaching/w4118
Meeting Times and Location: Fall 2000, MW2:40-3:55PM, 535 Mudd (overflow in 545 Mudd)
Prerequisites: COMS W3156 Introduction to Software Engineering, COMS W3824 Computer Organization, COMS W3101 Programming in C (or working knowledge of C), knowledge of basic UNIX programming

Description: Design and implementation of operating systems. Topics include process synchronization and interprocess communication, memory management, virtual memory, interrupt handling, processor scheduling, device management, I/O, and file systems. Linux kernel programming is required. The course has received some press recently for innovation in being the first to employ virtual machine technology to provide students with hands-on experience in kernel-level development. See VMware Press Release, Inter@ctive Week, and Dr. Dobb's Journal.

INSTRUCTIONAL STAFF
Instructor: Prof. Jason Nieh, nieh@cs.columbia.edu, 939-7160, office hours: MW4:00-5:00PM CSC 518
Head TA: Nate Kidwell, nek8@cs.columbia.edu, office hours: T1:00-3:00PM TA Rm
TA: James Lee, jl1341@columbia.edu, office hours: R4:00-6:00PM TA Rm
TA: Sankaran Narayanan, sankaran@cs.columbia.edu, office hours: F3:00-5:00PM TA Rm
TA: Kumar Saurabh, saurabh@cs.columbia.edu, 939-7019, office hours: M12:00-2:00PM CSC 462
TA: Sara Schumacher, sjs87@columbia.edu, office hours: W12:30-2:30PM TA Rm
TA: Nikhil Tiwari, nst8@columbia.edu, office hours: Su4:00-6:00PM TA Rm
CVN TA: Kumar Saurabh, saurabh@cs.columbia.edu
COURSE MATERIALS
Required Text: Applied Operating System Concepts, Avi Silberschatz, Peter Galvin, Greg Gagne, John Wiley and Sons, New York, NY, 2000 (available at Labyrinth Books, 112th and Broadway). See also Errata.
Optional Linux Reference: Linux Kernel Internals, 2nd edition, Michael Beck, Harald Bohme, Mirko Dziadzka, Ulrich Kunitz, Robert Magnus, Dirk Verworner, Addison Wesley, Reading, MA, 1997.
Computing Requirements: $50 CS account fee required, which will provide on-campus access to x86 PC running Redhat Linux 6.x, GNU C development environment, and VMware Virtual Platform 2.x for Linux. CVN students should have at least telnet access to these facilities.
COURSE GRADE
50%: Homework Assignments: There will be six homework assignments. The first assignment will be an individual assignment. Each of the other assignments will consist of an individual non-programming part and a group programming project. The programming project will involve kernel-level programming in the Linux operating system.
20%: Midterm: The midterm is one class period, closed book, calculator permitted. The midterm will cover all material discussed in the course up to the week before the exam.
30%: Final: The final exam is scheduled at the normal final exam time for this class period. The final is closed book, calculator permitted. The final is cumulative and will cover all material discussed in the course.
0%: No "extra credit" work

HOMEWORK POLICY
All work is due in class at the beginning of class on the date specified; there are no extensions. Homeworks submitted after the beginning of the class when they are due are considered late. Late homeworks will not be accepted unless there is a valid medical or family condition with appropriate documentation submitted to the instructor. However, three grace days are provided for your benefit, for those times during the semester where you need a little more time. Weekends and university holidays are not counted.

For example, if a homework is due on Monday 2:40PM and you have not used any of your grace days, you can hand in the homework any time up to Thursday 2:40PM. If you do hand it in on Thursday, however, you will not be able to submit any other homeworks late. Alternatively, you can submit three homeworks each one day late. It is also OK not to use any of your grace days, but after those three days are used up we will no longer accept late homeworks. Note that grace days apply in whole: if you hand in a homework due on Monday at 9PM, this means you have used up one grace day; there is no such thing as "half a grace day".

How you use your grace days is up to you. However, we strongly suggest you save these grace days for the end of the semester when the homeworks might get more challenging and lengthy. To submit late homework contact a TA by phone or email in advance to make arrangements.

Homework assignments will have an individual assignment and a group programming assignment. The individual assignments are to be done and turned in by each student, individually. The group assignments are to be done by your assigned groups and turned in by your group, collectively. All students, including CVN students, will be assigned to a group for completing the group programming assignments The due date for the group programming assignments is the same for both on-campus and CVN students. The due date for the individual assignment is as marked for on-campus students, one day later for domestic CVN students, and one week later for international CVN students.

Your group programming submission must include a description of how each group member contributed to the programming assignment. In addition, each student should include a group grade sheet with his/her individual assignment submission which will enable group members to grade one another. Each student's group grade sheet should include the name of each group member and a score of 1 to 5 assigned by the student to each group member as follows: 1 for no work, 2 for below average work, 3 for average work, 4 for good work, and 5 for exceptional work. This information will be used in assigning final grades. In addition, students who do not contribute to their group assignments will be reassigned together.

If you disagree with any grade, submit your grievance in writing to the grader responsible, documenting the merits of your case. The grader will respond likewise in writing. If you are still dissatisfied you may appeal in like manner to the instructor, who will only examine the written record of the dispute, and will respond in writing. "Writing" does not include email. For a grade dispute to be considered, the written grievance must be submitted in writing within two weeks of when the respective assignment or exam is returned.

PROGRAMMING POLICY
For your convenience, all programming can be developed on any machine that can run Linux and VMware. However, only those programs which compile using the gcc compiler on the CLIC machines will be graded. In addition, a physical copy of the program listing and its execution on test data must be produced and turned in, together with a physical copy of answers to the theory questions, so that both these sections of each homework can receive TA grades, feedback, and comments.

It is critically important that all submitted program listings and executions be thoroughly documented. Further, all documentation must be internal; annotations made to hard copy listings will be ignored. Good programming style will account for a substantial portion of the grade assigned to the programming part of the assignments.

All programs must compile; programs that do not compile will receive a grade of zero. Usually the homework assignments will only state the major objectives of the program to be written; it will be often up to you to make design decisions about things like I/O, efficiency, error handling, and so on. Make sure you provide adequate test cases to indicate the correctness and robustness of your approaches. In general, the failure of a grader to understand your work or to appreciate the thoroughness of its testing will be considered to be your error.

COLLABORATION POLICY
Collaborating with other students in your programming group is encouraged for the group programming component of the homework assignments. However, you are required to do all other parts of the homework assignment by yourself; collaborating with other students or copying their work will not be tolerated. Anyone found copying or using another persons work will be dealt with under the College procedures for cheating. See the policy and procedures on cheating for details.

OPEN DOOR POLICY
We would like the course to run smoothly and enjoyably. Feel free to let us know what you find just, good, and interesting about the course. Let us know sooner about the reverse. See us, leave us a note, or send us email.


Jason Nieh, nieh@cs.columbia.edu