Ana içeriğe atla

BIM 222 - Algoritma Analizi

Mühendislik ve Doğa Bilimleri Fakültesi · Yazılım Mühendisliği (%30 İngilizce) · Lisans

AKTS: 6 T+U+L: 2+0+1 Zorunlu
Koordinatör: Dr. Öğr. Üyesi Rezzan Nisa ER

Dersin Amacı

Bu dersin amacı, öğrencilere algoritmaların tasarlanması, doğruluğunun değerlendirilmesi ve çalışma verimliliğinin analiz edilmesi konusunda temel bilgi ve beceriler kazandırmaktır. Ders kapsamında zaman ve bellek karmaşıklığı, asimptotik notasyonlar, arama ve sıralama algoritmaları, özyinelemeli algoritmalar, açgözlü algoritmalar, böl ve fethet yaklaşımı, dinamik programlama ve graf algoritmaları gibi temel konular ele alınarak öğrencilerin farklı problemlere uygun algoritmaları seçebilmesi, karşılaştırabilmesi ve performans açısından değerlendirebilmesi hedeflenmektedir.

Ders İçeriği

Algoritma kavramı ve algoritma analizi, asimptotik gösterimler (Big-O, Θ, Ω), zaman ve alan karmaşıklığı analizi, sıralama algoritmaları ve karmaşıklıklarının incelenmesi, arama algoritmaları ve en iyi-ortalama-en kötü durum analizleri, ikili ağaç tabanlı algoritmaların zaman karmaşıklığı, grafik temsilleri ve graf tabanlı algoritmalar (BFS, DFS, en kısa yol ve minimum kapsayan ağaç algoritmaları), açgözlü (greedy) algoritma yaklaşımı ve uygulamaları.

Zorunlu Kaynaklar

Asıl:  Introduction to Algorithms 3th Edition, Thomas H Cormen (Author), Charles E Leiserson

Yardımcı : The Algorithm Design Manual, S. S. Skiena, 2008., Veri Yapıları ve Algoritmalar Rıfat Çölkesen

Dersin Öğrenme Çıktıları

  1. Graf tabanlı algoritmaları uygular.
  2. Açgözlü (Greedy) algoritma yaklaşımını tanımlar.
  3. Algoritma ve algoritma analizi kavramlarını tanımlar.
  4. Algoritmaların zaman karmaşıklığını hesaplar.
  5. Algoritmaların alan karmaşıklığını hesaplar.
  6. Sıralama algoritmalarının zaman karmaşıklığını analiz eder.
  7. Arama algoritmalarının en iyi, ortalama ve en kötü durum karmaşıklıklarını hesaplar.
  8. Arama algoritmalarının en iyi, ortalama ve en kötü durum karmaşıklıklarını hesaplar.

Temel Alan Dağılımı

(46) Matematik ve İstatistik%40 (48) Bilgisayar%60

Öğretim Yöntem ve Teknikleri

AnlatımSoru-CevapTartışmaAlıştırma ve UygulamaProblem Çözme

Ölçme ve Değerlendirme

Sınav (Yazılı Sınav / Test: Doğru-Yanlış Testi, Çoktan Seçmeli Testi, Kısa Cevaplı Test, Eşleştirmeli Test)

AKTS / İş Yükü

EtkinlikSayıSüre (saat)Toplam İş Yükü
Ders Süresi (Sınav Haftası Dahil)000
Sınıf Dışı Ders Çalışma Süresi000
Ara Sınav000
Kısa Sınav000
Ödev000
Uygulama000
Final000

Ders Akışı

HaftaKonuÖn Hazırlık
1Algoritma Analizine Giriş.
2Asimptotik Notasyon ve Büyüme Sıraları.
3Döngülerle Zaman Karmaşıklığı (Kod Analizi, İç içe döngüler).
4Rekürsif Algoritmalar, Rekürans Bağıntıları.
5Alan Karmaşıklığı Analizi.
6Sıralama Algoritmaları I (Kabarcık Sıralama, Seçmeli Sıralama, Ekleme Sıralaması).
7Sıralama Algoritmaları II (Kabuk Sıralama, Quick Sort, Birleştirmeli Sıralama).
8Ara Sınav.
9Arama Algoritmaları I (Doğrusal Arama, İkili Arama, Ara Değerle Arama).
10Arama Algoritmaları II (BST üzerinde arama, Dengeli ağaçlarda arama).
11Graf Gösterimi ve Uygulamaları.
12Graf Uygulamaları (En Kısa Yol Problemleri; Dijkstra, Bellman-Ford).
13Gezgin satıcı Problemi, Şebeke Akış Problemi.
14Açgözlü Algoritmalar I (Huffman, Kruskal).
15Açgözlü Algoritmalar II (Prim, Sollin).
16Final Sınavı.