Computer Programming (Evening Education) | |||||
Associate | TR-NQF-HE: Level 5 | QF-EHEA: Short Cycle | EQF-LLL: Level 5 |
Course Code: | MYO050 | ||||
Course Name: | Paralel Programlamanın Temelleri (C) | ||||
Semester: | Spring | ||||
Course Credits: |
|
||||
Language of instruction: | Turkish | ||||
Course Condition: | |||||
Does the Course Require Work Experience?: | No | ||||
Type of course: | Departmental Elective | ||||
Course Level: |
|
||||
Mode of Delivery: | Face to face | ||||
Course Coordinator: | Öğr. Gör. AHMET SELİM ÖVER | ||||
Course Lecturer(s): | Öğr. Gör. Ahmet Selim Över | ||||
Course Assistants: |
Course Objectives: | Parallel programming is a learning process focused on increasing knowledge, grasping the logic, and enhancing skills related to various parallel programming techniques and concepts. The goal is to understand and apply parallel programming paradigms, while also concentrating on effective management of concurrent processes and threads, efficient utilization of resources, and comprehension of parallel computing models, aiming to improve proficiency in parallel programming. |
Course Content: | This course aims to help students who have a certain experience in computer programming using the C programming language to think with the basics of parallel programming as well as to develop parallel code writing skills. In this course, parallel programming libraries such as MPI and OpenMP will be used and their effective usage will be taught. Lessons will be taught interactively, supported by in-class exercises and active support from the lecturer. |
The students who have succeeded in this course;
1) Basic knowledge to understand problems of informatics and to solve them in parallel fashion. 2) Ability to use basic parallel programming tools. 3) Programming techniques with C programming language. 4) Parallel programming skills in distributed memory systems. 5) Parallel programming skills in shared memory systems. |
Week | Subject | Related Preparation |
1) | Introduction to the course, basic concepts of parallel programming. | |
2) | Parallel programming terminology, von Neumann architecture, Flynn's Taxonomy concepts. | |
3) | Parallel structures at hardware and software level. Common memory (OpenMP) and distributed memory (MPI) concepts. | |
4) | Introduction to MPI. Printf “Hello World, I'm a processor 0” “Hello World, I'm a processor 1” MPI ’Point to Point communication. Send Recv applications. | |
5) | MPI applications. Collective communication Bcast Reduce applications. | |
6) | MPI applications. Applications of collective communication Scatter Gather. | |
7) | Examples of Reports in Forensic Medicine Practice - Abuse, Torture | |
8) | MPI Application Project | |
9) | Introduction to OpenMP. Directive formats. Parallel zone creation. | |
10) | OpenMP applications. Print two arrays on the aggregate screen. | |
11) | OpenMP applications. Different threads by different threads. A simple program that shows how to do. | |
12) | OpenMP Application Project | |
13) | GPU programming basics. | |
14) | Project Presentations. | |
15) | Final exam |
Course Notes / Textbooks: | P. Pacheco, An Introduction to Parallel Programming . Morgan Kaufmann, 2011 |
References: | P. L. Gribble, C Programming Boot Camp, Advanced Topics, A2. Parallel Programming in C. [Online]. Available: https://gribblelab.org/CBootCamp/A2_Parallel_Programming_in_C N. Matloff, Programming on Parallel Machines : GPU, Multicore, Clusters and More. Davis, CA: University of California. pp. 119–156. [Online]. Available: heather.cs.ucdavis.edu/~matloff/158/PLN/ParProcBook.pdf |
Course Learning Outcomes | 1 |
2 |
3 |
4 |
5 |
||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Program Outcomes | |||||||||||||
1) He gains the ability of problem solving and analytical thinking skills. | |||||||||||||
2) He learns the fundamentals of computer programming, hardware and software and the basic computer concepts. | |||||||||||||
3) He develops algorithms according to the problems, gains the ability to distinguish the appropriate ones from the fundamental algorithms for the problem. | |||||||||||||
4) He understands object-oriented programming concept and web programming. | |||||||||||||
5) He learns radix systems, fundamental electronics and computer hardware knowledge. | |||||||||||||
6) He gains mobile programming skills and develops applications for mobile platforms. | |||||||||||||
7) He designs and codes databases. | |||||||||||||
8) He learns to program and use computer networks, open source operating systems. | |||||||||||||
9) He uses the English language effectively. | |||||||||||||
10) He learns to use appropriate data structures according to programming requirements. | |||||||||||||
11) He develops software individually or as a team. | |||||||||||||
12) He follows developments in the field, high technology tools / applications. | |||||||||||||
13) He gains awareness of professional and ethical responsibility and has an awareness of professional ethics. |
No Effect | 1 Lowest | 2 Average | 3 Highest |
Program Outcomes | Level of Contribution | |
1) | He gains the ability of problem solving and analytical thinking skills. | 2 |
2) | He learns the fundamentals of computer programming, hardware and software and the basic computer concepts. | 2 |
3) | He develops algorithms according to the problems, gains the ability to distinguish the appropriate ones from the fundamental algorithms for the problem. | 2 |
4) | He understands object-oriented programming concept and web programming. | 2 |
5) | He learns radix systems, fundamental electronics and computer hardware knowledge. | 2 |
6) | He gains mobile programming skills and develops applications for mobile platforms. | 2 |
7) | He designs and codes databases. | 2 |
8) | He learns to program and use computer networks, open source operating systems. | 2 |
9) | He uses the English language effectively. | 2 |
10) | He learns to use appropriate data structures according to programming requirements. | 2 |
11) | He develops software individually or as a team. | 2 |
12) | He follows developments in the field, high technology tools / applications. | 2 |
13) | He gains awareness of professional and ethical responsibility and has an awareness of professional ethics. | 2 |
Semester Requirements | Number of Activities | Level of Contribution |
Project | 1 | % 40 |
Final | 1 | % 60 |
total | % 100 | |
PERCENTAGE OF SEMESTER WORK | % 40 | |
PERCENTAGE OF FINAL WORK | % 60 | |
total | % 100 |
Activities | Number of Activities | Preparation for the Activity | Spent for the Activity Itself | Completing the Activity Requirements | Workload | ||
Course Hours | 2 | 15 | 1 | 32 | |||
Project | 1 | 25 | 1 | 26 | |||
Final | 1 | 25 | 2 | 27 | |||
Total Workload | 85 |