The official prerequisites are CPSC-410, CPSC-611, or an
equivalent undergraduate Operating Systems course.
Class time will be partitioned into lectures proper and project sessions. During lectures we will be discussing selected papers from the reading list. I expect that students will be familiar with the paper discussed in class, and that we can focus on interesting aspects thereof rather than on getting introduced to the material. (How we will achieve this with the given number of students is still open.) During the project sessions we will be discussing machine problem assignments and the infrastructure needed for the machine problems.
This course will not rely on a textbook. Rather, we will be discussing a good selection of papers across a number of interesting areas of interest in Operating Systems. This course will not introduce the papers to you in class. Instead, you will be expected to come to class prepared. This means that you will have a basic understanding of the paper(s) that will be discussed during the class period. You will also be writing weekly critical analyses of the papers discussed during the week.
A detailed reading schedule will be posted soon.
In this course we will not only talk about operating systems; we will actually build one (at least portions of it.) You will get into writing some rather sophisticated code. While doing this, you will realize that writing OS code is to programming your typical application like NASCAR racing is to driving your mom-in-law to Sunday brunch. If you need somebody to hold you by the hand (like, memory protection) you will be in really bad shape. You will either have to learn to live without, or you will write your own. But the fun part is that you will learn how to nurture a CPU (or multiple CPUs) from the moment it wakes up until it has access to sufficient support infrastructure to run user programs on its own.
This set of machine problems is similar to the one that some of you may have encountered in 410 or 611. No worries; you will not have to repeat these machine problems. For you we will have special arrangements: Either using the infrastructure that you are familiar with from 410/611 or using a new infrastructure based on the L4 microkernel on an ARM. We will discuss this further in class.
There will be one midterm (scheduled for Thursday, March 7, 2013, during class time) and one final examination (scheduled for Friday, May 3, 12:30pm - 2:30pm).
The tests will be open-book, open-notes. No other aids will be allowed, except for writing utensils.
This course will have two tests (counting for 40%,) a series of machine problems (counting for 30%,) and reading reports (counting for 20%,) and another 10% for class participation.
Tests will be used for summative evaluation, while machine problems and reading reports will be used for formative evaluation. In English, this means that test will be graded harshly. On the other hand, machine problems will be evaluated more leniently, with indication of effort being an important aspect.
Ideally, grades will be assigned along the following lines:
Machine problems are to be handed in on eLearning. Make sure that you have access to eLearning.
Reading Reports are to be handed in on elearning.
Note: The machine problems are somewhat demanding, and they will require dedication and time. Start early!!
All the submission deadlines have included extra time for the consideration of accidental events such as (not limited to) unavailable resource (machines are down,) sickness of students, stock market collapse, distress due to the Aggies loosing a game, etc. This means that additional extensions are generally not granted. The rule of the game: START EARLY!
Lateness is penalized with 1/5 of the earned points of the item per calendar day. After the due date (plus 5 days) no more submissions will be accepted. Also, no make-up work submissions will be accepted.
Both the instructor and the teaching assistant for this course will do their best to communicate relevant administrative information (deadlines, information about posted material, details about projects, locations of tutorials, and so on) in an effective and timely manner. We will be using anouncements in class, e-mails to students, postings on Piazza, material on eLearning.
Having said that, keep in mind that this is not a distance education course! You are expected to be current with the material covered in class and with any announcements made in class. In fact, announcements in class will override whatever information has been made available through the other channels. The instructor and TA cannot be held responsible for not conveying important information to students who did not attend class.
Note on e-mail etiquette: E-mail is a very convenient and potentially effective way to communicate with instructor and TA, but only if used in a professional manner. Keep in mind that -- in particular when a deadline is looming -- we are receiving many e-mails, and all senders expect immediate turn-arounds. Therefore, keep your e-mail short and to the point; indicate that you have done some thinking *before* typing the e-mail; provide necessary support documentation (e.g. code sections) when needed (don't attach huge amounts of code!); follow standard basic rules for courteous and professional communication; proofread your e-mail before sending it out. We will not answer e-mail that does not follow these rules. Repeated offenders will be added to the spam filter.
Note on e-mail accounts: Over the years we have been having problems with off-site e-mail accounts used by students. We will therefore be sending CS-613 related e-mail to the accounts listed on Howdy only. (These are typically of the form firstname.lastname@example.org.) Make sure that you have access to these mails, and forward them appropriately if needed.
It goes without saying that the highest level of academic integrity is expected for students in this class. While discussions among students on the analysis of problems and on the development of general solution approaches is welcome (encouraged, in fact,) the realization has to be of the individual student. Spelled out, this means:
The Americans with Disabilities Act (ADA) is a federal antidiscrimination statute that provides comprehensive civil rights protection for persons with disabilities. Among other things, this legislation requires that all students with disabilities be guaranteed a learning environment that provides for reasonable accommodation of their disabilities. If you believe you have a disability requiring an accommodation, please contact the Department of Student Life, Services for Students with Disabilities in Cain Hall, Rm. B118, or call 845-1637.