CENG532 DISTRIBUTED COMPUTING SYSTEMS

Course Code:5710532
METU Credit (Theoretical-Laboratory hours/week):3 (3.00 - 0.00)
ECTS Credit:8.0
Department:Computer Engineering
Language of Instruction:English
Level of Study:Graduate
Course Coordinator:Prof.Dr. ERTAN ONUR
Offered Semester:Fall or Spring Semesters.

Course Objectives

By the end of the course, you will be able to

  • demonstrate knowledge of the basic elements and concepts related to distributed systems,
  • demonstrate knowledge of the core architectural aspects of distributed systems,
  • understand the fundamental issues in distributed computing sufficient to form a sound basis for the design and implementation of a distributed system,
  • design and implement distributed applications,
  • demonstrate knowledge of the main underlying components of distributed systems,
  • describe the problems and pitfalls relating to the operation of distributed systems,
  • ?use and apply important methods in distributed systems to support scalability and fault tolerance.

Course Content

Basics of distributed computing systems. Global state management indistributed computing systems. Communication in distributed systems. Inter Process Communication and remote procedure call. Distribute filesystems. Fault tolerance. Synchronization and deadlocks. Load balancingand process migration. Distributed Operating Systems issues. Project(s).


Course Learning Outcomes

At the end of this course the students will gain enough understanding of distributed operating systems, be able to explain the principles underlying the functioning of distributed systems as well as how these principles are applied in distributed systems and what the problems and challenges are. The student will understand and estimate the impact of different design choices and system features on distributed systems.


Program Outcomes Matrix

Contribution
#Program OutcomesNoYes
1Competence in fundamental and advanced knowledge of hardware and software Proficiency in problem solving.
2The ability to follow the contemporary technical development, and Initiative and aptitude for self-directed learning.
3They are capable of designing, and conducting experiments at advanced level.
4The ability to design and implement systems involving hardware, software, and the interaction between the two through challenging projects.
5Analyze and compare relative merits of alternative software design, algorithmic approaches and computer system organization, with respect to a variety of criteria relevant to the task (e. g. efficiency, scalability, security).
6Strong interpersonal skills needed for working effectively in small, diverse groups on medium to large scale technical projects.
7Strong oral communication skills essential for effectively presenting technical material to an audience and strong written communication skills and the ability to write technical documents that include specification, design, and implementation of a major project.