Computer Science 568
Graduate Seminar on
Distributed Systems
Fall 2006
Dr. Mei-Ling L. Liu, Professor
Office: 14-217, 756-6460
Office hours: Monday 2-3, Tuesday 1-3, Wednesday 2-3, Friday 2-3
e-mail: mliu@calpoly.edu
http://www.csc.calpoly.edu/~mliu
Class Hours and
Location
M/W
9:10-11 14-232B
CSC
568 Distributed
System Graduate Seminar (4)
Advanced topics in distributed systems with emphasis on recent and
emerging distributed computing paradigms, fault tolerance, and distributed
algorithm.
For Fall
2006, the seminar will focus on Design
Patterns for building Distributed Systems
Required
Prerequisite Preparation
Prerequisite: (i)
CSC/CPE 369 or CSC569, and (ii) graduate standing or consent of
instructor.
It is assumed that the student has fundamental knowledge in distributed systems
and distributed computing paradigms. The student must have in-depth knowledge
in programming languages and data structures, and is assumed to be proficient
in using UNIX/Windows and Java.
Class
format
This
course will be conducted in seminar style. Students will be expected to
actively participate in the presentation and discussion of materials in chosen
topics. An end-of-term paper or project demonstrating knowledge gained from the
course will be required.
Text
Books
None required – see the course web site (http://www.csc.calpoly.edu/~csc568) for a list of sources of information on basic design
patterns.
Additionally, a list of suggested papers will be
provided by the 2nd week of class – you will have a choice of two
papers to present in class.
Since you are expected to obtain copies of articles
to be discussed in class and to perform research in relevant topics, it is
highly recommended that you subscribe to the ACM student portal.
Reference Books:
o
Design Patterns. Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides. Addison-Wesley,
o
Pattern Languages of Program Design. James O. Coplien,
Douglas C. Schmidt. Addison-Wesley,
o
Pattern-Oriented
Software Architecture, Volume 2, Patterns for Concurrent and Networked Objects
by Douglas Schmidt, Michael Stal, Hans Rohnert, Frank
Buschmann. ISBN-0471606952 Patterns of Enterprise
Application Architecture by Martin Fowler, David Rice, Matthew Foemmel, Edward Hieatt, Robert Mee, Randy Stafford. Addison-Wesley Professional. ISBN:
0321127420.
Course Home Page
The course home page at http://www.csc.calpoly.edu/~mliu/csc568/
has links to this document, as well as to posting of your recorded grades,
presentation slides, assignments, and useful web links. A password is required to access some of the
pages.
Grading scheme (tentative)
Grade assignments will be based on class participation,
the quality of your presentations, and the quality of your term paper/project.
Policies
Representing another's work as one's own
(plagiarism) is considered a violation of academic integrity. If materials are
taken from published sources (including the web-postings) the student must
clearly and completely cite the source of such materials (Source: Cornel University
Student Code of Conduct). Violation of
this policy as well as other academic dishonesty such as cheating in tests will
be reported to Cal Poly
Student Relations & Judicial Affairs (see http://www.calpoly.edu/~saffairs/)
and will result in an F grade assigned to you for this course.
Classroom
Civilities
Civility and mutual respect in the classroom help
make classes better for everyone.
I would appreciate that you observe the following
classroom etiquette:
o
arrive in class on time
o
avoid leaving class early
o
turn off your cell phone and/or beeper while in class
o
do not bring your bicycle into the classroom
o
refrain from eating in class; sleeping in class; reading newspapers;
chatting with neighbors
It is not necessary to let me know that you will be
absent from class occasionally. However,
I would appreciate an explanation for chronic absences.
Tentative topics:
·
Distributed system and design patterns
·
Threaded programming; thread pool; monitor, consumer-producer
·
Design documents (UML class diagram, sequence diagram)
·
Singleton pattern
·
Observer
·
Adapter
·
Mediator
·
Proxy
·
Chain of responsibilities
·
Master-slave
·
Broker
· Concurrency strategy patterns
·
Event handling patterns
·
Synchronization patterns
·
Fault tolerance patterns