Bilgisayar Mühendisliği (İngilizce)
Lisans TYYÇ: 6. Düzey QF-EHEA: 1. Düzey EQF-LLL: 6. Düzey

Ders Genel Tanıtım Bilgileri

Ders Kodu: COMP4033
Ders İsmi: Parallel and Distributed Systems
Ders Yarıyılı: Güz
Ders Kredileri:
Teorik Pratik Kredi AKTS
2 2 3 6
Öğretim Dili: EN
Ders Koşulu:
Ders İş Deneyimini Gerektiriyor mu?: Hayır
Dersin Türü: Alan Seçmeli
Dersin Seviyesi:
Lisans TYYÇ:6. Düzey QF-EHEA:1. Düzey EQF-LLL:6. Düzey
Dersin Veriliş Şekli: Yüz yüze
Dersin Koordinatörü: Dr.Öğr.Üyesi Osman SELVİ
Dersi Veren(ler):
Dersin Yardımcıları:

Dersin Amaç ve İçeriği

Dersin Amacı: Paralel ve dağıtılmış bilişim tekniklerini ve yöntemlerini öğrenmek, geliştirebilmek ve uygulayabilmek
Paralel ve dağıtılmış sistemlerin tasarımını, geliştirmesini, ve performans analizini yapabilmek
Temel bilgisayar bilimleri yöntemleri ve algoritmalarının paralel ve dağıtılmış mimarilerde nasıl uygulanacağını öğrenmek
Dersin İçeriği: Paralel ve dağıtılmış bilişim kavramları
Paylaşımlı bellek modelleri
Döngü ve görev-düzeyi paralellik
Bellek bağdaşımı, eşzamanlılık, önbellek uyumlu çoklu işlemciler
Dağıtık bellek modelleri
Mesaj geçiş modeli, MPI
Dağıtık ağ topolojileri, yönlendirme ve akış kontrolü
Dağıtık depolama sistemleri

Öğrenme Kazanımları

Bu dersi başarıyla tamamlayabilen öğrenciler;
Öğrenme Kazanımları
1 - Bilgi
Kuramsal - Olgusal
1) Öğrenci, paralel ve dağıtılmış sistemlere ilişkin donanım mimarilerini tanımlayabilir
2 - Beceriler
Bilişsel - Uygulamalı
1) Öğrenci, görev ve veri paralelliği içeren paralel çözümleme stratejilerini kıyaslayabilir ve uygulayabilir
2) Öğrenci, paylaşımlı belleğe dayalı çoklu-işlemler için ve mesaj geçişli dağıtık sistemler için yazılım geliştirebilir
3 - Yetkinlikler
İletişim ve Sosyal Yetkinlik
Öğrenme Yetkinliği
Alana Özgü Yetkinlik
1) Öğrenci, paralel ve dağıtılmış sistemlerde performans ölçümleri, performans ayarı ve performans raporlaması yapabilir
Bağımsız Çalışabilme ve Sorumluluk Alabilme Yetkinliği

Ders Akış Planı

Hafta Konu Ön Hazırlık
1) Paralel bilişim sistemlerine genel bakış
2) Paylaşımlı bellek modelleri, PRAM ve iş-zaman modeli
3) Paralel bellek hiyerarşisi ve yerelliği, UMA, NUMA ve CC-NUMA paylaşımlı bellek mimarileri
4) Döngü-düzeyi paralellik, OpenMP ile döngü iterasyon dağılımı, performans ölçümü ve ayarı
5) Görev-düzeyi paralellik, çalışma-zamanı görev planlama ve yük dengeleme, iç içe geçmiş paralellik
6) Bellek bağdaşımı ve tutarlılık, eş-zamanlılık ve karşılıklı dışlama işlemlerinin önbellek uyumlu çoklu mikroişlemcilerde uygulanması
7) Heterojen işleme modelleri, hesaplamalı hızlandırıcılar, Nvidia GPU mimarisi, programlama ve performans analizi
8) Yarıyıl içi sınavları
9) Dağıtık bellek modelleri, yığılmış eşzamanlı işlem modelleri, algoritma tasarımı, iletişim maliyet ölçümü, performans kestirimi ve performans ölçümü
10) Bölümlenmiş global adres alanı modeli, tek taraflı iletişim, veri dağılımı, UPC
11) Mesaj geçme modeli, SPMD programlama, Mesaj Geçiş Arayüzü (MPI), kolektif iletişim
12) Bağlantı ağları, topoloji ve performans ölçütleri, yönlendirme ve akış kontrolü
13) Dağıtık depolama sistemleri ve programlama modelleri, Hadoop, Spark
14) Bulut bilişim uygulamaları, örnekler
15) Bulut bilişim uygulamaları, örnekler
16) Final Sınavı

Kaynaklar

Ders Notları / Kitaplar: Distributed Systems: Principles and Paradigms, Andrew S. Tanenbaum & Maarten van Steen
Diğer Kaynaklar: Distributed and Cloud Computing: Clusters, Grids, Clouds, and the Future Internet (DCC), Kai Hwang, Jack Dongarra & Geoffrey C. Fox

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

Ders Öğrenme Kazanımları

1

2

3

4

Program Kazanımları
1) Mühendislik Bilgisi: Matematik, fen bilimleri ve bilgisayar mühendisliği alanına özgü temel bilgi ve becerilere sahiptir; bu bilgileri karmaşık mühendislik problemlerinin çözümünde etkin bir şekilde kullanır. ve yenilikçi çözümler geliştirerek inovasyon süreçlerine katkıda bulunur.
2) Problem Analizi: Temel bilim, matematik ve mühendislik bilgilerini kullanarak karmaşık bilgisayar mühendisliği problemlerini tanımlar, analiz eder ve çözer. Bu süreçte, yenilikçi ve sürdürülebilir bilişim çözümleri geliştirirken, enerji tasarruflu sistemler ve verimli algoritmalar tasarlar. Güvenilir, ölçeklenebilir ve dayanıklı dijital altyapılar oluştururken, veri güvenliği, etik yapay zeka kullanımı ve dijital erişilebilirlik gibi toplumsal ve ekonomik etkileri gözetir. Uygun modelleme ve analiz yöntemlerini seçerek bu ilkeleri etkin bir şekilde uygular.
3) Mühendislik Tasarımı: Gerçek dünyadaki kısıtlar ve gereksinimler doğrultusunda bir sistemi, süreci, cihazı veya ürünü tasarlayabilir; bu süreçte yenilikçi çözümler geliştirerek, modern mühendislik yöntemlerini uygular ve inovasyon süreçlerine katkıda bulunur.
4) Teknik ve Araçların Kullanımı: Mühendislik uygulamalarında karşılaşılan problemleri çözmek için modern teknikleri, bilişim teknolojilerini ve mühendislik araçlarını etkin bir şekilde seçer ve kullanır.
5) Araştırma ve İnceleme: Bilimsel araştırma yöntemlerini ve deneysel tasarımları anlayarak, deney tasarlayabilir ve gerçekleştirebilir, veri toplayabilir ve sonuçları analiz ederek bilimsel temellere dayalı yorum yapabilir.
6) Mühendislik Uygulamalarının Küresel Etkisi: Bilgisayar mühendisliği çözümlerinin sağlık, güvenlik, ekonomi, sürdürülebilirlik ve çevre üzerindeki etkilerini değerlendirir. Enerji verimli sistemler, sürdürülebilir dijital altyapılar ve çevre dostu yazılım geliştirmeye odaklanarak, küresel kalkınma hedeflerine katkı sağlamak için derinlemesine bilgi sahibidir. Yapay zeka, büyük veri ve dijital güvenlik gibi alanlardaki mühendislik uygulamalarının toplumsal etkilerini dikkate alır ve etik sorumluluklar konusunda farkındalık geliştirir.
7) Etik Davranış: Mühendislik mesleğinin etik ilkelerine uygun hareket eder ve topluma, çevreye ve insanlığa karşı mesleki sorumluluk bilinciyle kararlar alır ve uygular.
8) Bireysel ve Takım Çalışması: Bireysel olarak ve disiplin içi ya da çok disiplinli takımlarda, farklı kültürlerden ve dillerden takım üyeleriyle, yazılı, sözlü ve görsel iletişimde, hem Türkçe hem de İngilizce yetkin bir şekilde çalışabilir; uzaktan, yüz yüze veya karma modellerde takım üyesi ya da lider olarak projeleri başarıyla yönetebilir.
9) İletişim Becerileri: Hedef kitlenin eğitim, dil ve mesleki farklılıklarını dikkate alarak, teknik konularda sözlü, yazılı ve görsel olarak etkili iletişim kurabilir.
10) Proje Yönetimi ve İş Hayatı Uygulamaları: Proje yönetimi, risk analizi, ekonomik yapılabilirlik analizi ve değişim yönetimi gibi iş süreçlerine hâkimdir; girişimcilik, yenilikçilik ve sürdürülebilirlik konularında farkındalık sahibidir.
11) Yaşam Boyu Öğrenme: Bağımsız ve sürekli öğrenmenin önemini kavrar; bilgiye erişim yollarını kullanarak bilimsel ve teknolojik gelişmeleri takip eder ve kendini sürekli yeniler.

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

Etkisi Yok 1 En Düşük 2 Düşük 3 Orta 4 Yüksek 5 En Yüksek
           
Dersin Program Kazanımlarına Etkisi Katkı Payı
1) Mühendislik Bilgisi: Matematik, fen bilimleri ve bilgisayar mühendisliği alanına özgü temel bilgi ve becerilere sahiptir; bu bilgileri karmaşık mühendislik problemlerinin çözümünde etkin bir şekilde kullanır. ve yenilikçi çözümler geliştirerek inovasyon süreçlerine katkıda bulunur.
2) Problem Analizi: Temel bilim, matematik ve mühendislik bilgilerini kullanarak karmaşık bilgisayar mühendisliği problemlerini tanımlar, analiz eder ve çözer. Bu süreçte, yenilikçi ve sürdürülebilir bilişim çözümleri geliştirirken, enerji tasarruflu sistemler ve verimli algoritmalar tasarlar. Güvenilir, ölçeklenebilir ve dayanıklı dijital altyapılar oluştururken, veri güvenliği, etik yapay zeka kullanımı ve dijital erişilebilirlik gibi toplumsal ve ekonomik etkileri gözetir. Uygun modelleme ve analiz yöntemlerini seçerek bu ilkeleri etkin bir şekilde uygular.
3) Mühendislik Tasarımı: Gerçek dünyadaki kısıtlar ve gereksinimler doğrultusunda bir sistemi, süreci, cihazı veya ürünü tasarlayabilir; bu süreçte yenilikçi çözümler geliştirerek, modern mühendislik yöntemlerini uygular ve inovasyon süreçlerine katkıda bulunur.
4) Teknik ve Araçların Kullanımı: Mühendislik uygulamalarında karşılaşılan problemleri çözmek için modern teknikleri, bilişim teknolojilerini ve mühendislik araçlarını etkin bir şekilde seçer ve kullanır.
5) Araştırma ve İnceleme: Bilimsel araştırma yöntemlerini ve deneysel tasarımları anlayarak, deney tasarlayabilir ve gerçekleştirebilir, veri toplayabilir ve sonuçları analiz ederek bilimsel temellere dayalı yorum yapabilir.
6) Mühendislik Uygulamalarının Küresel Etkisi: Bilgisayar mühendisliği çözümlerinin sağlık, güvenlik, ekonomi, sürdürülebilirlik ve çevre üzerindeki etkilerini değerlendirir. Enerji verimli sistemler, sürdürülebilir dijital altyapılar ve çevre dostu yazılım geliştirmeye odaklanarak, küresel kalkınma hedeflerine katkı sağlamak için derinlemesine bilgi sahibidir. Yapay zeka, büyük veri ve dijital güvenlik gibi alanlardaki mühendislik uygulamalarının toplumsal etkilerini dikkate alır ve etik sorumluluklar konusunda farkındalık geliştirir.
7) Etik Davranış: Mühendislik mesleğinin etik ilkelerine uygun hareket eder ve topluma, çevreye ve insanlığa karşı mesleki sorumluluk bilinciyle kararlar alır ve uygular.
8) Bireysel ve Takım Çalışması: Bireysel olarak ve disiplin içi ya da çok disiplinli takımlarda, farklı kültürlerden ve dillerden takım üyeleriyle, yazılı, sözlü ve görsel iletişimde, hem Türkçe hem de İngilizce yetkin bir şekilde çalışabilir; uzaktan, yüz yüze veya karma modellerde takım üyesi ya da lider olarak projeleri başarıyla yönetebilir.
9) İletişim Becerileri: Hedef kitlenin eğitim, dil ve mesleki farklılıklarını dikkate alarak, teknik konularda sözlü, yazılı ve görsel olarak etkili iletişim kurabilir.
10) Proje Yönetimi ve İş Hayatı Uygulamaları: Proje yönetimi, risk analizi, ekonomik yapılabilirlik analizi ve değişim yönetimi gibi iş süreçlerine hâkimdir; girişimcilik, yenilikçilik ve sürdürülebilirlik konularında farkındalık sahibidir.
11) Yaşam Boyu Öğrenme: Bağımsız ve sürekli öğrenmenin önemini kavrar; bilgiye erişim yollarını kullanarak bilimsel ve teknolojik gelişmeleri takip eder ve kendini sürekli yeniler.

Öğrenme Etkinliği ve Öğretme Yöntemleri

Anlatım
Ders
Grup çalışması ve ödevi
Laboratuvar
Soru cevap/ Tartışma
Uygulama (Modelleme, Tasarım, Maket, Simülasyon, Deney vs.)

Ölçme ve Değerlendirme Yöntemleri ve Kriterleri

Yazılı Sınav (Açık uçlu sorular, çoktan seçmeli, doğru yanlış, eşleştirme, boşluk doldurma, sıralama)
Uygulama
Bireysel Proje
Grup Projesi

Ölçme ve Değerlendirme

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

İş Yükü ve AKTS Kredisi Hesaplaması

Aktiviteler Aktivite Sayısı Süre (Saat) İş Yükü
Ders Saati 13 3 39
Laboratuvar 13 2 26
Sınıf Dışı Ders Çalışması 13 3 39
Proje 1 16 16
Ara Sınavlar 1 12 12
Final 1 12 12
Toplam İş Yükü 144