Course Introduction and Application Information

Course Code: COE035
Course Name: Distributed Systems
Semester: Fall
Course Credits:
ECTS
5
Language of instruction: English
Course Condition:
Does the Course Require Work Experience?: No
Type of course: Departmental Elective
Course Level:
Bachelor TR-NQF-HE:6. Master`s Degree QF-EHEA:First Cycle EQF-LLL:6. Master`s Degree
Mode of Delivery: Face to face
Course Coordinator: Doç. Dr. AMIR SEYYEDABBASI
Course Lecturer(s): Assis. Prof Hüsamettin OSMANOĞLU
Course Assistants:

Course Objective and Content

Course Objectives: The objective of the course is to provide students with a comprehensive understanding of distributed systems, including their architecture, middleware, system-level support, and design considerations for distributed algorithms. Students will gain in-depth knowledge of the design principles, challenges, and emerging paradigms in building and managing distributed computing systems. Through practical exercises and projects, students will explore various concepts, algorithms, and technologies used in distributed systems, while also learning to design and implement popular distributed system paradigms such as Google File System and MapReduce.
Course Content: The content provided captures the essence of a course on Distributed Systems. It highlights key aspects such as the distribution of data over a network, the appearance of a single computer to system users, communication through message passing, and various themes including process distribution, data distribution, concurrency, resource sharing, synchronization, and more. It also emphasizes the importance of designing, implementing, and debugging large programming projects as part of the course. Overall, the content provides a good overview of the course's focus and objectives.
A selection of topics from the following topics: the challenges faced in constructing client/server software: partial system failures, multiple address spaces, absence of a single clock, latency of communication, heterogeneity, absence of a trusted operating system, system management, binding and naming. Techniques for meeting these challenges: RPC and middleware, naming and directory services, distributed transaction processing, 'thin' clients, data replication, cryptographic security, mobile code. Introduction to Java RMI.

Learning Outcomes

The students who have succeeded in this course;
1) Understand the design principles in distributed systems and the architectures for distributed systems.
2) Explain the design and development of distributed systems and distributed systems applications.
3) Use the application of fundamental Computer Science methods and algorithms in the development of distributed systems and distributed systems applications.
4) Discuss the design and testing of a large software system, and to be able to communicate that design to others.
5) Analyze fault tolerance and recovery in distributed systems and algorithms for the same

Course Flow Plan

Week Subject Related Preparation
1)
2) Chapter 2 from [1] and [2] Socket Programming
3) Chapter 3 from [1] and [2]
4) Chapter 4 from [1] and [2]
5)
6) Chapter 6 from [1] Chapter 4 from [2]
7) Midterm Exam
8) Chapter 7 from [1]
9) Chapter 8 from [1]
10) Chapter 9 & 10 from [2]
11) Chapter 5 from [1]
12) Chapter 6 from [1]
13) Chapter 8 from [1]
14) Chapter 9 from [1] Chapter 11 [2]

Sources

Course Notes / Textbooks: •Books
[1] Distributed Systems: Concepts and Design, 5th Edition (George Coulouris, Jean Dollimore, Tim Kindberg, Gordon Blair) 2012 ISBN-13: 9780132143011
[2] Distributed Systems: Principles and Paradigms, 2nd Edition (Andrew Tanenbaum, Maarten Van Steen)


References: •Lecturer Notes

Course - Program Learning Outcome Relationship

Course Learning Outcomes

1

2

3

4

5

Program Outcomes

Course - Learning Outcome Relationship

No Effect 1 Lowest 2 Average 3 Highest
       
Program Outcomes Level of Contribution

Assessment & Grading

Semester Requirements Number of Activities Level of Contribution
Homework Assignments 10 % 30
Project 20 % 30
Midterms 10 % 10
Final 30 % 30
total % 100
PERCENTAGE OF SEMESTER WORK % 70
PERCENTAGE OF FINAL WORK % 30
total % 100

Workload and ECTS Credit Calculation

Activities Number of Activities Workload
Course Hours 13 39
Project 1 20
Quizzes 3 30
Midterms 1 10
Final 1 15
Total Workload 114