COE035 Distributed SystemsIstinye UniversityDegree Programs Computer Engineering (English)General Information For StudentsDiploma SupplementErasmus Policy StatementNational Qualifications
Computer Engineering (English)

Preview

Bachelor TR-NQF-HE: Level 6 QF-EHEA: First Cycle EQF-LLL: Level 6

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: Dr. Öğr. Üy. HÜSAMETTİM OSMANOĞLU
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
1) Adequate knowledge in mathematics, science, and computer engineering principles, both theoretical and practical, and the ability to apply this knowledge to complex engineering problems.
2) Ability to identify, formulate, and solve complex computer engineering problems using appropriate analysis and modeling techniques.
3) Ability to design and develop complex computer systems, devices, or products that meet specific requirements and operate under realistic constraints and conditions, using modern design methods.
4) Ability to develop, select and use modern techniques and tools used for the analysis and solution of complex computer engineering problems, and the ability to use information technologies effectively.
5) Ability to plan and conduct experiments, collect and analyze data, and interpret results in the study of complex computer engineering problems or research topics.
6) Ability to work effectively within and multidisciplinary teams; individual study skills.
7) Ability to communicate effectively orally and in writing; knowledge of at least one foreign language; ability to write effective reports and understand written reports, to prepare design and production reports, to make effective presentations, to give and receive clear and understandable instructions.
8) Awareness of the necessity of lifelong learning; ability to access information, to follow developments in science and technology and to renew continuously.
9) To act in accordance with ethical principles, professional and ethical responsibility; information on the standards used in engineering applications.
10) Information on business practices such as project management, risk management and change management; awareness of entrepreneurship and innovation; information about sustainable development.
11) Knowledge of the effects of computer engineering practices on health, environment and safety in the universal and social scale and the problems of the era reflected in computer engineering; awareness of the legal consequences of computer engineering solutions.

Course - Learning Outcome Relationship

No Effect 1 Lowest 2 Average 3 Highest
       
Program Outcomes Level of Contribution
1) Adequate knowledge in mathematics, science, and computer engineering principles, both theoretical and practical, and the ability to apply this knowledge to complex engineering problems.
2) Ability to identify, formulate, and solve complex computer engineering problems using appropriate analysis and modeling techniques.
3) Ability to design and develop complex computer systems, devices, or products that meet specific requirements and operate under realistic constraints and conditions, using modern design methods.
4) Ability to develop, select and use modern techniques and tools used for the analysis and solution of complex computer engineering problems, and the ability to use information technologies effectively.
5) Ability to plan and conduct experiments, collect and analyze data, and interpret results in the study of complex computer engineering problems or research topics.
6) Ability to work effectively within and multidisciplinary teams; individual study skills.
7) Ability to communicate effectively orally and in writing; knowledge of at least one foreign language; ability to write effective reports and understand written reports, to prepare design and production reports, to make effective presentations, to give and receive clear and understandable instructions.
8) Awareness of the necessity of lifelong learning; ability to access information, to follow developments in science and technology and to renew continuously.
9) To act in accordance with ethical principles, professional and ethical responsibility; information on the standards used in engineering applications.
10) Information on business practices such as project management, risk management and change management; awareness of entrepreneurship and innovation; information about sustainable development.
11) Knowledge of the effects of computer engineering practices on health, environment and safety in the universal and social scale and the problems of the era reflected in computer engineering; awareness of the legal consequences of computer engineering solutions.

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