CSCI 6730: Operating Systems (Fall 2002)

Quick Links

 Lectures

 Readings

 Grading Policy

 Class Schedule

 Programming Assignments

 Late Work

 Exams

 Academic Honesty (important)

 Withdrawals and Incompletes

Course Overview

This course will cover the key concepts in modern operating systems as well as past and current
research in the field. Specifc topics include: Note that this document can be found  at http://www.cs.uga.edu/~dkl/6730/Fall02/syllabus.html

Lectures: TTh 9:30-10:45, and W 10:10-11; Miller Plant Science 1102

Final Exam: Tuesday, Dec. 17, 7-10pm

Instructor: David Lowenthal

Office: GSRC 219C, 542-9269

Email: dkl@cs.uga.edu

CS 6730 email: cs6730@cs.uga.edu

I am a faculty member in the Computer Science Department at the University of Georgia. My main areas of research are parallel and distributed computing and operating systems.

Office Hours: W 8:15-9:45, Th 1:15-2:45, and by appointment

Office hours are for you. Please do not hesitate to come to my office. Office hours will usually be very busy right before an assignment is due; if you start the assignments early and come to my office well before they are due, you have a better chance of avoiding the rush. Due to my busy schedule, I cannot accept drop-ins outside of office hours.

I will also be available by appointment; please send me email to set one up. Please note that I will not be able to accept all requests for appointments, especially around program due dates. If you do wish to see me outside of office hours, you need to make an appointment. I am more likely to accept appointments on Tuesdays and Thursdays --- Mondays and Fridays are my research days.

Finally, please keep in mind that office hours are not a substitute for missed lectures.

There is one additional rule with regard to office hours: I will not help any student that is not using some kind of debugger.  For example, if you come in to obtain help with a segmentation fault that you are trying to debug, and you cannot answer the question "On what line is the program crashing?", I will not help you.  If you are not familiar with a debugger, I suggest you learn to use one immediately --- see the man pages for, say, gdb.

TA: Zhenyu Zhong

Email: zhenyu@cs.uga.edu

Office Hours: TBA

Prerequisites: CSCI 4730 (Undergraduate Operating Systems)

If you haven't had the prerequisite, you may nonetheless be fine for this class --- please see me.

Reading

The required textbook for the course is Modern Operating Systems by Tanenbaum, 2nd edition. You will be expected to read any assigned material. We will not be able to cover all assigned reading in lecture. Please note, however, that you are responsible for any assigned material. Specifically, exam questions covering reading material are fair game.

Note that the 2nd edition is new, so if you happen to have a copy of edition 1, I believe that it will be possible for you to use it, though you may need to read a couple of pages from the 2nd edition during the semester.

Another key part of the class is reading papers from the OS literature.  The above link is to the reading list; papers may be deleted or added, and we will not cover all papers.  However, you are required to read any assigned papers.  The class schedule page lists when papers are to be read by.

Lectures

Class will consist of both the standard instructor-style lectures as well as discussions and possibly unannounced student presentations.   This means that you must be prepared for every class, having read the book and/or papers assigned thorougly.

"Lecture" is really a misnomer. Ideally, we will have a discussion as opposed to me just lecturing. Please do not hesitate to ask questions; you might think your question is dumb, but more likely, many people are wondering about the same thing.

Because class participation is vital in this course, you may not skip class without being excused.  If you have more than 3 absences that are not excused by me, you will fail the class.

Grading

Grades will be assigned on the usual A-F basis. Grading will be absolute; there will be no "curve". Achieving a 90% will guarantee an "A", 80% a "B", and so on. However, when the final grades are given, it could be the case, for example, that an 85% gets an "A". Do not confuse this with a curve, however. If everyone does A work (as I hope), everyone will get an A. If everyone does C work, everyone will get a C. So that you know your grade at all times, four fictitious students will be given grades for each assignment and exam. These students will be named "Min A", "Min B", etc., indicating the minimum score for each grade.

There will be homework assignments, some programming assignments, a class project, a midterm, and a final.  You will also be graded on class participation.  Approximate weights will be as follows:

Please note that these are tentative. Relative weights of assignments can change, although I would expect them to end up very close to those listed above. Also, you will not receive a given grade unless you obtain that grade on at least one of the exams. For example, if you with to achieve a B, and you get all A's on the programs, but get C's on both of the exams, you will get a C in the class.  Note: I hope this situation will not arise.

Important: Your grade will be the one you earn.  Not considered will include situations like: (1) you may be deported if you do not achieve a certain grade, (2) you have a job lined up and have to start immediately, and (3) you got all A's up to this point, and you have never received a grade below a (fill in your favorite grade here).

Class Schedule

The class schedule will be updated quite often; you should reload this page often. Please note that due dates can change, although they will never be made earlier.

Programming Assignments

Please note that programming assignments in this class may build on previous ones. This means that it is vital that you correctly implement each assignment. You will not be excused from assignment N just because you did not get assignment N-1 to work correctly. Further, it is likely that some of the test cases will be exactly the same from project to project.  In my experience teaching this course, I have found that the most common reason for students struggling is getting behind in the projects.  Do not let this happen.

