Systems Concepts, by Silbershatz, Galvin, and Gagne, 7th
Edition, published by Wiley and Sons.
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 will learn:
The course does not have a textbook. Instead, the course material will come from seminal, noteworthy, or representative papers from the literature. Each lecture (except the first) will have two assigned papers to read. You should read these papers before coming to class, and be prepared to discuss them (written evaluations are not required). Occasionally we will also list recommended papers; you are encouraged to read those, but not required. Students often find it useful to discuss papers together before the class period, and we encourage the practice.
The structure of this course 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 an appreciable 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.
Occasionally, students have to miss class for one good reason or another (e.g., present a paper at a conference, go on a business trip). If you find yourself in this situation, contact me ahead of time to let me know you will be gone. Since you will not be in class to participate in discussion, I also ask that you write a brief evaluation of the papers for the class that you will miss. Your evaluation should address the following questions:
Your evaluation should be concise, with just one to a few sentences per question. Also, below each paper on the reading list is a question specific to the paper topic. Please conclude your evaluation by answering this question. Email your evaluations to me.
|We will have three written homeworks.|
The course project will measure various aspects of system performance.
We will have one exam at the end of the quarter. Questions on the exam will be similar to questions on the homework and in the reading list. The exam is closed notes. Two past exams that you can use as study aids are:
The grading breakdown for the course is:
The course homework assignments must be completed individually, and
the project may be completed in teams. The requirements will be
explicitly stated for each assignment. For homework assignments,
you must write all of the solutions that you submit; for team
projects, the code must have been authored exclusively by members of
your team. You may (and, in fact, are encouraged to) discuss
assignments with others, but you may not copy code from another team
or make your code available to others. Of course, code may be freely
shared within teams on team assignments. Exams will be individual
effort and closed book. |
You are expected to be aware of UCSD's academic honesty guidelines. Any violation of the course or university policies will be treated very seriously, and could lead to severe repercussions, up to, and including, expulsion. Don't cheat. It's not worth it.