one.worldCSE 490dp Syllabus

Goals and Objectives

The overall goal of 490dp is for students to gain considerable experience in designing, implementing and evaluating distributed and pervasive applications. The particular objectives for students are:

  • To build a working distributed or pervasive application.
  • To gain experience in building complex systems.
  • To work together in groups.
  • To communicate their work clearly, be it in code documentation or write-ups.
  • To consistently work towards a goal (and not just cram a few all-nighters at the last minute).

The lectures are meant to jump-start the application building process. They have three objectives:

  • To introduce system technologies that are not typically used for "desktop" applications.
  • To familiarize students with technologies that make it easier to build distributed and pervasive applications.
  • To give students an idea of the underlying concepts and point them in the right direction if they want to find out more.


Readings are classified as follows:

  • [Required] readings must be read before lecture. We will provide students with notes on the paper about a day before lecture. Though, we won't do this for the first required paper (Weiser's The computer for the 21st century).
  • [Background] readings provide additional background or context. They include papers referenced in lecture.
  • [Reference] readings provide a reference for the technology and are general useful for actually building applications.

   Tuesday 1/2/01     Lecture: Introduction to the course – Slides


   Thursday 1/4/01 Lecture: Part I: Challenges – Slides (for entire lecture)
Part II: Java object serialization

  • J. Ousterhout. The role of distributed state. In R. F. Rashid, editor, CMU Computer Science – A 25th Anniversary Commemorative, chapter 8, pages 199-217. ACM Press, January 1991.
[Background] [Reference] Projects:
  • Groups must have been formed
  • One paragraph application proposal due

   Tuesday 1/9/01 Lecture: Tuples – Slides

  • P. Wyckoff, S. McLaughry, T. J. Lehman, and D. A. Ford. T Spaces. IBM Systems Journal, 37(3):454-474, 1998.
  • N. Carriero and D. Gelernter. The S/Net's Linda kernel. ACM Transactions on Computer Systems, 4(2):110-129, May 1986.
  • P. Stout. Wax: A Wide Area Computation System. PhD Thesis, Carnegie Mellon University, December 1994. Available as Technical Report CMU-CS-94-230.

   Thursday 1/11/01 Projects: In-class design presentation and Q&A
  • Each team has 10 - 15 minutes to present their application, describing the features, components, and unknowns.
  • Each presentation is followed by discussion with class and instructors.
  • Afterwards, general Q&A session.

   Tuesday 1/16/01 Lecture: Synchronous vs. asynchronous invocation

[Required] [Background] [Reference] Projects: Written design report due
  • Problem
  • Features
  • Assumptions
  • Architecture overview and components
  • Unknowns and how you plan to address them
  • Plan for the rest of the term, including definition of weekly milestones
  • Plan for evaluation: How are you going to evaluate the application and show that it works as advertised?

   Thursday 1/18/01 Lecture: Remote invocation – Slides: Overview, RMI, REP

[Required] [Background]
  • A. D. Birrell and B. J. Nelson. Implementing remote procedure calls. ACM Transactions on Computer Systems, 2(1):39-59, February 1984.

   Tuesday 1/23/01 Lecture: Resource control – Slides

[Required] [Background] [Reference] Projects: Weekly progress update due

   Thursday 1/25/01 Lecture: Check-pointing and migration – Slides

[Required] [Background]
  • Part II of D. Milojicic, F. Douglis, and R. Wheeler, editors. Mobility – Processes, Computers, and Agents. Addison-Wesley, February 1999.

    Mobility includes a re-print of F. Douglis and J. Ousterhout. Transparent process migration: Design alternatives and the Sprite implementation. Software Practice and Experience, 21(8):757-785, August 1991.

  • D. B. Lange and M. Oshima. Programming and Deploying Java Movile Agents with Aglets. Addison-Wesley, August 1998.

   Tuesday 1/30/01 Projects: Weekly progress update due

   Thursday 2/1/01

   Tuesday 2/6/01 Projects: Weekly progress update due

   Thursday 2/8/01

   Tuesday 2/13/01 Projects: Weekly progress update due

   Thursday 2/15/01

   Tuesday 2/20/01 Projects: Weekly progress update due

   Thursday 2/22/01

   Tuesday 2/27/01 Projects:
  • Preliminary version of final report due
  • Weekly progress update due

   Thursday 3/1/01

   Tuesday 3/6/01 Projects: Weekly progress update due

   Thursday 3/8/01

   Friday 3/16/01 Projects:
  • Final reports due
  • Instead of final, team presentations and application demos
  • Presentations start at 4:30 in Sieg Hall 322
  • Demos are in the undergraduate computer lab in Sieg Hall 232, which has been reserved for exclusive use by 490dp from 2:30 to 6:30