GENERAL INFORMATION - http://www.cs.columbia.edu/~nieh/teaching/w4118 | |||||||||
Meeting Times and Location:
Fall 2024 TR 4:10-5:25pm NWC 501
Prerequisites: COMS W3134 Data Structures and Algorithms, COMS W3157 Advanced Programming (or good working knowledge of C), and CSEE W3827 Fundamentals of Computer Systems Description: Design and implementation of operating systems. Topics include process synchronization and interprocess communication, processor scheduling, memory management, virtual memory, interrupt handling, device management, I/O, and file systems. Hands-on study of Linux operating system design and kernel internals. Experience with commercial virtualization tools and open source software. The course was the first to introduce virtualization as a tool for teaching computer science, specifically operating systems. For more information, see Dr. Dobb's Journal.
| |||||||||
INSTRUCTIONAL STAFF | |||||||||
| |||||||||
COURSE MATERIALS | |||||||||
| |||||||||
COURSE GRADE | |||||||||
| |||||||||
All students in all sections MUST take the exams at the scheduled times.
There are no make-up or alternate exams. If you cannot make any of those
exams, please take the course another time.
|
|||||||||
HOMEWORK POLICY | |||||||||
All work is due by the date and time specified in the respective
assignment;
there are no extensions. It is much better to submit partially
complete homework on time and get partial credit for your work than to
submit late homework for no credit. Homeworks submitted after the
respective deadlines 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.
Submissions should be made electronically using
Git, a distributed version control
system, on GitHub.
You should use Git for version control of all your code for this
class, and we will monitor code check ins to see how your work is
progressing and who is doing the work. Each submission will be time
stamped. Proper submission is your responsibility; we strongly urge
you to make sure you understand the submission process and submit
early. We also urge you to check out your submissions and test them
to make sure the submissions are complete. You can always submit
again up until the deadline, so we strongly urge you to submit well
before the deadline and then submit again if you have a more updated
assignment to submit later.
| |||||||||
GRADING POLICY | |||||||||
If you disagree with any homework or exam grade, submit your grievance via
email to the w4118 staff mailing list, documenting the merits of your
case.
The grader responsible will respond likewise via email. If you are
still
dissatisfied you may appeal in like manner to the instructor, who will
only examine the email record of the dispute, and will respond via
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, or before grades for the semester are due, whichever date comes first.
| |||||||||
PROGRAMMING POLICY | |||||||||
For your convenience, all programming can be developed on any
Linux machine. However, only those programs which compile using the
gcc compiler in the virtual machine (VM) you are given to work with
will be graded. Furthermore, it is critically important that all
submitted program listings and executions be thoroughly documented.
All programs must compile and all kernels you modify must also boot;
programs and kernels that do not compile and boot 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.
| |||||||||
COLLABORATION / COPYING POLICY | |||||||||
We encourage you to help one another in understanding the concepts and
principles needed to do the homework assignments for this class.
However, what you turn in must be your own, or for group projects,
your group's own work. Copying any part of other people's code,
solution sets, or from any other sources not provided as reference
materials for this class is strictly prohibited.
The homework assignments must be the work of the students turning them
in.
You must explicitly cite ALL sources of information that you reference as part of your homework submissions. For each citation, you should describe how that source was referenced. You do not need to cite conversations with instructional staff or the course textbooks, but you should cite everything else, including any conversations with other students related to the homework assignments, and any websites used. If you use an LLM like ChatGPT, the citation provided must include the full set of prompts used. Referencing any uncited sources other than the course materials is considered cheating.
All students or groups who are determined to submit homework that
violates the class collaboration policy will receive a zero on the
respective homework assignment for the first offense, and will receive
an F for the course for the second offense. More serious cases of
cheating, such as copying someone's work without their knowledge or
cheating on exams, will result in the person cheating receiving an F
for the course.
In addition, offenses will be reported to the Dean's office, which may
result in further disciplinary action, including suspension or
expulsion from the program. Penalties will be given without
discussion or warning; the first notice you receive may be a letter
from the Dean. Note that you are responsible for not leaving copies
of your assignments lying around and for protecting your files
accordingly.
| |||||||||
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. |