The purpose of this course is to teach computer software system structures from a design point of view. We will look at different structuring techniques, and we will examine their usage in both important historical systems and in modern systems.
In addition to learning about different system structures and different operating systems, you should learn:
We will be reading and discussing two papers each class period:
The structure of this class is unusual in that there are no lectures or presentations during the class period. Instead, we will discuss research papers that we will have all read before each class period. I will lead discussions by asking questions of students at random in class. Note that your answers to these questions form a significant portion of your overall grade, so it is important that you both show up to class as well as read the papers carefully.
Because of the unusual format of this class, I will not grade you on class participation during the first two weeks of class.
One goal of the course is to improve your skill at evaluating research papers. Towards this end, I ask that you submit short evaluations of the papers that we will discuss before each class period. Writing the evaluations will be excellent preparation for answering questions in class. You also might find it very helpful to read and discuss the papers with other students in the class before lecture.
The evaluations can be short (1/2 page or so). Use the following questions as a guideline:
Evaluations for the papers being discussed in class are due by 8pm the day before the class. Please use the online Web form to submit your evaluations and review others.
You will do a paper review exercise where you will review a paper as if it were submitted to a conference for which you are a member of the program committee. More details to follow.
You will work on a group project for the course: