The objective of this course is to introduce the fundamentals of parallel and distributed programming. This course will concentrate the basic algorithmic, programming, and software engineering issues associated with the development of parallel/distributed applications.
Prerequisite(s)
-
Corequisite(s)
-
Special Requisite(s)
-
Instructor(s)
Assoc. Professor Akhan AKBULUT
Course Assistant(s)
Schedule
The course is not opened for this semester
Office Hour(s)
The course is not opened for this semester
Teaching Methods and Techniques
Course will be held by the instructor first with oral presentations of technical issues using ppt slides in classroom, then study will be continued in the laboratory developing and assembling various parallel/distributed applications.
Principle Sources
Andrew S. Tanenbaum, Marteen van Steen (2007). Distributed Systems Principles and Paradigms 2nd Ed.. Prentice Hall. ISBN: 0-13-239227-5
Mark Anthony McLaughlin (2006). A Framework for Enabling Distributed Applications on the Internet, http://arxiv.org/abs/1106.2677.
Sabu M. Thampi (2009). Introduction to Distributed Systems, http://arxiv.org/abs/0911.4395v1
Other Sources
-
Course Schedules
Week
Contents
Learning Methods
1. Week
Introduction: Definition of a distributed system; goals; hardware concepts; software concepts; the client-server model.
Consistency and Replication: Data-centric consisteny models; client-centric consisteny models; distribution protocols; consistency protocols; examples.
Oral presentation, Laboratory
7. Week
Fault Tolerence: Introduction to fault tolerance; process resilience; reliable client-server communication; reliable group communication; distributed commit; recovery.
Oral presentation, Laboratory
8. Week
Security: Introduction to security; secure channels; access control; security management;
Oral presentation, Laboratory
9. Week
Distributed Object-Based Systems: CORBA; Distributed COM; Globe; comparison of CORBA, Distributed COM and Globe.
Oral presentation, Laboratory
10. Week
Distributed File Systems: SUN network file system; the CODA file system; other distributed file systems; comparison of distributed file systems.
Oral presentation, Laboratory
11. Week
World Wide Web: Overall organization of the Web, document model, document types, architectural overview, communication, namimg, synchronization, security
Oral presentation, Laboratory
12. Week
13. Week
14. Week
15. Week
16. Week
17. Week
Assessments
Evaluation tools
Quantity
Weight(%)
Midterm(s)
2
40
Homework / Term Projects / Presentations
1
20
Final Exam
1
40
Program Outcomes
PO-1
Adequate knowledge in mathematics, science and engineering subjects pertaining to the relevant discipline; ability to use theoretical and applied information in these areas to model and solve engineering problems.
PO-2
Ability to identify, formulate, and solve complex engineering problems; ability to select and apply proper analysis and modelling methods for this purpose.
PO-3
Ability to design a complex system, process, device or product under realistic constraints and conditions, in such a way so as to meet the desired result; ability to apply modern design methods for this purpose. (Realistic constraints and conditions may include factors such as economic and environmental issues, sustainability, manufacturability, ethics, health, safety issues, and social and political issues according to the nature of the design.)
PO-4
Ability to devise, select, and use modern techniques and tools needed for engineering practice; ability to employ information technologies effectively.
PO-5
Ability to design and conduct experiments, gather data, analyse and interpret results for investigating engineering problems.
PO-6
Ability to work efficiently in intra-disciplinary and multi-disciplinary teams; ability to work individually.
PO-7
Ability to communicate effectively, both orally and in writing; knowledge of a minimum of one foreign language.
PO-8
Recognition of the need for lifelong learning; ability to access information, to follow developments in science and technology, and to continue to educate him/herself.
PO-9
Awareness of professional and ethical responsibility.
PO-10
Information about business life practices such as project management, risk management, and change management; awareness of entrepreneurship, innovation, and sustainable development.
PO-11
Knowledge about contemporary issues and the global and societal effects of engineering practices on health, environment, and safety; awareness of the legal consequences of engineering solutions.
Learning Outcomes
LO-1
Understand hardware and software concepts of distributed systems.
LO-2
Understand communication protocols such as remote procedure call, remote object invocation, message-oriented communication and stream-oriented communication.
LO-3
Be capable of identifying and applying practical basis of thread, client, server and software agent issues.
LO-4
Understand naming issues in a world-wide distributed system.
LO-5
Understand synchronization issues in a world-wide distributed system.
LO-6
Describe and distinguish replication and data consistency models.
LO-7
Be capable of identifying and applying practical basis of reliable client-server communication and reliable group communication.
LO-8
Develop a simple distributed object-based system.
LO-9
Describe and distinguish distributed file systems.