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.
|
|