CSE 306 Course Information (Fall 2009)

Course Objectives and Description

The purpose of the course is to familiarize students with basic concepts and techniques found in modern computer operating systems. This will be done through readings from the textbook, which discuss various operating system concepts, through lectures intended to amplify and augment the textbook material, and through homework assignments, which will consist primarily of programming assignments in which you will implement portions of an actual operating system. The programming assignments will be performed using primarily the Java programming language, and will revolve around a Java version of the NACHOS system. NACHOS was originally written in C++ by Prof. Tom Anderson of Berkeley. The version we will use is based on a Java translation made by Prof. Peter Druschel of Rice University, which was subsequently reorganized, partly rewritten and extended by Prof. Stark. A small amount of programming (test applications to run run under NACHOS) will use the ANSI C programming language.

Official Course Goals

The following are the official course goals agreed upon by the faculty for this course.

Staff

Professor
Eugene W. Stark

Teaching Assistant(s):
Rui Qiao

TA Office Hours are held in CS 2110.

Prerequisite

You must have taken CSE 219 and CSE 220 to take this course.

Class Time/Place

Tuesday and Thursday, 2:20PM-3:40PM, SB Union 236.

Examinations

There will be just one exam, held during Finals Week at the scheduled time: Friday, December 18, 11:15AM-1:45PM. You must take the final exam at the scheduled time -- no make up exams will be given.

Textbook

The course will center on the programming project. The textbook will serve as a source of background material on operating systems, which will be helpful in understanding how to implement the project. Though I will not lecture "out of the book", I will assume that everyone will read the sections of the text that are related to the material covered in the course. Material from the text will be fair game for the final exam. See the Schedule of Topics for the correspondence between the lecture and textbook material.

Recommended Text

Other References

I have used the following books (in their numerous editions) as the course text in the past.

The following textbook has more detailed descriptions of the internals of the Unix operating system. I base some of my lectures on materials from this book. You may also find that the more detailed, concrete descriptions will give you some ideas about how you might organize your own code for the homework assignments.

Handouts

This semester, all course handouts, including homework assignments, will be available on the Web for you to download and print, if desired. No paper copies will be handed out. It is assumed that you know how to use a Web browser and have regular access to the Internet. Start from my home page at the following URL:
http://www.cs.sunysb.edu/~stark/
and follow the link to reach the CSE306 home page. I will try to announce in class when new homeworks and handouts are available, but ultimately it will be your responsibility to check the course WWW pages regularly to find out if there is anything new.

Homework

There will be homework assigned regularly, and each assignment will be due roughly two weeks after it is issued. I expect that there will be five homework assignments in all. The homework assignments will be very challenging and likely very time-consuming. They will consist of programming exercises in which you will modify and implement various components of the NACHOS operating system. I feel it is very important that you do the homework in this course, and I have adjusted the weighting of the homework portion of the grade (see Grading below) to help motivate you. Students will work in pairs on the homework assignments. If you cannot find a partner, let me know and I will try to help match you up with someone. You are not required to work with a partner, but you may, and in most cases I think you will find it helpful to do so. Also, I create the homework assignments with the idea in mind that there will be two people working on them.

You must turn the homeworks in on the day they are due. Students are urged to plan ahead to avoid problems due to congestion or failure of computer facilities at the last minute. If your program is incomplete or is not working by the due date, turn in whatever you have. Any homeworks that are submitted after the due date might or might not be graded, at the convenience of the course staff. Late homeworks that are not graded will be held until the end of the semester, in which case I will have a look at them to decide whether you will be receiving a fair final grade. Generally speaking, if your homework assignment is not graded due to late submission, at my discretion you will receive either a zero for that assignment or you will receive a score equal to the average grade you received on all your homeworks that were graded. If some sort of emergency prevents you from submitting your homework on time, supplying me with suitable documentation might influence the choice I make, but please do not ask me to tell you that it is "OK" to submit your homework late. It is never "OK" to submit your homework late, but you will benefit more from submitting a late homework than if you submit nothing at all.

