15-395 Syllabus

Table of Contents

Course Meetings

  • 9:30 - 10:20, Tuesdays and Thursdays in Porter Hall A19

Course Description

System-Level Software Development

This course is designed to introduce students to system-level software development. The lecture-coponent is designed to present students with a software developer's view of operating system services, including those that expose features such as process, memory, file, and communication management and concurrency control. The course will also explore system services outside of the operating system, including mechanisms for dynamic and static linking and loading.

The lab component will provide students with a practicum-like experience developing real-world system software. Over the course of the semester, students will develop software utilities for practical tasks such as process accounting and management, process suspension, recovery, and migration, execution tracing, and file-system recovery, as well as software development aids, such as tools to manipulate and trace process execution and dynamic library calls.


15-213, or permission of instructor


There is no required textbook. Several good reference books will be recommended throughout the course of the semester. You might want to budget some money to buy the one or two that most interest you.

Web Site



Name: Gregory Kesden
Email: gkesden@cs.cmu.edu
Url: http://www.cs.cmu.edu/~gkesden
Office: WeH 8020 (right in front of the elevators on the 8th floor)
Office phone: 412-268-1590
Home phone: 412-687-6198
Office hours: MWF: 2:30-4:20, TuTh: 1:30-2:50

Please note:

Office hours are times that I do my best to reserve exclusively for "drop in - no appointment" meetings with students, but I am often available at times other than office hours.

Please don't hesitate to call or drop by at other times, or to request an appointment. Office hours are convenient -- if they are convenient for you. If not, please, please, please email or call for an appointment, or just take your chances and drop by -- if I'm not teaching, I'm likely here.

Please remember -- I'm here to help. I appreciate the opportunity to serve you. Do give me the chance.

Some students have found it useful to finger me at my UNIX workstation, gigo.sp.cs.cmu.edu, or the departmental cycle server ux8.sp.cs.cmu.edu. If I have a reasonably short idle time on either machine and I'm logged in locally or from my Windows box fubar.sp.cs.cmu.edu, chances are that I'm in my office.

Please note that my home phone number is published is this syllabus, as well as in many other places. If something comes up that is time sensitive and I am otherwise unavailable, you are welcome to try me at home.

Also, please be advised that bth my home and office phones are usually forward to my cell phone. Please understand that if you call be at the office at an odd hour, I might be in an odd place. This isn't a problem -- you are welcome to call. But, don't be confused by, for example, buses passing along Forbes Ave -- or rifles firing in the background.

I am generally not available via zephyr.

Teaching Assistant

Course Attendance

Attendance is expected at all classes. You are responsible for everything conveyed during class, even if you are absent. It is suggested that you make friends with your classmates -- they can be helpful should you miss class. In the event that you miss class, you should contact one of these individuals promptly to ask for help.

The course staff is not responsible to help you with material or procedural announcements from which you opted out by electively missing class.

Need Help?

I can't stress enough that the course staff, the instructor and TA, are dedicated to providing you the highest possible levels of support: inside of the classroom and outside. Please, if you need help, do ask.

Important: It is strongly suggested that you email both of us with questions. This will assure you of the fastest possible answers.

Assignments and Grading

  • Exams: 24%: Equally divided among three (4) exams

  • Projects: 76%: Weighted among the projects
    • Assignments will be weighted, approximately according to the assignment complexity and size, which mostly correlates with assignment duration.

Grade Corrections

We try to be very, very careful about scoring your work and maintaining your grades. But, we are human and will make mistakes. If you have any questions about grading, please see any member of the course staff.

If possible, s/he will help you "on the spot". But, if s/he want to discuss the issue with other members of the staff, which does occur in many cases, he or she might make a copy of your work and/or ask you to write down or email your concerns. Please don't be alarmed -- this is just to try to ensure correctness and consistency among staffers, as well as prevent miscommunication. If you are asked to provide a copy of the work or feedback in question, or to provide your concerns in writing or email, you are required to do this before your concern can be addressed.

Please keep copies of all of your graded work, electronic submissions, and electronci feedback, until you receive your final course grade and are satisifed that it is correct. Without the original work and the grading information, it is more difficult and time consuming to correct errors.

In general, grading concerns should be addressed within two (2) weeks. In the sepcial case of the final exam, they should be addressed with one (1) year. The course staff, at its discretion, may refuse to reconsider grades outside of this time period.

