Prasun Dewan
Fall '06, TR 11:00-12:15, SN 155
Office hours: TR, 4-5pm, available any time for short questions, or make an appointment.
Today, collaboration software forms a rapidly growing area in research and industry as the vision of replacing physical travel with computer supported distributed collaboration is being effectively realized by these systems. In this course, we will look at issues in the design, implementation, and evaluation of these systems. At the end of the course, you will have a good understanding of successful collaboration software such VNC, NetMeeting, LiveMeeting, Webex, Google Spreadsheet, Writely, and Groove. In addition, you will learn in-depth several research concepts such as architectures, consistency, collaborative undo/redo, degree of synchrony, awareness, concurrency control, mobile collaboration, quality of service, security, and collaborative filtering. You will gain experience with using, implementing, and evaluating collaboration software; and surveying, writing about and presenting complex concepts.
Students will (a) watch and evaluate videos of collaborative systems, (b) collaboratively perform a distributed task with and without collaboration sofware , (c) write and present a survey of three papers in this area, (d) design, implement, and present a collaboration software project. You are free to choose the project –look at the “Possible Projects” link from the course home page.
The paper you write can be the basis for meeting the survey-paper requirement. The software you develop can be the basis for fulfilling the program-product requirement. The new distribution requirements assume each course is classified into one of three areas: applications, theory, and systems. This course is on the borderline of systems and applications. It will draw on and build on mechanisms in traditional systems on how to implement collaboration software. However, the “softer” but surprising more challenging issue in this area is what policies should be implemented so that the end-users can collaborate effectively. The major portion of the lectures and your home-work will focus on this issue. Hence this course is classified in the application area.
There is no text book covering this area I plan to distribute detailed PowerPoint slides for the material we cover in class. In addition, I will place reference papers in the Colab in Room 155.
A grade will be assigned based on class exams (which will check if you have a basic understanding of the concepts covered in class), class participation, and the assignments.
The following is a tentative list of topics we will cover.
Introduction
Basic Design Concepts
·
Being there
·
Beyond being
there
·
Taxonomies
·
Example tasks
Basic Implementation Concepts
·
Sharing of framebuffer, window, widget, and model layers.
·
Compression
and flow control
·
Basic coupling,
session management, concurrency control, and access control
·
Firewalls
Basic Evaluation Concepts
·
Example
collaboration tasks
·
Inspections
·
Performance
experiments
·
User experiments
Session management
·
Invitation-based
vs. Autonomous
·
Inviting mobile
users
·
VR-based session
management
Coupling, awareness and presence
·
Synchronous vs.
asynchronous coupling.
·
Heterogeneous
views
·
Heterogeneous
devices
·
Coupling vs.
user-interface flexibility
·
Coupling vs.
awareness
·
Flexible diffing
·
Presence on
mobile devices
Quality of service
·
Managing jitter
and latency of telepointers
·
IPC mechanism vs.
QOS
·
User interface to
address poor QOS
·
Collaborative
virtual environments
Consistency
·
Locking &
floor control
·
Operation
transformation
·
Structured
objects
·
Typed objects
·
File and object
merging
·
Hoarding
Undo
·
Undo vs.
operation transformation
·
Undo vs.
asynchronous coupling
Access control
·
Access-controlled
RPC
·
Controlling
editing operations.
·
Joint ownership
·
Collaborative and
automatic access control
·
Digital rights
Reuse and Interoperability
·
Reusing existing
window-based, toolkit-based, bean-based code.
·
Heterogeneous
collaborating editors
·
Layer-independent
I/O Distribution
·
Heterogeneous
coupling and concurrency control
·
Heterogeneous
session management
Architecture
·
Caching and
replication
·
Zipper
architecture
·
Flexible
architecture
·
Fine-grained
layers
·
Dynamic
architecture
Single-display groupware
·
Multiple telepointers
·
Multi-user
commands
·
Privacy issues
Web-based collaboration
·
Extending the
HTTP protocol
·
Notifying clients
·
Web caches
Collaborative Filtering/Recommender Systems
·
News ratings and
architecture
·
Other
Applications
·
Collaborative
filtering vs. data mining