Course Code: | COE035 | ||||
Course Name: | Distributed Systems | ||||
Semester: |
Fall |
||||
Course Credits: |
|
||||
Language of instruction: | English | ||||
Course Condition: | |||||
Does the Course Require Work Experience?: | No | ||||
Type of course: | Departmental Elective | ||||
Course Level: |
|
||||
Mode of Delivery: | Face to face | ||||
Course Coordinator: | Doç. Dr. AMIR SEYYEDABBASI | ||||
Course Lecturer(s): | Assis. Prof Hüsamettin OSMANOĞLU | ||||
Course Assistants: |
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. |
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 |
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] |
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 Learning Outcomes | 1 |
2 |
3 |
4 |
5 |
---|---|---|---|---|---|
Program Outcomes |
No Effect | 1 Lowest | 2 Average | 3 Highest |
Program Outcomes | Level of Contribution |
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 |
Activities | Number of Activities | Workload |
Course Hours | 13 | 39 |
Project | 1 | 20 |
Quizzes | 3 | 30 |
Midterms | 1 | 10 |
Final | 1 | 15 |
Total Workload | 114 |