Should concerns arise outside of these time periods, but during the semester, please do contact any member of the course staff -- we want to be reasonable and will do our best, within ourt discretion, to help. Should concerns occur after the end of the semester, please contact the instructor. Or, in the unlikley event that he is no longer at the University, on leave, or otherwise inaccessible, contact an administrator in the Computer Science department.

You do have the right to appeal final course grades. This can be done informally, beginning with the instructor, and then to the student's academic dean and/or the academic dean in the home department. It can also be done formally using the policy outline in the Academic Regulations.


It is suggested that you form study groups as soon as possible. These groups generally work best if there are between three and five people involved, but sometimes pairs or slightly larger groups can work well. Typically the most effective study groups meet once per week for a few hours, or a couple of times each week for a couple of hours each meeting. For study groups to be effective, each member must work indivudally with the material in-between meetings such that s/he has something to contribute as well as questions to drive the discussion.

Unless otherwise specified, all assignments should be completed individually. In other words, it is okay to collaborate in studying the course material, but the "writing on the page" or the "code in the lab", as examples, should be your own "thought product".

If portions of your individual assignments have been significantly influenced by someone else, you should prominently give them credit for their contribution. Proper attribution is critically important -- and is an absolute defense against charges of "Academic Dishonesty"

Failure to provide proper recognition for the contributions of others towards any graded work may be, at the discretion fo course staff, considered Academic Dishonesty under the applicable University, School, Department, and/or Intro Group policies.

The Academic Regulations are the only authoritative source for information regarding the University police on Academic Dishonesty, and related procedural matters. But, the following is an informal summary:

  • An instructor can charge a student with academic dishonesty and impose a penalty within the course, including an "R" grade.

  • The instructor informs the University of the charge, where it is recorded. If it is a first-offense, the University takes no further action. If it is not, a University committee is convened. For other than first offenses, the Committee, not the instructor determines the penalty, which can include academic actions such as expulsion or suspension, as well as less-severe actions. The student may appear at this hearing, and the instructor might also ask to appear or be asked to appear.

  • Even on a first offense, the instructor can ask the University to convene a Committee as discussed above. This might be done, for example, in the case of a particularly flagrant case, or under atypical cicumstances.

  • The student has the right to appeal an instructors finding of academic dishonesty. Such an appeal is heard by the same Committee as discussed above. In the event that both the student and faculty member request a Committee, the same Committee will hear both.

  • University procedure provides for the appeal of decisions by the Committee.

  • In the event that the instructor charges a student with Academic Dishonesty, it is suggested that the student consider the totality of the circumstances calmly and rationally and seek advice from the instructor -- as well as third parties, such as the student's advisor, academic dean, or a dean of student affairs. It is may not be in the student's best interest to take a rash action, such as attempting to drop the course.

  • Students who are charge with Academic Dishonesty should be aware that there will be no prejudice against them in the course, beyond the penalty directly imposed, as a result of the charge, or of any appeal.

Late Work

You have five (5) "Late Days" for use on assignments this semester. You can use one day on each of five assignments, five days on one assignment, &c. There are no half days -- an assignment 1 second late requires the use of a full late day.

These late days are not "procrastination days". They are instead designed mcuh like "personal days" at work to handle the little things that come up during the semester: short illnesses, injuries, visiting family or friends, a burst of work in other classes, doctors vists, &c.

The use of these days is completely at your discretion -- but, once they are gone, they are gone. That's it. The course staff cannot give you more. Late work is not accepted, other than through the use of "Late Days".

There is, of course, the possibility that exceptions to this policy will arise. We certainly hope that nothing incapactiating will happen to any of you. But, in the event that there is some major life event including major medical issues, emotional problems, family problems, &c, the course staff stands ready to work with you, as appropriate.

But, because these events are major events that likely will affect more than one class, we refer these circumstances to other University officials, typically academic deans, deans of student affairs, and/or assigned academic advisors.

In the event that you need help of this kind, please see a member of the course staff, and advisor dean, or other appropriate University offical. If you contact us, we'll likely begin by contacting your advisor or dean. But, regardless who you contact first, we'll work together with your academic unit and/or student affairs, and (most importanbtly) you, to do the Right Thing. We are, in fact, here to help.