Indiana University
School of Informatics

I320: Distributed Systems and Collaborative Computing

Spring 2004

Instructor: Prof. Christopher (Chris) Haynes, chaynes@indiana.edu, office: LH230F (SW corner of Lindley Hall, 2nd floor), office hours: TR 1:30-2 and 4:15-4:45, office phone: 855-3376.

Bulletin description: (3 cr.) P: INFO I211. An introductory treatment of the distributed systems and programming. Topics range from the distributed and object models of computation to advanced concepts, such as remote method invocations, object brokers, object services, open systems, and future trends for distributed information systems.

Distribution requirement fulfillment: This course satisfies 3 hours of the Informatics BS 300-level elective requirement. If taken in the Spring 2004 semester (and hopefully in future semesters as well), this course may also be used in place of CSCI A247 or CSCI A348 in satisfaction of the Computer Science Information Technology Minor requirements.

Prerequisite: In addition to INFO I211, CSCI C212 and CSCI A202 also provide suitable prerequisite experience. If you have not taken one of these courses, with a grade of at least C-, but you have substantial Java programming experience that you feel qualifies you to take this course, see the instructor.

Text: Distributed Computing: Principles and Applications, by M. L. Liu, Pearson/Addison-Wesley, 2004.

Schedule

Cr/Lab From To Day Location
3 11:15A 12:05P TR LH019
LB 12:20P 1:10P F BH107

Registration must include both the lecture and lab.

Course overview

Many computer applications today, and most in the future, involve distribution of computation over multiple computer systems communicating via networks. This course focuses on fundamental technologies that support such distributed systems. Hands-on experience is provided with several of these technologies through in-lab exercises, programming assignments, and a project, which also serve to develop general programming skill.

Emphasis is given to collaborative computing systems, whose distributed elements interact closely with each other. For example, program agents may make requests of each other, so they are both clients and servers, they may distribute shared data among themselves, and they may keep track of each other's status. These are characteristics of enterprise business applications, as well as sophisticated personal applications such as file sharing systems and distributed-user games.

Topics covered: