CS513: System Security - Overview and Organization

Course Overview. This course discusses security for computers, communications networks, and distributed systems. We cover applications of cryptography as well as abstractions, principles, structuring constructs, and methods for implementing military as well as commercial-grade secure systems.

Course URL:   http://www.cs.cornell.edu/Courses/CS513/2002FA/

Lecture:Attendance is required.

10:10 - 11:25am Tuesday and Thursday. Thurston 205.

Reserve Monday 7:30pm-930pm (Phillips 101) for occassional (and optional) discussion sections devoted to the course project. These meetings will be scheduled as needed and announced in lecture, one week before each meeting.

Instructor:
Professor Fred B. Schneider   (255-9221)   4115C Upson Hall

Office hours: Available after class and most afternoons (later is better), Tues - Thurs. Feel free to drop by without an appointment.

email: fbs@cs.cornell.edu.   Please send email only to request an appointment (include some choices for days and times that you are available). Other email will be read but not answered. Schneider refuses to allow email to replace live student-teacher interactions, especially since email is a painfully ineffective and impersonal way to discuss anything substantive.

Other Staff:
Dr. Mike Marsh mmarsh@cs.cornell.edu 4107A Upson
Mr. John Calandrino jmc@cs.cornell.edu 5132 Upson
Office hours for meeting with these folks.

Prerequisites. The course is open to any undergraduate or graduate student who has mastered the material in CS414 (Operating Systems) or CS514 (Distributed Systems) or CS519 (Engineering Computer Networks) or CS601 (Systems Principles) or CS614 (Advanced Systems). Familiarity with the JAVA programming language will be helpful in doing the required programming assignments.
Reading: There is no required textbook for this course.

Lecture notes for many of the lectures can be found on-line.

In addition, the following books, on-reserve in Carpenter Library, should prove useful:

Assignments and Grading. In keeping with the professional (and practical) orientation of this course, assignments are underspecified, open-ended, and motivated by problems that arise in the real world (messy as it is). You will have to think on your own, build tools, refine problem specifications, make reasonable and defensible assumptions, and be creative. Success in this course depends heavily on being able to figure out what's important and concentrate on that.

Undergraduate courses give explicit reading assignments and define homework problems closely tied to that reading. CS513 is not an undergraduate course. Students in CS513 are themselves responsible for identifying and reading the relevant on-line lecture notes after material has been covered in lecture, and assignments in CS513 may well take a student far beyond that material.

Much of the final course grade is based on four programming projects, as follows.

In the past, students who have attended all of the lectures, submited all of the required and optional homeworks, and made a good faith effort to get their projects completed on time, have received a final course grade of B or better. And the 25% of the grade that is earmarked for "subjective factors" has typically allowed a handful of students to be raised 1/2 letter grade over what their programming assignment grades bring.

All assignments are due on the date stipulated so that correct answers can be freely discussed after the due date.

Students are expected to work in groups of 2 - 3 on the programming projects (only). Working with other people can lead to a better understanding of the material and will enable you to develop collaboration skills that should prove helpful throughout your career. Each participant in a group, however, must be able to explain the entire content of any submitted solution. All members of a group will receive the same grade for each project phase they submit together.