Undergraduate
Faculty of Engineering and Architecture
Computer Engineering
Anlık RSS Bilgilendirmesi İçin Tıklayınız.Düzenli bilgilendirme E-Postaları almak için listemize kaydolabilirsiniz.

Computer Engineering Main Page / Program Curriculum / Parallel and Distributed Programming

Parallel and Distributed Programming

Course CodeSemester Course Name LE/RC/LA Course Type Language of Instruction ECTS
CSE0425 Parallel and Distributed Programming 2/0/2 DE English 6
Course Goals
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. Oral presentation, Laboratory
2. Week Communication: Layered protocols; remote procedure call; remote object invocation; message oriented communication; stream oriented communication. Oral presentation, Laboratory
3. Week Processes: Threads; clients; servers; code migration; software agents. Oral presentation, Laboratory
4. Week Naming: Naming entities; locating mobile entities; removing unreferenced entities. Oral presentation, Laboratory
5. Week Synchronization: Clock synchronization; logical clocks; global state; election algorithms; mutual exclusion; distributed tarnsactions. Oral presentation, Laboratory
6. Week 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-1Adequate 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-2Ability to identify, formulate, and solve complex engineering problems; ability to select and apply proper analysis and modelling methods for this purpose.
PO-3Ability 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-4Ability to devise, select, and use modern techniques and tools needed for engineering practice; ability to employ information technologies effectively.
PO-5Ability to design and conduct experiments, gather data, analyse and interpret results for investigating engineering problems.
PO-6Ability to work efficiently in intra-disciplinary and multi-disciplinary teams; ability to work individually.
PO-7Ability to communicate effectively, both orally and in writing; knowledge of a minimum of one foreign language.
PO-8Recognition 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-9Awareness of professional and ethical responsibility.
PO-10Information about business life practices such as project management, risk management, and change management; awareness of entrepreneurship, innovation, and sustainable development.
PO-11Knowledge 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-1Understand hardware and software concepts of distributed systems.
LO-2Understand communication protocols such as remote procedure call, remote object invocation, message-oriented communication and stream-oriented communication.
LO-3Be capable of identifying and applying practical basis of thread, client, server and software agent issues.
LO-4Understand naming issues in a world-wide distributed system.
LO-5Understand synchronization issues in a world-wide distributed system.
LO-6Describe and distinguish replication and data consistency models.
LO-7Be capable of identifying and applying practical basis of reliable client-server communication and reliable group communication.
LO-8Develop a simple distributed object-based system.
LO-9Describe and distinguish distributed file systems.
Course Assessment Matrix:
Program Outcomes - Learning Outcomes Matrix
 PO 1PO 2PO 3PO 4PO 5PO 6PO 7PO 8PO 9PO 10PO 11