CS 290-063: Collaborative Systems
Fall '99, MW 2:00-3:15
MW, 4-5pm, available any time
for short questions, or make an appointment.
In this course,
we will look at the design and
implementation space of collaborative applications.
The design concepts we will consider include
The implementation aspects include replication,
object-based design patterns,
Examples of technologies we will look at include
Beans, Reflection, and GINI.
At the end of the course,
students will learn not only about novel applications to support collaboration,
but also techniques from object-based technology and operating systems for building complex
Students will work on projects of their choice covering one or more of the topics above.
They will be encouraged to work in teams, and integrate their projects with
projects for other related courses they are taking (in particular 243).
There will be no exams-instead students will give presentations, reports,
The recommended programming language for the projects is Java.
Students will be encouraged to write composable classes that are part of some larger design pattern.
In the first part of the course,
we will discuss concepts such as delegation, patterns, and model/view/controller
that support composable software.
Text and Reference Material
There is no text book covering collaborations systems.
I plan to distribute detailed class notes and powerpoint slides for the material we cover in class.
In addition, I have plced reference papers in the Colab in Room 155.
you can use my class notes for introductory programming,
You should definitely look at the chapters on Model View Controller.
To learn Java, you should do the Comp 14 final assignment on Turtle Graphics available
A working version of the assignment is available as a
This assignment is for your own benefit, and will not
For the project, you will need the following book:
Design Patterns: Elements of Reusable Object-Oriented Software, by Erich Gamma, Richard Helm, Ralph Johnson, and John
Vlissides, Addison Wesley, ISBN 0-201-63361-2.
A grade will be assigned based on
midterm report (10%)
midterm presentation (10%)
related work survey in final paper (15%)
novelity in final paper (15%)
complexity of implementation of final project (15%)
quality of writing of final paper (15%)
final presentation (15%)
The following is a tentative list of topics we will cover.
Video of Collaborative Systems.
Overview of Collaborative Systems.
Java Beans and Reflection.
Collaborative Applications: Session-based Collaboration (Talk++)
MUDs: Textual Virtual Reality
DIVE: 3-D VR
Portholes: Quasi-Dynamic Media Space
Hydra: Gaze Awareness
MAJIC: Seamless User Boundaries
GestureCam: Remote Surrogate
Internet Foyer: Mixed Reality
Message-based Collaboration (Mail++)
Information Lens: Typed Messages
Coordinator/Action Workflow: Structured Conversations
Artifact-based Collaboration (File++)
Quilt: Writeable Hypermedia and Typed Links
PREP: Zero-Cost Hyperlinks
IBIS: Structured Discussion
CLARE: Srtructured Discussion + Process Model
Chronicle: Application-Specific Versions
Session- and Artifact- based Collaboration (Talk + File)
RTCAL: Real-Time Artifact Sharing
Cognoter: Private/Shared Windows & Process Model
GROVE: Access-Controlled Views
CES: Tickle Locks
Apects: Multiple Locking Modes
Groupsketch and GroupDraw: Multiple Gestures and Optimistic Locks
Ensemble: Implicit Sessions and Multicasting Telepointers
GroupDesign: Multiple Collaboration Modes
Clearboard: face-to-face awareness
PEBBLES: Handheld CSCW
TeamWorkstation: Seamless Desktop/Computer Awareness
Message and Artifact-based (Mail + File)
News Bulletin-Boards: Scaleable Shared Data
GroupLens: Extensible Aggregation-based Filtering
Mercury: Automatic Syntax Error Notification
Session-, Message- and Artifact- based Collaboration (File + Mail + Talk)
Forum: Distributed Presentations
IRI: Video Windows and Application Sharing
Microsofts's Asynchronous Video Discussions
Common Task/Shared Environment
Malone's Coordination Theory
Ellis 3-Dimensional Taxonomy
Benford's VR Taxonomy
Example: Saul's True "Hello World" Program
File System: Coarse-grained Data
Traditional DBMS: Fine-Grained Data
Lotus Notes: Rarely-Connected Document Replicas
Coda: Weakly connected computers
Rover: Disconnected Replicated Objects
ISIS: Causal Multicast
MBone: Network Multicast
X: Network I/O
Web Browsers: High-Level Network I/O
Java: Code Downloading + Remote Method Invocation
Rendezvous: Multi-thread MVC
Clock: Distributed MVC
GroupKit: Session-based Multicast
Suite: Patameterized Collaboration Support
Java Enterprise Beans: Message Bus
CORBA: Heterpgeneous computing
DistEdit: Heterogeneous editing
Colab Bus: Heterogeneous collaboration functions
GINIS Lightweight Sessions