Course Contents

CS544 provides an intensive focus on conceptual and practical aspects of designing, implementing, and debugging complex concurrent and distributed software systems. Topics covered include event-driven software architectures, distributed object computing, and developing, documenting, and testing applications using object-oriented frameworks and design patterns. Design and implementation based on distributed computing tools (such as sockets, CORBA and Netscape), object-oriented communication frameworks (such as ACE), and languages (such as C++ and Java) are central themes to enable the construction of reusable, extensible, efficient, and maintainable concurrent and distributed software systems.

Abstraction based on patterns (such as Proxy, Reactor, Acceptor/Connector, Active Object, and Broker) and object-oriented techniques (such as separation of interface from implementation, inheritance and polymorphism, and generic programming) will be the central concepts and principles throughout the course. These concepts and principles will enable you to construct reusable, extensible, efficient, and maintainable distributed software.

Several in-depth case studies will be used in class to illustrate the use of object-oriented techniques to design and implement high quality distributed software systems.

Back to CS544 home page.