|
Computer Science 461
Distributed Computing and Networking
Spring 1999 |
|
Directory
General Information | Assignments |
Grading | Policies | Facilities
| Lectures
General Information
-
Lectures:
-
TTh 9:00 - 10:20, CS Bldg. 103.
-
Instructor:
-
Larry Peterson,
CS Bldg. 308, 258-6077, llp@cs,
office hours by appointment.
-
Teaching Assistants:
-
Chad Mynhier, CS Bldg. 214, 258-1793, cmynhier@cs,
office hours Mon & Wed 2:00-3:00, or by appointment.
-
Geliang Tong, CS Bldg. 415, 258-1798, tong@cs,office
hours Monday 10:00-noon, or by appointment..
-
Required Textbook:
-
Computer Networks:
A Systems Approach, Peterson and Davie.
-
Optional Textbooks:
-
Java in a Nutshell,
Flanagan (2nd edition). You can buy this book cheaply at amazon.com.
-
Distributed
Systems: Concepts and Design, Coulouris, Dollimore, and Kindberg (2nd
edition).
-
Other Resources:
-
x-kernel
documentation
-
cs461@princeton.edu :
post questions about assignments
-
pu.cos.461 : announcements and discussion
about class material
-
Accounts:
-
Setup and Usage
Assignments
Programming Assignments
Assignment 1 : due February 16
Assignment 2 : due March 4
Assignment 3 : due April 6
Course Project
In addition to the assignments, you will do a course project. You have
wide latitude in deciding what do to for your project, the only requirement
being that your project must be acceptable to the instructor. Some students
may choose to implement another protocol in the x-kernel. Others
may implement a distributed service in Java.
You may do the project as an individual, or you may work in a group
of up to four students. (Larger groups will naturally be expected to do
more difficult projects.) We encourage you to work in groups, since this
will generally allow you to manage a more interesting project.
You will be expected to hand in a Project Proposal in class on April
13. This should be a short document that clearly describes the project
you would like to do, and briefly describes the approach you will take.
If you plan to do a group project, the entire group should hand in a single
proposal; it should say something about how you will divide up the work
among the group members.
The project is due on May 11. It must be completed on time.
Submitting Assignments
Submit your solutions to the programming assignments electronically on
the CIT Sparc machines using the following command.
/u/cs461/bin/submit number files
where number is the assignment number and files
is the list of files for that assignment. For example,
/u/cs461/bin/submit 31 readme makefile main.c strings.c
submits the files readme, makefile, main.c, and strings.c
for a fictitious assignment 31.
The submit command copies your files to the directory /u/cs461/submit/login/number
and lists all the files that you have submitted for assignment number.
login is your user account name. If you execute submit
after the assignment deadline, your files are placed in directory number-late.
You can run submit more than once, and you can submit partial
lists of files.
There's also an unsubmit command that allows you to undo a
submit of one or more files. For example,
/u/cs461/bin/unsubmit 31 main.c
removes main.c from the submission directory.
Submissions must include a file named index.html that contains
a brief description of your solution and its modification history. (It
may include links to other files that you submit, or to the on-line course
documentation.) It should describe your high-level design, the design decisions
you faced, the tradeoffs you made, and a brief justification for your decisions.
It should also include information about testing your code, if you want
the TAs to be able to evaluate problems if your code does not pass their
test suites. (If you have specific scripts you use to test the code, submit
those as well.) This will be used to guide the TAs in evaluating
your submissions.
The index.html file need not be fancy, as long as it conveys
the necessary information clearly. We won't grade you on the beauty of
your HTML writeup. The only requirement is that the index.html
file be viewable with a standard Web browser. You may choose to submit
several .html files connected by hyperlinks; it's up to you.
Grading
Undergraduates
For undergraduates, your grade will be calculated as follows:
-
programming assignments: 40%
-
course project: 20%
-
midterm exam: 15%
-
final exam: 25%
These weights are subject to minor variation.
Graduate students
Graduate students are invited to submit a proposal for a full-semester
project and a half-hour oral exam in lieu of programming assignments and
written exams. In this case, the project will be similar to the regular
one described above (though a full-semester project will obviously have
to be larger than an ordinary project), but it will count for 80% of the
grade, and the proposal will be due on February 11, five days before
Assignment 1 is due. This allows some time to fall back to doing the programming
assignments if desired. You must prepare a written proposal but also meet
with the instructor in person on or before that date to discuss the project.
The proposal should include the following:
-
A description of the project
-
A time-line of what will be done when (2-3 weeks per action item)
-
If there are multiple students involved, you should indicate which student
is doing what.
-
A description of deliverables -- how will you show you are done?
Also, unless there are extenuating circumstances, at most two students
may collaborate on a full-semester project. Students will be required to
meet periodically with the instructor or a TA throughout the semester to
discuss progress (weekly or biweekly, about 10-15min each).
The half-hour oral exam will be scheduled during the final-exam period
and will cover the full semester's material.
Undergraduates who might wish to pursue this option will be considered
on a case-by-case basis. Undergrads must still take the written exams,
and the project will count for 60% of the grade, in lieu of homeworks and
a shorter project. See the instructor for approval.
Grads who do not wish to choose this option can simply submit
the homeworks and take the exams.
Policies
Attendance
Attendance at lectures is expected but will not be recorded. Students are,
however, fully responsible for all material presented in lectures. Class
attendance is stronly recommended.
Exams
Exams are scheduled in advance.The midterm is currently scheduled for
March 11. The final is scheduled for May 14 (8:30 -
10:30). Unless prior arrangements are made, a grade of zero will
be recorded for missed exams.
Collaboration
Programming, like composition, is an individual creative process. Individuals
must reach their own understanding of the problem and discover a path to
its solution. During this time, discussions with friends are encouraged.
However, when the time comes to write the code that solves the problem,
such discussions are no longer appropriate -- the program must be your
own work (although you may ask teaching assistants for help in debugging).
If you have a question about how to use some feature of UNIX, the x-kernel
etc., then you can certainly ask your friends or the teaching assistants.
Do not, under any circumstances, copy another person's program. Writing
code for use by another or using another's code in any form is academic
fraud and will be dealt with harshly. You are also responsible for ensuring
that the code you write for the assignments is not readable by others.
Due Dates & Late Work
Programs are due at 11:59 pm on the date specified. Assignments may be
turned in up to one week late, with reduced credit as explained below.
Exceptions to these rules will be made only under exceptional circumstances,
and then only with an appropriate written excuse.
Assignments turned in late will be graded according to the following
formula: S = R min(.95, exp(-t/c)), where S is the grade given, R is the
grade the work would have gotten if turned in on time, t is the amount
of time by which the work was late, and c is equal to three days. Thus,
the value of a late assignment decays exponentially, with a half-life of
just over two days, but with a minimum of a 5% penalty. Examples: work
turned in five minutes late gets 95% credit, one hour late gets 95% credit,
six hours late gets 92.0% credit, one day late gets 71.7% credit, three
days late gets 36.8%, and one week late gets 9.7%. If the code is turned
in completely on time but the documentation is late, only half the penalty
will be assessed as long as the TA has not yet begun to grade the assignment.
Facilities
The first three assignments will be written in the x-kernel and
run on the Linux machines (vectra01-17) in Room 001 (basement) of the CS
Building. The x-kernel source is available at /xkernel
on the CS Department's file server. You will also have accounts (and
backed up disk space) on a collection of CIT SparcServers (e.g., phoenix,
tucson, flagstaff). You can use any of these machines, plus the SparcStations
located in Room 101 of the CS Building, for your course project.
Students who have already registered for this course should already
have their accounts. Students who had accounts in past semesters will have
the same login (userid) and password. Other students must go to the CIT
Clinic at 87 Prospect to set their password. Students taking several courses
using CIT facilities will have one account and their disk quota will be
the sum of the disk quotas for all courses.
Acknowledgements
This course has developed incrementally over the last few years, so the
current version reflects the contributions of previous instructors, including
Fred Douglis,. Ramon
Caceres, and Ed Felten.