Programming assignments will be handed in electronically, using a method detailed here. We (the TA's and I) will be able to spend only a very limited time grading each assignment, and will not be able to do much in the way of "decoding" your submissions. It is your responsibility to make sure that the information you hand in electronically demonstrates very clearly that you did the work that was assigned.

Grading

The final grade will be determined as follows: The raw scores obtained by a student on each assignment and exam will be standardized for that particular assignment or exam by converting them to percentile scores, or else by applying a linear transformation to map the scores to a standard [0, 100] scale. A weighted sum of the resulting standardized scores will then be formed (with weights as shown below) to obtain a composite score for each student. Finally, the composite scores will be ranked, and I will apply a subjective method of my choice to determine the cutoffs for each grade category. Absolute performance standards, the distribution of composite scores, and information derived from late homeworks are factors likely to contribute to this decision.

Pass/No Credit

The Pass/No Credit (P/NC) option is not available for this course.

This policy applies to all CSE/ISE undergraduate courses except CSE 101, 110, 130, 230, and 301.

Students in CSE 587

In accordance with the policies detailed in the CS Department Graduate Handbook, under certain conditions students admitted to the M.S. program may be permitted to register for this course under the CSE 587 designation. The following special conditions apply to such students:

  1. Students registered for CSE 587 must complete the programming assignments individually -- they are not permitted to work with a partner as are students registered for CSE 306.

  2. For the purpose of assigning final course grades, students in CSE 587 will be regarded as a completely separate group from those registered for CSE 306. Thus the distribution of letter grades assigned to students in CSE 587 will have no impact on the distribution of letter grades assigned to students in CSE 306, and vice versa.

Academic Dishonesty

Read This! Students may work in pairs (i.e. everyone may have a partner) on the homework, and each pair of partners will produce a single submission for each of the assignments. You may discuss the programming assignments with anyone you like, however each pair of students' coding must be their own work, and only their own work. Any evidence that source code has been copied, shared, or transmitted in any way between non-partners (this includes using source code downloaded from the Internet or written by others in previous semesters!) will be regarded as evidence of academic dishonesty. The College of Engineering and Applied Sciences regards academic dishonesty as a very serious matter, and provides for substantial penalties in such cases, such as receiving an 'F' grade, or expulsion from the University. For more information, obtain a copy of the CEAS guidelines on academic dishonesty from the CEAS office.

Be advised that any evidence of academic dishonesty will be treated with utmost seriousness. Those involved will be prosecuted to the fullest extent permitted by the University and College laws.

All students taking this course are required to complete this form in which you acknowledge specific activities that are and are not permitted in this course. No grades will be issued for anyone who has not completed this form.

The following statement about academic dishonesty, adopted by the Undergraduate Council on September 12, 2006, is required to be included in syllabi for all undergraduate courses:

"Each student must pursue his or her academic goals honestly and be personally accountable for all submitted work. Representing another person's work as your own is always wrong. Any suspected instance of academic dishonesty will be reported to the Academic Judiciary. For more comprehensive information on academic integrity, including categories of academic dishonesty, please refer to the academic judiciary website."

Students with Disabilities

"If you have a physical, psychological, medical or learning disability that may impact on your ability to carry out assigned course work, I would urge that you contact the staff in the Disability Support Services office (DSS), ECC Building (behind SAC), 632-6748/TDD. DSS will review your concerns and determine, with you, what accommodations are necessary and appropriate. All information and documentation of disability is confidential."

Students who require assistance during emergency evacuation are encouraged to discuss their needs with their professors and Disability Support Services. For procedures and information go to this web site and search Fire Safety and Evacuation and Disabilities.

Critical Incident Management

Stony Brook University expects students to respect the rights, privileges, and property of other people. Faculty are required to report to the Office of Judicial Affairs any disruptive behavior that interrupts their ability to teach, compromises the safety of the learning environment, or inhibits students' ability to learn.

Schedule of Topics

An outline of the course can be found by clicking on the following link: topics.html.