CS 4730/6730 email: csx730@greenhouse.cs.uga.edu.
You must first sign up for the mailing list by going to
this link
. Starting Thursday, all info will go out via the mailing list, so if
you do not sign up by then, you are responsible for any missed announcements.
Please note that any email to this list goes to everyone. If
you have something personal to ask/tell me, send it directly to me.
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. Note that we will cover how to use a debugger in a discussion section --- it is not hard.
Office Hours: M 11:30-1, F 10-11:30, location TBA
Note that the 2nd edition is relatively 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.
You should come to lecture prepared. Ideally this means you have read the assigned material in advance. I am aware that this will not always be possible -- at least review the previous lecture.
"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.
There will be at least four homework assignments, seven programming assignments, a midterm, and a final. Their approximate weights will be as follows:
Important: Your grade will be the one you earn. If you need this class to graduate, I suggest that you earn a C or better. Under no circumstances will your graduation status, visa status, or HOPE status affect your grade. This includes situations like: (1) your parents are coming for graduation, (2) your relatives are flying in from halfway around the world for your graduation, (3) you have a job lined up and have to start immediately, (4) you got all A's up to this point, and you have never received a grade below a C, and/or (5) you will have to leave the country if you do not achieve a certain grade.
Written assignments will cover the material in the book and in lecture. These assignments are completely optional, although they will help you prepare for the exams. They will not be graded, so you are free to do them in groups.
Separately, graduate students will be assigned literature papers covering current operating systems innovations. For each paper, I expect the graduate student to read the paper and write a summary. In addition, I may ask you a few questions about the paper. In the summary you should indicate two good points of the paper and one bad point. These will count as part of the homework assignments for the graduate students. Note that the summaries will be graded and so must be done individually (as well as the reading itself).
You will work individually on the project.
Part of each assignment will be understanding the Nachos code that is already there. This is not necessarily a simple task. To assist you, I will keep a home page with Nachos information; see the link above. Look at that page to see how to get a copy of Nachos. Also, Thomas Narten of Duke University has written a Nachos roadmap which may be of use to you.
Please note that each assignment in this class builds on the 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.
Graduate students will have harder programming assignments than undergrads.
In prior years, I have given free late days, but I will not be able to continue that policy for logistical reasons. To try to compensate, I will try to schedule assignments around the due dates of other computer science courses.
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, unless you happen to be working for Microsoft. 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., fraternity/sorority parties, 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.
Without prior arrangement, any missed exam will result in a grade of zero.
Note that copying materials from the Web is a violation of academic honesty. There are many other schools that use Nachos; copying any kind of solution from their Web sites is forbidden. Furthermore, accepting code written by students in previous offerings of this class will be considered gross violations of the academic honesty policy. I keep all ex-students' Nachos code. 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.
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.
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: