Bu dersin amacı, paralel ve dağıtık programlama temellerini tanıtmaktır. Bu ders paralel / dağıtıık uygulamalar geliştirme ile ilgili temel algoritmik, programlama ve yazılım mühendisliği konularında yoğunlaşacaktır.
Ön Koşullar
-
Eş Koşullar
-
Özel Koşullar
-
Öğretim Üyeleri
Assoc. Prof. Dr. Akhan AKBULUT
Asistanlar
Ders Gün,Saat ve Yeri
Ders bu dönem açılmamaktadır.
Görüşme Saatleri ve Yeri
Ders bu dönem açılmamaktadır.
Öğretim Yöntem ve Teknikleri
Ders sınıfta ppt slaytlar kullanarak teknik konularda sözlü sunumlar ile ilk öğretim üyesi tarafından yapılacaktır, sonrasında çalışma laboratuvarda çeşitli paralel ve dağıtık uygulamalar gerçekleştirilecektir.
Temel Kaynaklar
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
Diğer Kaynaklar
-
Haftalık Ders Programı
Hafta
Dersin İçeriği
Öğretim Yöntem ve Teknikleri
1. Hafta
Giriş: dağıtık sistem tanımı, hedefleri; donanım kavramları; yazılım kavramları; istemci-sunucu modeli.
Sözlü anlatım, Laboratuvar
2. Hafta
İletişim: Katmanlı protokoller, uzaktan yordam çağrısı, uzak nesne çağırma; mesaj odaklı iletişim; akışı odaklı iletişim.
Sözlü anlatım, Laboratuvar
3. Hafta
Prosesler: Threadler, istemciler, sunucular, kod taşınması ve yazılım ajanları
Sözlü anlatım, Laboratuvar
4. Hafta
Adlandırma: Nesne adlandırılmasım; mobil varlıkların bulması; referansı olmayan nesnelerin kaldırılması
Sözlü anlatım, Laboratuvar
5. Hafta
Senkronizasyon: Saat senkronizasyonu; mantıksal saatler, küresel devlet, seçim algoritmaları, karşılıklı dışlama, dağıtık iletiler
Sözlü anlatım, Laboratuvar
6. Hafta
Tutarlılık ve Replikasyon: Veri merkezli tutarlılık modelleri, müşteri odaklı bir tutarlılık modelleri; dağıtım protokolleri; tutarlılık protokolleri; örnekler.
Sözlü anlatım, Laboratuvar
7. Hafta
Hata Toleranıs: Hata toleransına giriş; süreç esnekliği; güvenilir istemci-sunucu iletişimi; güvenilir grup iletişimi, dağıtık tamamlama; kurtarma.
Sözlü anlatım, Laboratuvar
8. Hafta
Güvenlik: güvenlik, güvenli kanallar, erişim kontrol, güvenlik yönetimi.
Sözlü anlatım, Laboratuvar
9. Hafta
Dağıtık Nesne Tabanlı Sistemler: CORBA; Dağıtık COM, Küre, CORBA karşılaştırılması, Dağıtık COM ve Küre
Sözlü anlatım, Laboratuvar
10. Hafta
Dağıtılmış Dosya Sistemleri: SUN ağ dosya sistemi; CODA dosya sistemi, diğer dağıtık dosya sistemleri, dağıtık dosya sistemlerinin karşılaştırılması.
Sözlü anlatım, Laboratuvar
11. Hafta
World Wide Web: Web Genel organizasyon, belge, model, belge türleri, mimari bakış, iletişim, namimg, senkronizasyon, güvenlik
Sözlü anlatım, Laboratuvar
12. Hafta
13. Hafta
14. Hafta
15. Hafta
16. Hafta
17. Hafta
Değerlendirme Ölçütleri
Ölçüt Tipleri
Adet
Yüzdesi(%)
Ara sınav(lar)
2
40
Ödevler / Dönem Ödevi / Sunum
1
20
Final
1
40
ÖÇ-1
Dağıtık sistemlerin donanım ve yazılım kavramlarının anlaşılması
ÖÇ-2
Uzaktan yordam çağrısı, uzaktan nesne çağırma, mesaj-odaklı iletişim ve dere-odaklı iletişim gibi iletişim protokollerin anlaşılması.
ÖÇ-3
Thread, istemci, sunucu ve yazılım ajanı sorunlarının pratik olarak tanımlanması ve uygulama yeteneğine sahip olunması
ÖÇ-4
Dünya çapında bir dağıtık sistemin adlandırma sorunlarının anlaşılması
ÖÇ-5
Dünya çapında bir dağıtık sistemin senkronizasyon sorunlarının anlaşılması
ÖÇ-6
Replikasyon ve ver tutarlılığı modellerinin anlaşılması
ÖÇ-7
Güvenilir bir istemci-sunucu ve grup iletişimini pratik olarak tanımlanması ve uygulama yeteneğine sahip olunması
ÖÇ-8
Basit bir dağıtık nesne tabanlı bir sistem geliştirilmesi
ÖÇ-9
Dağıtık dosya sistemlerinin anlaşılması.
Program Çıktıları
PÇ-1
Matematik, fen bilimleri ve ilgili mühendislik disiplinine özgü konularda yeterli bilgi birikimi; bu alanlardaki kuramsal ve uygulamalı bilgileri, karmaşık mühendislik problemlerinde kullanabilme becerisi.
PÇ-2
Karmaşık mühendislik problemlerini saptama, tanımlama, formüle etme ve çözme becerisi; bu amaçla uygun analiz ve modelleme yöntemlerini seçme ve uygulama becerisi.
PÇ-3
Karmaşık bir sistemi, süreci, cihazı veya ürünü gerçekçi kısıtlar ve koşullar altında, belirli gereksinimleri karşılayacak şekilde tasarlama becerisi; bu amaçla modern tasarım yöntemlerini uygulama becerisi.
PÇ-4
Mühendislik uygulamalarında karşılaşılan karmaşık problemlerin analizi ve çözümü için gerekli olan modern teknik ve araçları geliştirme, seçme ve kullanma becerisi; bilişim teknolojilerini etkin bir şekilde kullanma becerisi.
PÇ-5
Karmaşık mühendislik problemlerinin veya disipline özgü araştırma konularının incelenmesi için deney tasarlama, deney yapma, veri toplama, sonuçları analiz etme veyorumlama becerisi.
PÇ-6
Disiplin içi ve çok disiplinli takımlarda etkin biçimde çalışabilme becerisi; bireysel çalışma becerisi.
PÇ-7
Sözlü ve yazılı etkin iletişim kurma becerisi; en az bir yabancı dil bilgisi; etkin rapor yazma ve yazılı raporları anlama, tasarım ve üretim raporları hazırlayabilme, etkin sunum yapabilme, açık ve anlaşılır talimat verme ve alma becerisi.
PÇ-8
Yaşam boyu öğrenmenin gerekliliği bilinci; bilgiye erişebilme, bilim ve teknolojideki
gelişmeleri izleme ve kendini sürekli yenileme becerisi.
PÇ-9
Etik ilkelerine uygun davranma, mesleki ve etik sorumluluk bilinci; mühendislik uygulamalarında kullanılan standartlar hakkında bilgi.
PÇ-10
Proje yönetimi, risk yönetimi ve değişiklik yönetimi gibi, iş hayatındaki uygulamalar hakkında bilgi; girişimcilik, yenilikçilik hakkında farkındalık; sürdürülebilir kalkınma hakkında bilgi.
PÇ-11
Mühendislik uygulamalarının evrensel ve toplumsal boyutlarda sağlık, çevre ve güvenlik üzerindeki etkileri ve çağın mühendislik alanına yansıyan sorunları hakkında bilgi;mühendislik çözümlerinin hukuksal sonuçları konusunda farkındalık.