Prasun Dewan
Fall '09, TR
11:00-12:15, SN 115
Prerequisites: Object-Oriented Programming and Data Structures
Distribution area: Applications
Other requirements potentially met: Writing and Program-Product
Web Page: http://www.cs.unc.edu/~dewan/290/f09/index.html
You can register for the class for 1 or 3 credits. The 1 credit option is for students engrossed in their research who wish to learn about this topic but do not have the time to do complex assignments. For 1 credit, you must do assignment 1 (outlined below), and demonstrate you have a basic understanding of what is covered in class lectures, through class participation and by answering basic questions in an exam. For 3 credits, you must do all the assignments and answer all exam questions.
1. You will perform a distributed task using both Microsoft’s LiveMeeting and Google Docs, thereby gaining a first-hand feel for some of the issues in this area.
2. You will implement a collaborative application (an extension of IM) using a framework, called Sync, that makes it easy to program both synchronous and asynchronous collaborative applications. This assignment will expose you to the difference between synchronous and asynchronous collaboration, consistency issues, and the design of collaboration toolkits such as Google Wave.
3. You will then use another framework, called the Logger, to experiment with different distributed architectures for this application, thereby gaining a strong understanding of centralized (client-server) and replicated (peer-to-peer) architectures, and the impact on performance of these architectures.
4. You will write and present a survey of three papers in this area, thereby gaining exposure to some of the future directions in this field.
OR
You will design, implement, and present a collaboration software project of your choice. You are encouraged to extend some other project you are already doing (as part of an RAship or another class) by adding collaboration to it. Like the survey alternative, this will help you explore some ideas that go beyond commercial technology available today.
The paper you write can be the basis for meeting the MS writing requirement.
The project you do can be the basis for fulfilling the MS program-product requirement.
The 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. While it draw on and build on mechanisms in traditional systems, it focuses on middleware layers that go above traditional operating systems and programming languages, and considers the usability of these layers. 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.
A grade will be assigned based on class exams, class participation, and the assignments.
There is no text book covering this area. Detailed PowerPoint slides and class notes will cover the topics. In addition, appropriate references will be posted.
1.
Introduction
2.
Basics of Collaborative Infrastructures and
Applications
3.
Architectures and implementation techniques
4.
Applications and Taxonomies
5.
Collaborative User-Interfaces
6.
Distributed Collaborative Software Development
7. Student Project/Survey Presentations