>
Course Unit Title Course Unit Code Type of Course Unit Level of Course Unit Year of Study Semester ECTS Credits
Parallel Programming YZM317 Elective Bachelor's degree 3 Fall 5

Name of Lecturer(s)

Assistant Prof. Dr. Kaplan KAPLAN

Learning Outcomes of the Course Unit

1) Defines and recalls the basic concepts and terminology of parallel programming.
2) Lists the fundamental components of parallel and distributed systems.
3) Explains parallel programming models and techniques, comparing their advantages and disadvantages.
4) Installs and uses parallel programming tools and libraries (e.g., MPI, OpenMP, CUDA).
5) Writes simple parallel algorithms, analyzes the performance of parallel programs and identifies bottlenecks.
6) Designs and implements a new parallel programming model to solve a particular problem.

Program Competencies-Learning Outcomes Relation

  Program Competencies
1 2 3 4 5 6 7 8 9
Learning Outcomes
1 Middle Low High Low Low Middle Low High Low
2 Middle High High Low Low Middle Low High Middle
3 Middle Middle Middle Low Middle Middle High Middle Low
4 Low High High Low Middle Low Middle Middle High
5 Middle Middle High Low Middle High Low Middle Middle
6 Low Middle High Middle Middle High Low High Middle

Mode of Delivery

Face to Face

Prerequisites and Co-Requisites

None

Recommended Optional Programme Components

Not Required

Course Contents

Introduction and application areas of parallel programming. Problems related to parallel programming: synchronization, communication, critical sections. Synchronization mechanisms: semaphores, monitors and others. Ways of implementation and applications. Communication primitives based on message transfer. Meeting (rendez-vous) structure. Parallel programming languages: CSP, Occam, and Ada. Design and analysis of classical parallel algorithm examples.

Recommended or Required Reading

Planned Learning Activities and Teaching Methods



Assessment Methods and Criteria

Language of Instruction

Turkish

Work Placement(s)

Not Required