MYO050 Paralel Programlama Temelleri (C)İstinye ÜniversitesiAkademik Programlar Bilgisayar Programcılığı (İÖ)Öğrenciler için Genel BilgiDiploma EkiErasmus BeyanıUlusal Yeterlilikler
Bilgisayar Programcılığı (İÖ)

Önizleme

Önlisans TYYÇ: 5. Düzey QF-EHEA: Kısa Düzey EQF-LLL: 5. Düzey

Ders Genel Tanıtım Bilgileri

Ders Kodu: MYO050
Ders İsmi: Paralel Programlama Temelleri (C)
Ders Yarıyılı: Güz
Bahar
Ders Kredileri:
AKTS
3
Öğretim Dili: Turkish
Ders Koşulu:
Ders İş Deneyimini Gerektiriyor mu?: Hayır
Dersin Türü: Bölüm/Program Seçmeli
Dersin Seviyesi:
Önlisans TYYÇ:5. Düzey QF-EHEA:Kısa Düzey EQF-LLL:5. Düzey
Dersin Veriliş Şekli: Yüz yüze
Dersin Koordinatörü: Öğr. Gör. AHMET SELİM ÖVER
Dersi Veren(ler): Öğr. Gör. Ahmet Selim Över
Dersin Yardımcıları:

Dersin Amaç ve İçeriği

Dersin Amacı: Paralel programlama, bilgisini artırmak, mantığını kavramak ve becerilerini geliştirmek amacıyla çeşitli paralel programlama teknikleri ve konseptleri üzerine odaklanan bir öğrenme sürecidir. Bu alanda edinilen bilgi, paralel programlama paradigmalarını anlama ve uygulama yeteneğini geliştirmeyi hedefler. Aynı zamanda, çoklu işlemlerin ve iş parçacıklarının etkili bir şekilde yönetilmesi, kaynakların verimli bir şekilde kullanılması ve paralel hesaplama modellerinin anlaşılması gibi konular üzerine odaklanarak, paralel programlama becerilerini artırmayı amaçlar.
Dersin İçeriği: C programlama dili kullanılarak, bilgisayar programcılığında belirli bir deneyime sahip olan öğrencilere, paralel programlama temelleri ile düşünmeye ve bunun yanı sıra paralel kod yazma becerisi geliştirebilmelerini hedefleyen bir derstir. Derste MPI, OpenMP gibi paralel programlama kütüphanelerinden yararlanılıp, etkin kullanımları uygulamalı olarak öğretilecektir. Dersler interaktif bir şekilde, sınıf içi alıştırmalarla desteklenerek ve öğretim elemanının aktif destekleriyle işlenecektir.

Öğrenme Kazanımları

Bu dersi başarıyla tamamlayabilen öğrenciler;
1) Bilişimsel problemleri anlamaya ve bilgisayar yardımıyla paralel çözmeye yönelik temel beceriler.
2) Temel paralel programlama araçlarını kullanabilme becerisi
3) C programlama diliyle programlama teknikleri.
4) Dağıtık bellekli sistemlerde paralel programlama becerisi.
5) Paylaşım bellekli sistemlerde paralel programlama becerisi.

Ders Akış Planı

Hafta Konu Ön Hazırlık
1) Dersin tanıtımı, Paralel Programlama temel kavramlar.
2) Paralel programlama terminolojisi, von Neumann mimarisi, Flynn's Taksonomi kavramları.
3) Donanım ve Yazılım seviyesinde paralel yapılar. Ortak bellek (OpenMP) ve dağıtık bellek (MPI) kavramları.
4) MPI’a giriş. Printf “Hello World, ben processor 0” “Hello World, ben processor 1”
5) MPI’ Point to Point iletişim. Send Recv uygulamaları.
6) MPI uygulamaları. Kollektif iletişim Bcast Reduce uygulamaları.
7) MPI uygulamaları. Kollektif iletişim Scatter Gather uygulamaları.
8) MPI Uygulama Projesi
9) OpenMP’ye giriş. Directive formatları. Paralel bölge açma.
10) OpenMP uygulamaları. İki array toplama ekrana yazdırma.
11) OpenMP uygulamaları. Farklı iş parçacıkları tarafından farklı çalışma bloklarının yapılacağını gösteren basit bir program.
12) OpenMP Uygulama Projesi
13) GPU programlama temelleri.
14) Proje Sunumları.
15) Final sınav

Kaynaklar

Ders Notları / Kitaplar: P. Pacheco, An Introduction to Parallel Programming . Morgan Kaufmann,
2011
Diğer Kaynaklar: 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

Ders - Program Öğrenme Kazanım İlişkisi

Course Learning Outcomes

1

2

3

4

5

Program Kazanımları
1) Problem çözme ve analitik düşünme yeteneklerini kazanır.
2) Bilgisayar programlama, donanım ve yazılım temellerini, temel bilgisayar kavramlarını öğrenir.
3) Problemlere göre algoritmalar geliştirir, temel algoritmalardan problemine uygun olanları ayırt etme becerisi kazanır.
4) Nesneye yönelik programlama konseptini ve web programlamayı kavrar.
5) Sayı tabanı sistemleri, temel elektronik ve bilgisayar donanımı bilgisini öğrenir.
6) Mobil programlama becerisi edinir, mobil platformlar için uygulamalar geliştirir.
7) Veritabanı tasarım ve kodlamasını yapar.
8) Bilgisayar ağları, açık kaynak kodlu işletim sistemleri programlamayı ve kullanmayı öğrenir.
9) İngilizce dilini etkin bir biçimde kullanır.
10) Programlamanın ihtiyaçlarına göre uygun veri yapıları kullanmayı öğrenir.
11) Bireysel ya da takım olarak yazılım geliştirir.
12) Alanındaki gelişmeleri, son teknoloji araçlarını/uygulamalarını takip eder.
13) Mesleki ve etik sorumluluk bilinci kazanır, meslek etiği farkındalığına sahiptir.

Ders - Öğrenme Kazanımı İlişkisi

Etkisi Yok 1 En Düşük 2 Orta 3 En Yüksek
       
Dersin Program Kazanımlarına Etkisi Katkı Payı
1) Problem çözme ve analitik düşünme yeteneklerini kazanır. 2
2) Bilgisayar programlama, donanım ve yazılım temellerini, temel bilgisayar kavramlarını öğrenir. 2
3) Problemlere göre algoritmalar geliştirir, temel algoritmalardan problemine uygun olanları ayırt etme becerisi kazanır. 2
4) Nesneye yönelik programlama konseptini ve web programlamayı kavrar. 2
5) Sayı tabanı sistemleri, temel elektronik ve bilgisayar donanımı bilgisini öğrenir. 2
6) Mobil programlama becerisi edinir, mobil platformlar için uygulamalar geliştirir. 2
7) Veritabanı tasarım ve kodlamasını yapar. 2
8) Bilgisayar ağları, açık kaynak kodlu işletim sistemleri programlamayı ve kullanmayı öğrenir. 2
9) İngilizce dilini etkin bir biçimde kullanır. 2
10) Programlamanın ihtiyaçlarına göre uygun veri yapıları kullanmayı öğrenir. 2
11) Bireysel ya da takım olarak yazılım geliştirir. 2
12) Alanındaki gelişmeleri, son teknoloji araçlarını/uygulamalarını takip eder. 2
13) Mesleki ve etik sorumluluk bilinci kazanır, meslek etiği farkındalığına sahiptir. 2

Ölçme ve Değerlendirme

Yarıyıl İçi Çalışmaları Aktivite Sayısı Katkı Payı
Projeler 1 % 40
Final 1 % 60
Toplam % 100
YARIYIL İÇİ ÇALIŞMALARININ BAŞARI NOTU KATKISI % 40
YARIYIL SONU ÇALIŞMALARININ BAŞARI NOTUNA KATKISI % 60
Toplam % 100

İş Yükü ve AKTS Kredisi Hesaplaması

Aktiviteler Aktivite Sayısı Aktiviteye Hazırlık Aktivitede Harçanan Süre Aktivite Gereksinimi İçin Süre İş Yükü
Ders Saati 2 15 1 32
Proje 1 25 1 26
Final 1 25 2 27
Toplam İş Yükü 85