Basic concepts and principles of
Distributed Systems. Communication processes and synchronization. Naming.
Distributed file systems and distributed operating systems. Security and
cryptography. Distributed shared memory and its consistency. Distributed
algorithms and distributed programming. Design and development of
applications in a distributed environment. Faults in distributed systems:
detection and recovery. Case studies and practical experience with
programming projects or programming exercises.