This is a 4000-level undergraduate course
during which you will study the concepts, design, and implementation of
distributed computing systems. The course will:
The course includes a substantial
practical component during which students will write programs that exercise
distributed computing features.
Note: The main portion of this course web-site is password
protected, including the Lecture Notes and Programming Projects.
To access it, use the user ID and password given in class.
The official
course description on the WPI Computer Science web site says that this course
“extends the study of the design and implementation of operating systems begun
in CS 3013 to distributed and advanced computer systems. Topics include
principles and theories of resource allocation, file systems, protection
schemes, and performance evaluation as they relate to distributed and advanced
computer systems.”
You must have a solid background CS-3013
and/or an equivalent Operating Systems course, and you must also be proficient
in programming a low-level language such as C, including the use of pointers,
casts, malloc(), and free().
You will
need to know something about computer networks, protocols, and the 7-layer OSI
stack. This is covered in CS-3516,
Computer Networks. For those have not taken CS-3516 (or its predecessor,
CS-4514), a brief tutorial will be offered at a time and place to be arranged
in the first class. The following slides include the material of the tutorial.
(.ppt, html). A
tutorial on the use of sockets can be found here:–
Time and Place: Mondays and Thursdays, 8:00 — 9:50 AM, Fuller Labs 320
March 15 — May 4, 2010
No class on Monday, April 19 (Patriots’ Day holiday)
No class on Thursday, April 22 (campus-wide Project Presentation day)
There will be a class on Tuesday,
April 20 (Thursday scheduled
observed)
Professor: Hugh C. Lauer
Email:
<professor’s last name>@cs.wpi.edu
Office hours: by appointment, or see chart below
Office:
Fuller Labs, room 144
Teaching Assistants:
Thangam
Vedagiri Seenivasan,
Email:
thangam **at** cs.wpi.edu
Office hours: See chart below
Office: Fuller Labs 317
Wei
Zhang
Email:
weizhang **at** cs.wpi.edu
Office hours: See chart below
Office: Fuller Labs 317
Textbooks: George
Coulouris, Jean Dollimore, and Time Kindberg, Distributed Systems: Concepts and Design, 4th edition,
Prentice Hall, 2007.
You
also need one of the following from your Operating System course:–
o Andrew S. Tanenbaum, Modern
Operating Systems, 3rd edition, Prentice Hall, 2008.
o Silberschatz, Galvin, and Gagne,
Operating Systems Concepts, John Wiley and Sons, 7th edition
2005 or 8th edition 2009.
Class e-mail lists: The following two lists are in the domain cs.wpi.edu:–
o cs4513-all — to reach
all students, TAs, and the professor
o cs4513-staff — to reach just the professor and the TAs
Course
web site: http://web.cs.wpi.edu/~cs4513/d10/
Students needing to be absent from class
should notify the professor by e-mail or in person as soon as possible, especially if an exam is scheduled for the
day of absence!
|
Monday |
Tuesday |
Wednesday |
Thursday |
Friday |
8:00 |
Class |
|
|
Class |
|
9:00 |
|
Wie Zhang |
|
||
10:00 |
|
|
HCL |
|
|
11:00 |
HCL |
|
|
|
|
Noon |
|
|
|
|
|
1:00 |
|
|
|
|
|
2:00 |
|
Wei Zhang |
|
|
|
3:00 |
|
Thangam |
Thangam |
|
|
4:00 |
|
|
|
CS-4513 meets for two 2-hour classes per week
for a seven-week undergraduate term (28 hours). There will be no class on April
19 (Patriots’ Day) and April 22, the campus-wide Project Day. However, there will
be a class on Tuesday, April 20, during which WPI observes the Thursday
schedule.
This course will be a combination of
lecture and class discussion, programming projects, and quizzes and tests.
There may be one or more unannounced quizzes during the term, and there will be
a scheduled mid-term exam and a scheduled final exam.
There will two programming projects
during the term, a simple project to be done individually and a larger to be
done in teams.
Class
participation is an essential
part of the grade for the course. If you attend lectures but never say anything
or engage in discussions, it would likely reduce your grade by one full letter
or more. Students will be expected to be familiar with and to discuss the
relevant sections of the textbook and with other reading assigned during the
term.
Final grades will be computed as follows:
Final grades will reflect the extent to which
you have demonstrated understanding of the material, and completed the assigned
projects. The base level grade will be a "B" which indicates that the
basic objectives on assignments and exams have been met. A grade of
"A" will indicate significant achievement beyond the basic objectives
and a grade of "C" will indicate not all basic objectives were met,
but work was satisfactory for credit.
If there are any circumstances that limit
or restrict your participation in the class or the completion of assignments,
please contact the professor as soon as possible in order to work something
out.
Testing
o There will be an in-class mid-term
exam on during the week of April 5 of approximately one hour duration.
o There will be an in-class final exam
on Monday, May 3, of approximately one hour duration.
o One or more unannounced quizzes may
be held during the term.
The mid-term and final exams will be
closed book, but you may bring one 8-½ ´
11 inch sheet of prepared notes (double-sided). Unannounced quizzes are closed
book and closed notes. Each student
should have a calculator available for quizzes and exams.
There is no make-up for missed quizzes.
It is not in your interest to miss an exam, but if extraordinary circumstances
apply, please contact the professor and your
advisor beforehand so that we can work something out.
Academic Honesty
Unless explicitly noted, all work is to
be done on an individual basis. Any violation of the WPI guidelines for
academic honesty will result in no credit for the course and referral to the
Student Affairs Office. More information can be found at
http://www.wpi.edu/Pubs/Policies/Honesty/policy.html
That being said, you are strongly
encouraged to discuss with each other about ideas, distributed system concepts,
course material, and especially the challenges you encounter in working with
projects and/or in the Fossil Lab.
Once you and your classmates have worked
out a solution to a problem, you must write it up in your own words or
code it in your own coding style. Copying is not allowed. Borrowing algorithms
from references, on-line sources, and other students is permitted provided that
you cite your sources in your write-up and that you write out the
solution in your own words or coding style!
Some assignments may be team assignments.
For these, it is expected that all team members participate with roughly equal
levels of effort. When you put your name on a team submission of an assignment,
you testifying not only that you have fully participated in that assignment,
but also your teammates are also testifying that you have fully participated.
Late Policy
Unless you have arranged otherwise with
the professor at least one day prior to
the due date, late submissions will be penalized 10% of total assignment
value per day or partial day (with the weekend counting as one day), and no
assignments will be accepted after seven days beyond the due date. All
assignments are due at the time specified on the assignment. Projects must be
submitted as directed in class. Exceptions to these rules can be made only
beforehand.
Students wishing to receive both BS and
MS credit for this course must complete an additional research project. The
project for this term is specified here (.doc, html).
Note: If you wish to earn BS-MS credit, you must apply
to the Professor at the start of the term and get a signature on the
appropriate form. If you wait until after the course is completed, or after
your BS-MS project is completed, you will not qualify for BS-MS credit.
The
following papers are relevant to the material presented in class:–
Allman, Eric, “E-mail Authentication: what? Why? How?,” ACM Queue, November 2006, pp 30-34. (.pdf)
Anderson, Thomas E., Dahlin, Michael D.,
Neefe, Jeanna M., Patterson, David A., Roselli, Drew S., and Wang, Randoph Y.,
“Serverless Network File Systems,” Proceedings
of the 1995 Symposium on Operating System Principles, Copper Mountain,
Colorado, December 1995. (.pdf)
Birrell, Andrew D., Levin, Roy,
Birrell, Andrew D., and Nelson, Bruce
Jay, “Implementing Remote Procedure Calls,” ACM
Transactions on Computer Systems, vol. 2, #1, February 1984, pp 39-59. (.pdf)
Dean, Jeffrey, and Ghemawat, Sanjay,
“MapReduce: Simplified Data Processing on Large Clusters,” Communications of the ACM, vol 51, #1, January 2008, pp. 107-113. (.pdf)
Dean, J. and Ghemawat, S. “MapReduce:
Simplified data processing on large clusters,” In Proceedings of Operating Systems Design and Implementation (OSDI).
San Francisco, CA, 2004. pp. 137-150. (.pdf). Note: This paper is an earlier
version of the CACM paper above, but it contains some details not included in
the CACM paper.
Ghemawat, Sanjay, Gobioff, Howard, and
Leung, Shun-Tak, “The Google File System,” Proceedings
of the 2003 Symposium on Operating System Principles, Bolton Landing (Lake
George), NY, October 2003. (.pdf)
Lämmel, Ralf, “Google’s MapReduce
Programming Model — Revisited,” Microsoft Corp.,
Lamport, Leslie, “Time, Clocks, and the
Ordering of Events in a Distributed System,” Communications of the ACM, vol
21, #7, July 1978, pp558-565. (.pdf)
McDougall, Richard, “Extreme Software
Scaling,” ACM Queue, September 2005, pp
38-48. (.pdf)
Patterson, David A., “The Data Center is
the Computer,” Communications of the ACM,
vol 51, #1, January 2008, p. 105. (.pdf) Note: This paper is technical
perspective on the CACM paper by Dean and Ghemawat, listed above.
Rosenblum, M,
and Ousterhout, J. K., “The Design and Implementation of a Log-Structured File
System,” Proceedings of 13th
ACM Symposium on Operating Systems Principles, Pacific Grove, California,
October 1991, pp. 1-15. (.pdf)
Schroeder, Michael D., Birrell, Andrew
D.,
Smed, J., Kaukoranta, T., and Hakonen, H.
“Aspects of Networking in Multiplayer Computer Games,” The Electronic
Library, vol. 20, #2, Pages 87-97, 2002. (.pdf)
Sutter, Herb, and Larus, James, “Software
and the Concurrency Revolution,” ACM
Queue, September 2005, pp 54-62. (.pdf)
Waldo, J., Wyant, G., Wollrath, A.,
Kendall, S., “A Note on Distributed Computing,” Sun Microsystems Laboratory
Technical Report, SMLI-TR-94-29, November 1994. (.pdf)