Information | Grading | Schedule |
The crosscutting theme in this course is providing abstractions above imperfect hardware to make it usable by programmers and users. At the end of the course, students should understand a set of abstractions (concurrent programming, virtual addressing, memory protection, caching, transactions, ...) that are useful in many large-scale software systems not just OS kernels. More important than memorizing specific abstractions used in operating systems of the past, students should understand these abstractions well enough to synthesize their own abstractions when faced with new problems.
|Instructor:||Mike Dahlin 471-9549|
|Office Hr:||Tuesday 1:00 - 2:00 PM, ACES 6.248 or by appointment|
|Class Info:||53525 TTH 3:30-5:00 PM, JGB 2.216
|TA:||Muqeet Ali email@example.com
Office Hours: Mon 2:00-3:00 PM, Location: PAI 5.33, Desk #2
Juhyun Lee firstname.lastname@example.org
Office Hours: Wed 5:00-6:00 PM, Location: PAI 5.33, Desk #1
|Newsgroup:||http://groups.google.com/group/utexas-cs-372-spring-2011 (Contact mike's assistant leah@cs for an invitation if you have not yet received one.)|
This handout and all other information for the course will be available at this address.
|Prequisites:||Prerequisites for CS372: Computer
Science 337 or 337H, and 352 or 352H, with a grade of
at least C- in each. Please see the official course catalog https://utdirect.utexas.edu/registrar/nrclav/details.WBX?s_ccyys=20112&s_unique=53525&s_level=U for details.
The department's code of conduct outlines what is expected of you and what you can expect from classes in the CSIt is important for you to realize what grades in this class reflect and what they don't reflect. All we can grade you on is how well you demonstrate that you know the material this semester. We can't grade you on how much of a success you'll be after graduation, how smart/creative/persistent/self-motivated you are, or even how well you'll be able to apply the material in the future. And after all, it is what you do in the future, not what you do this semester, that's really important.
That said, grades will be determined as follows:
I grade on a curve rather than an absolute scale because it protects students from stressing out if I happen to give an overly hard midterm or final. The downside of grading on a curve is that it tends to lead students to think they are competing against each other. In practice, this worry is misplaced. First, I will set grade cut-offs for each assignment to correspond to the quality of the work and depth of understanding reflected by each range of scores not by the number of students that make each range of scores. Second, note that the impact of any individual score on the overall class distribution is trivial -- for example someone making a 10% better grade on a midterm raises the class semester average by .1%.
Also, for this type of project students often stress about whether they will be penalized because their project may not be as elaborate as that of some of the other groups in the class. Again, this is not something to worry about. The project is hard enough without looking over your shoulder at other students. By and large, most students do quite well on the project -- the consequence is that the project has less effect than you might think on the curve. A warning, however: if you punt the project, you will fail the course.
In some courses, the TAs and instructor have to spend a lot of time dealing with regrading appeals, time that would be better spent helping students learn the material. Absolutely come to us if we make an arithmetic error, but realize that a few points here and there are extremely unlikely to make any difference in your final grade. If you believe that we assigned too little credit for your work, you may submit your work for a regrade under the following restrictions. (1) All regrade requests must be submitted with a clear, written statement that explains why you believe the original grade was incorrect. (2) All requests for regrades must be submitted within 1 calendar week of when the graded work is returned. (3) We will regrade the entire exam, problem set, or project assignment, and if we were overly generous we will deduct points. Thus, you grade can go up or down on a regrade.
You are required to attend class, and you are responsible for knowing or learning any material presented in class. If you must miss class, you are not required to inform the instructor, but you are responsible for learning any material you missed. The instructor posts detailed notes for each class on the course web site, but classes are interactive, so the actual discussion may depart from the notes. The best way to know what actually happened in a class is to be there and participate; if you must miss a class, you should study the notes carefully and perhaps talk to your colleagues about the technical topics discussed and their take on what points were particularly emphasized. Although attending class and participating in discussion is vital for learning the material and doing well on the assignments and exams, there is no explicit or separate "attendance" element used in computing your final grade.
Late policy. No extensions will be given for completing the programming projects, except that each team will be allowed 4 flexible slip days for the projects. A team may divide their slip days across projects in any way they wish to extend deadlines for the projects. To help the TA track your slip-day status, the top of each project's README file must include the
Slip days will be tracked at the granularity of a day; if an assignment is 1 minute late, it is one day late.
No extensions will be given for completing homeworks, and late homeworks will not be graded. Slip days may not be used for homeworks.
Exemptions of the above rules will be allowed in three cases:
Cooperation and cheating. We encourage you to discuss the
problem sets and programming assignments with your colleagues. We
welcome discussions of possible interpretations of questions, solution
approaches, and points of confusion. You are also welcome to use
existing public libraries in your programming assignments (such as
public classes for queues, trees, etc.) You may also look at operating
systems code for public domain software such as Linux. Such activities
qualify under approved collaboration practices and you are welcome to
take advantage of them. You may not look at any course project material relating to any project similar to this course's class projects.
For example, you may not look at the work done by a student in past
years' courses, and you may not look at similar course projects at other
universities. If you are unsure about whether a particular source
of external information is permitted, contact the instructor before
looking at it.
Note that cooperation is not the same thing as cheating. The project assignments and exams must be the work of the student turning them in. Students who violate University rules on scholastic dishonesty are subject to disciplinary penalties, including the possibility of failure in the course and/or dismissal from the University. Because such dishonesty harms the individual, all students, and the integrity of the University, policies on scholastic dishonesty will be strictly enforced.
It is generally OK to verbally discuss the concepts needed to do projects assignments. Three guidelines will help you keep on the right side of the line.
Note that these guidelines are necessarily generalizations and can not account for all circumstances. Intellectual dishonesty can end your career, and it is your responsibility to stay on the right side of the line. If you are not sure about something, ask.
Midterms. There will be two midterms. The first midterm is March 1 and the second midterm is April 14. If you have a preexisting, important, and unresolvable conflict with a midterm, let the instructor know during the first two weeks of class, and, if appropriate, we will schedule a makeup for a time before the exam is given to the rest of the class. The final will be at the place and time specified by the Registrar. Unless stated otherwise, both the midterm and final exam will be closed book and will cover material from lectures, readings, problem sets, and the projects. Currently, the registrar's web site, http://registrar.utexas.edu/schedules/112/finals/, indicates that the exam will be Tuesday, May 17, 2:00-5:00 pm. This may be subject to change by the registrar's office, which will produce a final exam schedule later this semester.
Projects. Perhaps the most valuable part of this class will be the programming assignments. The projects will be done in two-person teams. Further details about the project will be covered in later handouts.
Homework. We will post a number of problem sets. In each problems set, a few problems will be marked as "required turn in". You must turn in required-turn-in problems at a specified time and we will grade those. The other problems are not turned in, but you should do them to learn the material and practice for the exams.
Of course, the lack of an actual grade or a deadline for completing these problems may be an invitation for procrastination or even ignoring this process altogether. But we trust that you will find this a useful aspect of the class and we strongly urge you to take advantage of it. To make effective use of this feature, complete the sets by the specified deadline. Delaying the problem sets with the intent of accumulating them and solving them at once before the exams is not an effective strategy.
Required-turn-in problems must be done individually. However-as discussed in the cooperation policy above, you may orally discuss the homework problems, your approach, difficulties, ideas, etc with anyone, but you must not look at or show any written work from/to anyone else (except the TAs or the instructor).
Accommodations for students with disabilities. The University of Texas at Austin provides upon request appropriate academic adjustments for qualified students with disabilities. For more information, contact the Office of the Dean of Students at 471-6259,