Cal Poly State University

 CPE 469 (Distributed Computing II)
Fall 2006
Professor Mei-Ling L. Liu
Office: 14-217, 756-6460
Office hours: Monday 2-3, Tuesday 1-3, Wed. 2-3, Friday 2-3
e-mail: mliu@csc.calpoly.edu
http://www.csc.calpoly.edu/~mliu


Course Description

CSC 469  Distributed Computing II (4) (Also listed as CPE 469)

Continued exploration of topics in distributed computing in greater depth, with emphasis on design patterns and team projects. 3 lectures, 1 laboratory. Prerequisite: CSC/CPE 369.

 

Class Hours and Location

            Lec      MWF 3:10        14-253

Lab      MWF 4:10        14-302

 

Prerequisite

CSC/CPE 369 or instructor's consent. Note: CPE 369 and CPE 469 will count as a technical elective sequence in your study plan.

 

Text books

Remoting Patterns: Foundations of Enterprise, Internet and Realtime Distributed Object Middleware by Markus Völter, Michael Kircher, Uwe Zdun, ISBN: 0-470-85662-9

 

Some material, including those on distributed algorithms (not available on the web), will be handed out in class. It is the student's responsibility to obtain class handouts while they are distributed.  The instructor does not retain copies of such handouts.

 

References:

-          Sources of information on Design Patterns (click on this link to reach a set of helpful articles that may be discussed in class.)

-          Software Architecture Design Patterns in Java by Partha Kuchana, ISBN 0849321425

-          Pattern-Oriented Software Architecture, Volume 1, A System of Patterns by Frank Buschmann, et all, ISBN: 0-471-95869-7

-          Design Patterns: Elements of Reusable Object-Oriented Software.  Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides. Addison-Wesley, Reading, Mass. 1994.

-          Pattern-Oriented Software Architecture, Volume 2, Patterns for Concurrent and Networked Objects by Douglas Schmidt, Michael Stal, Hans Rohnert, Frank Buschmann. ISBN-0471606952

-          Fault Tolerance in Distributed Systems, P. Jalote, Prentice Hall

-          Distributed Algorithms, Nancy Lynch, Morgan Kaufmann

 

Tentative Class Schedule

-          Week 1: Distributed computing basics, threaded programming, design documents (UML class diagram, sequence diagram)

-          Week 2: Introduction to design patterns: singleton, observer, adapter

-          Week 3: proxy, chain of responsibilities, broker

-          Week 4: Basic remoting patterns: requestor, client proxy, invoker, request handler, remoting error, monitor, reflection, dynamic proxies

-          Week 5: Identification patterns: object ID, object reference, lookup; midterm.

-          Week 6: Lifecycle management patterns: static instance, per-request instance, client-dependent instance, lazy acquisition, pooling. Leasing.

-          Week 7: Invocation Asynchrony Patterns: Fire and forward, sync and server, polling, result callback

-          Week 8-10: Project review and presentations

 

Tentative Grading Scheme


midterm                                                                                    20%

assignments (exercises, projects, presentations)                           50%

Final                                                                                         30%

 

In general, letter grades are assigned as follows:

              Earned weighted grade       Course letter grade

                        90% and above             A- or better

                        80% - 90%                   B- or better

                        70% - 80%                   C- or better

Policies

  • Please be advised that the College of Engineering requires proof of unusual circumstances in order for a student to withdraw from a course after the second week of the quarter.
  • Representing another's work as one's own is plagiarism and a violation of academic integrity. If materials are taken from published sources (including 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 will be reported to the Cal Poly Student Relations Cal Poly Student Relations & Judicial Affairs (see http://www.calpoly.edu/~saffairs/csrja/causes_for_action.html).
  • Students will be required to demonstrate their completed projects in the laboratory in person.
  • Students who do not complete the project assignments will be given an Incomplete grade for the course.
  • All hand-ins should have the assignment name (e.g.,"Proj 1") and student name clearly written on the upper-right corner of the first page.
  • Upon receiving a graded assignment, if you have a dispute about the grading, I prefer that you do the following:

-          On each problem where you have a dispute, write a short paragraph explaining your arguments.

-          Return the assignment to me within a week of its return, with the word "REGRADE" marked on the top center of the front page, and a note explaining which problem(s) are to be re-graded.

-          I will look at the arguments and adjust the grade if appropriate. I reserve the right to re-grade the entire assignment.

-          The re-graded paper will be returned to you.

  • Grades recorded will be posted on the course home page at regular intervals – re-grade adjustments may not be reflected instantly, but should be shown with the next update. Your grades will be listed with a key of the last four digits of your student ID. If you prefer not to have your grades listed, please inform me by email.
  • There will be no makeup tests. A student who cannot take a test at the scheduled time should consult the instructor in advance to make alternate arrangements.