Distributed Systems

Design and Implementation

February 15, 2019
Tishk International University
Department of Computer Engineering
BSc
2019
5 mins read

General Information

Course Description

This course provides a comprehensive introduction to distributed systems, covering fundamental design principles, communication mechanisms, and implementation challenges. Students will learn how to design and implement distributed applications that can operate across multiple networked computers while maintaining reliability, performance, and consistency.

The curriculum covers essential distributed systems concepts including communication protocols, synchronization mechanisms, fault tolerance, and distributed algorithms. Students will gain hands-on experience with Java programming for distributed applications, including multithreading, network programming, and Remote Method Invocation (RMI).

Through practical projects and case studies, students will develop the skills necessary to design, implement, and troubleshoot distributed systems, preparing them for careers in cloud computing, distributed software development, and system architecture.

Prerequisites

Course Objectives

Upon completion of this course, students will be able to:

Course Outline

Module 1: Introduction to Distributed Systems

Module 2: Communication in Distributed Systems

Module 3: Multithreading and Concurrency

Module 4: Network Programming Fundamentals

Module 5: Remote Method Invocation (RMI)

Module 6: Naming and Resource Discovery

Module 7: Time and Coordination

Module 8: Performance and Scalability

Module 9: Dependability and Fault Tolerance

Module 10: Consistency and Replication

Module 11: Distributed File Systems

Module 12: Security in Distributed Systems

Module 13: Distributed Algorithms

Module 14: Modern Distributed Systems

Textbooks

Assessment