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 the ANSI C programming language, and will revolve around a (locally customized) version of the "xv6" operating system from MIT (https://pdos.csail.mit.edu/6.828/2012/xv6.html).
The following are the official course goals agreed upon by the faculty for this course.
Note: All office hours held by Prof. Stark and the TA's will take place online via Zoom. Zoom links for attending office hours are published via the Google Calendar that appears on the course home page. Barring unforeseen technical difficulties, the same link will be valid for the entire semester. Outside of office hours, the best way to contact Prof. Stark or the TAs is by email. Due to the pandemic, Prof. Stark does not expect to be physically present in his office during the semester.
You must be an official CSE or ECE major and have achieved a grade of C or higher in one of CSE 219 or CSE 260 and in one of CSE 320 or ESE 380 to take this course.
Tuesday and Thursday, 9:45AM-11:05AM, online via Zoom
Note: This course will utilize a "synchronous delivery" model. This means that the lectures will delivered online (via Zoom) at the officially scheduled lecture time. Zoom links for joining the lectures are published via the Google Calendar that appear on the course home page. Barring unforeseen technical difficulties, the same link will be valid for all lectures. A best-effort attempt will be made to record the lecture sessions. If all goes well, the recorded lectures will be available for viewing asynchronously, sometime after the synchronous lecture has been given. Links for viewing the recorded lectures will be published via the course home page. Note that it is not guaranteed that a recording will be available for any particular lecture, so students should plan to attend the synchronously scheduled lecture if at all possible.
There will be just one exam, held during Finals Week at the officially scheduled time: Tuesday, May 11, 8:00AM - 10:45AM. The final exam will be administered online via Blackboard, using the Honorlock proctoring system. You must take the final exam at the scheduled time -- no make up exams will be given.
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.
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.
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:
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.
There will be homework assigned regularly, and each assignment will be due roughly two weeks after it is issued. 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 xv6 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 generally 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.
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, either 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.
Each of the homework assignments will count equally toward the final grade.
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.
The Pass/No Credit (P/NC) option is not available for this course.
This policy applies to all CSE/ISE undergraduate courses used to satisfy the graduation requirements for the major.
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:
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, 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. Faculty is required to report any suspected instances of academic dishonesty to the Academic Judiciary. Faculty in the Health Sciences Center (School of Health Technology & Management, Nursing, Social Welfare, Dental Medicine) and School of Medicine are required to follow their school-specific procedures. For more comprehensive information on academic integrity, including categories of academic dishonesty please refer to the academic judiciary website."
"If you have a physical, psychological, medical or learning disability that may impact your course work, please contact Student Accessibility Support Center, ECC (Educational Communications Center) Building, Room 128, (631)632-6748. They will determine with you what accommodations, if any, are necessary and appropriate. All information and documentation is confidential.
Students who require assistance during emergency evacuation are encouraged to discuss their needs with their professors and Student Accessibility Support Center. For procedures and information go to the following website:
"Stony Brook University expects students to respect the rights, privileges, and property of other people. Faculty are required to report to the Office of University Community Standards any disruptive behavior that interrupts their ability to teach, compromises the safety of the learning environment, or inhibits students' ability to learn. Faculty in the HSC Schools and the School of Medicine are required to follow their school-specific procedures. Further information about most academic matters can be found in the Undergraduate Bulletin, the Undergraduate Class Schedule, and the Faculty-Employee Handbook."