Disclaimer: The material on this syllabus is subject to change at your instructor's discretion. When changes are made, you will be notified by your instructor.
Students learn fundamental concepts of modern operating systems by studying how and why operating systems have evolved. Topics include CPU scheduling, process synchronization, memory management, file systems, I/O systems, privacy and security, and performance evaluation. Students implement parts of an operating system as a means of exploring the details of some of these topics.
Delvin Defoe – Assistant Professor of Computer Science and Software Engineering
| Email: | defoe@rose-hulman.edu |
| Office phone: | (812) 877-8815 |
| Office address: | Moench F-214 |
| Home page: | http://www.rose-hulman.edu/~defoe |
| Office hours: | I strive to be in my office every day from 9 a.m. until 5 p.m. unless I’m in class or a meeting. Please stop by whenever. If my door is shut, just knock. My schedule is available from my home page |
Archana Chidanandan – Assistant Professor of Computer Science and Software Engineering
| Email: | chidanan@rose-hulman.edu |
| Office phone: | (812) 877-8358 |
| Office address: | Moench F-226 |
| Home page: | http://www.rose-hulman.edu/~chidanan |
| Office hours: | I strive to be in my office daily from 8 a.m. until 5 p.m. unless I'm in class or a meeting. Please stop by whenever. If my door is shut, just knock. |
The CSSE lab, F-225, is staffed Sunday through Thursday, 7pm–9pm, to assist students taking CSSE 332. The covered times are:
| Time | Sunday | Monday | Tuesday | Wednesday | Thursday |
|---|---|---|---|---|---|
| 7pm–8pm | Matthew | Steven | Jon | Jon | Michael |
| 8pm–9pm | Matthew | Steven | Jon | Steven | Michael |
Besides the instructors and assistants, other students in the course can often be a great source of help to you. They will learn more if they help you understand the concepts with which you struggle.
Don’t try to be the Lone Ranger in this course. If you find that you have worked on something for 30 minutes without making any progress, it’s probably time to seek help.
Operating Systems: Internals and Design Principles (Sixth Edition), by William Stallings
Paperback: 840 pages
Publisher: Prentice Hall (2009)
Language: English
ISBN-10: 0136006329
ISBN-13: 9780136006329
C: The Complete Reference, by Herbert Schildt
Paperback: 805 pages
Publisher: McGraw-Hill Osborne Media, 4th edition (April, 2000)
Language: English
ISBN-10: 0072121246
ISBN-13: 978-0072121247
NOTE: While this is a required text for Dr. Defoe's section, it is a recommended text for Dr. Chidanandan's section. You are advised to keep this text in your personal library, especially if you intend to pursue other courses in which C is used.
C Programming Language, Second Edition, by Brian W. Kernighan and Dennis M. Ritchie
Paperback: 274 pages
Publisher: Prentice Hall PTR; 2 edition (March 22, 1988)
Language: English
ISBN-10: 0131103628
ISBN-13: 978-0131103627
This book, known by most computer scientists simply by the authors' initials K&R, is a classic reference. We won’t refer directly to this book in the course, but if you will be using C later in your career, either as a student or a professional, we encourage you to add this reference to your personal library. (All CS, SE, and CPE students will use C in later courses. Many other majors will also encounter courses where C is required.)
Safari Books Online – On-line access to C (and other) books through the Rose-Hulman library
On-line:
http://proquest.safaribooksonline.com/?uicode=rosehulman/
On-line books that may be helpful for CSSE 332 include:
These on-line books are only accessible from on campus or via the Rose-Hulman VPN. See IAIT for more information on connecting to the VPN from off campus. Once connected, find Safari Books Online by following these steps:
We’ll use Angel to post grades, materials that require restricted access (like homework solutions), and links to the course schedule, assignment descriptions, slides, quizzes, and handouts. Please note the emphasis on links. All these linked materials are available via any of the several mechanisms for accessing Public AFS data. Thus, you can get to the majority of course materials:
Students who successfully complete this course should be able to:
When we give a reading assignment, we seriously expect you to read it. In-class discussions will assume that you have done the reading and understood the “easy stuff” before class. You may of course ask about any details that you do not understand. We strongly believe that reading the textbook will help you. You may be able to “get by” without reading the text. But did you come to Rose to “get by” or to be the best?
We will assign a number of programming problems. Some of these problems will help you explore the details of real-world operating systems by implementing selected parts of an operating system. We anticipate that you will spend some time working on these assignments. Mastery of the concepts involved with these assignments is required in order to excel in the course. Some of these assignments will be done in groups, while others will be done individually.
Your solutions to programming problems should be well-designed and well-documented. We will suggest working on some programming problems with another person; however we will designate some problems as individual assignments.
We will also assign a number of in-class exercises as well as homework problems and quizzes. Some of these exercises will be done individually, while others will be done in groups. Both the individual and group exercises will contribute to your final grade for the course.
We plan to use the weighting scheme shown in the table below when assigning final grades.
| Criteria | Weight |
|---|---|
| In-class Quizzes | 10% |
| Homework and Programming Problems | 25% |
| Major Team Project(s) | 30% |
| Exams | 35% |
Final grades are contingent on the following:
We will do our best to conform to the Rose-Hulman definition of the various grades, as described in the Academic Rules and Procedures. Note in particular that the phrase ”thorough competence to do excellent work“ appears there in the description of the “B” grade, and it further states that “B” and “B+” will not be given for mere compliance with the minimum essential standards of the course.
We will not grade on a curve, so every student could earn an “A”. But it will require significant effort to do so.
We may adjust your overall average up or down by up to 5 points, based on your citizenship in the CSSE 332 learning community. This includes attendance, promptness, preparation for class, positive participation in class, constructive partnership in pair and group assignments, timely completion of various surveys, and peer evaluation of other students’ code and of your team members for group projects.
The in-class time in this course constitutes an important learning experience. After two unexcused absences, you must discuss continuation of the course with the instructor. Three unexcused absences will result in failure of the course.
Homework and programming problems must be turned in on time if you want credit for them. No credit will be given for late work except in extreme circumstances, or for the following exception.
You begin the term with three “late day” credits. You may use one of them on any non-project assignment or online quiz, which allows you to submit that assignment up to 24 hours after the due time. You may earn one additional “late day” per assignment by submitting it at least 24 hours before the due date. Occasionally, some particular assignment may be designated as a “no late day” assignment.
If you wish to use a late day for submitting late, or earn a day by submitting early, you must complete the Late Day Bank Survey on ANGEL. You must complete the form by the assignment deadline.
We usually check our email several times per day (including most evenings), and we do our best to respond quickly. It is a good way to get answers to simple questions. We expect you to check your email daily (not necessarily on weekends, although even that is not a bad idea). When we send mail to you, we will use your Rose-Hulman address. If you do not currently read mail that is sent to that address, please have it forwarded to wherever you read mail.
When you send course-related email to us, please begin the Subject: line with CSSE 332:, so that we can quickly pick it out from among the dozens of daily email messages that we receive. If you have an urgent CSSE 332 question, you can email the entire course staff (instructors and TAs) by sending to csse332-staff@rose-hulman.edu.
We do our best to keep class interactive. But we recognize that sometimes it is hard as a student to stay focused on the class. With laptops in class, there are many more ways to become distracted. Unfortunately these distractions are much more pernicious, since it is very easy to get drawn into things like IM conversations or RSS feeds.
We strongly encourage you to turn off IM and email software and only use other software for things directly related to class. If you choose to use non-class-related software during class, then you must sit in the back row. Doing so will prevent your classmates from being distracted by what is on your screen.
Recall the Institute policy on academic misconduct:
“Rose-Hulman expects its students to be responsible adults and to behave at all times with honor and integrity.”
Exams and homework will be done on an individual basis. The simple rule of thumb for individual work is:
Never give or use someone else’s code or written answers.
Such exchanges are definitely cheating and not cooperation. The departmental statement on academic honesty has more detailed advice.
We encourage you to discuss the problems and general approaches to solving them with other students. However, when it comes to writing code, it should be your own work (or the work of your group if it is a group or partner assignment). If you are having trouble understanding how some library code works or pinning down a run-time or logic error in your program, by all means talk to someone about it.
If you use someone else’s ideas in your solution (or any other work that you do anywhere), you have to:
If you are ever in doubt about whether some specific situation violates the policy, the best approach is to discuss it with your instructor beforehand. This is a very serious matter that we do not take lightly; nor should you.
In general, you should not look at another student’s code to get ideas of how to write your own code. Beginning the process of producing your own solution with an electronic copy of work done by other students is never appropriate.
Plagiarism or cheating will result in a negative score (i.e., less than zero) for the assignment or exam. Egregious cases will result in a grade of “F” for the course. More importantly, such dishonesty steals your own self-esteem. So don’t cheat.
Developed by Delvin Defoe and Archana Chidanandan.