Your projects will be tested by the TA or me. Test cases are generally pass (full credit) or fail (no credit). This means that if you fail every test case, you will get a zero on the assignment (it is possible that a few points will be given for programming style, etc., but your score will be very poor nonetheless). You are responsible for testing your programs to ensure their correctness. Note that just getting the program to compile is not enough; similarly, just getting the program to pass a few test cases is not enough. You are welcome to share test cases; this is often the best way to ensure that your program works.

It is sometimes the case that one small bug caused a disproportionally large number of test cases to fail. In such a case, you may be eligible to correct your mistake and get some of the points back. See me if you believe you have such a case.  Note that there is a minimum penalty for the bug, which is always at least 10 points per bug.  So, if you had 2 bugs that caused you to lose 15 points, you are not eligible to receive any points back.

Late Assignments

All assignments are due at the start of class unless otherwise noted.  Please note: if your assignment is even one second late, it's late, without exception.  You will have to turn the assignment in before the time it is due.  I will not say "you missed by 1 minute, so it's ok."

Please start early on programming assignments. I will warn everyone of this several times, but surely people will ignore these warnings (computer scientists, by nature, are procrastinators). However, the fact remains that in the real world, there is a penalty for lateness. One suggestion: if you think that you can do a program in 3 days and you have 2 weeks to do it, do it during the first three days.

If you are sick and have appropriate documentation, always let me know as soon as you get sick. It will be to your disadvantage to tell me after the fact that you were sick; you may not be excused from the regular due date.

Please keep in mind that social events (e.g., football games, all-night Quake contests) are not acceptable excuses for late work and will be immediately rejected.   You probably think that no one would ever use such excuses, but if you did --- you would be wrong.  On the other hand, if you have a conflict that is school sponsored (and academic to some extent), I will consider but not necessarily grant a request for an extension.

Note that scheduled downtimes are not an excuse for late work.  The systems go down once a month for backups, for a total of a few hours.  That is not a hardship. However, if there is an unscheduled downtime for a significant period of time, I will make an adjustment in the due date --- as long as the downtime occurs close to the due date.

Exams

There will be one midterm and a final. The exams will be open book and open notes; however, you may not bring in any other books besides the course text and papers that we have covered. The exams will not be simple regurgitation of the material covered in class; rather, they will be designed to see if you understand the material.

Without prior arrangement, any missed exam will result in a grade of zero.

Cheating

Cheating will not be tolerated in this class. You are allowed to discuss the programming assignments with other students. However, these must be general discussions. For example, discussing the need for locking address spaces is perfectly fine; however, telling one exactly how that is done is not.  Any duplication of even one line of code is a violation of the academic honesty policy.  If you have any doubts about what you are doing, ask me. I hand over all cheating cases directly to the Academic Honesty department. Their punishment, if you are found guilty, carries with it a minimum of a failing grade on the assignment and a transcript notation; the latter item will certainly hinder your efforts to find a good job. This means that if I catch you cheating, you're not just going to get away with an F on that assignment; the punishment is much stricter than that. So, simply put, don't cheat.

Note that copying materials from the Web is a violation of academic honesty.  If I catch you copying code, I will do my best to make sure you get the harshest penalty possible, including expulsion from the university.  Note that we have had violations of the course policy in each of the last two years.  If you cheat, we will catch you.

Please note that unfamiliarity with the rules and regulations of the academic honesty environment at the University of Georgia will not be grounds for leniency. In other words, if you come from a background where collaborative work is the norm, you must realize immediately that it is not allowed in this class, unless cleared by me first.

You may think that it's easy to get away with cheating, but people in this class have been caught each of the last three years.  I would suggest that you realize that we will be looking for cheating, and we will pursue cases where we see it.

Withdrawals and Incompletes

You may drop the class during the first three days without an annotation ending up on your transcript. Thereafter until the drop day, you may drop the class with an annotation. An incomplete will only be considered in a case where there is a documented medical evidence and you are making satisfactory progress in the course. If you have a medical emergency and are not making satisfactory progress after the drop date, you may be offered a late withdrawal; this is up to the instructor.

Warnings

First, you are responsible for reading and understanding this entire syllabus. I will hold you to the rules set forth within this document. Second, any computer science programming course involves a significant amount of work. This class will have more work than most computer science courses. If you do not feel you have the time to spend, you may want to think about taking a different course. Ask previous students about the workload in this class. I expect you to treat this class professionally.

Dissemination of Information

I will be using the Web as much as possible for this course. Handouts will be rare. All lecture notes will be on the Web. In addition, I will create a mail alias for the course, which will allow me to "post" information in a place where everyone will surely see it.

Class announcements, such as due date and assignment changes, will be made by email notification and/or on the Web. You are therefore responsible for checking these two places. If you make an error because you did not check the Web and your email, I will hold you fully responsible.

You must sign...

You must sign the statement below and return this document to me. Failure to return this document by Thursday, August 22 will result in your forced withdrawal from the class.

By signing at the bottom of this document I state that I have read the entire syllabus and agree to abide by its terms.

Signed: