DERS TANITIM ve UYGULAMA BİLGİLERİ

Dersin Adı Kodu Yarıyıl T+U+L (saat/hafta) Türü (Z / S) Yerel Kredi AKTS
Algoritma Tasarım ve Analizi CE 467 Bahar 03+00+00 Zorunlu 3 8
Akademik Birim: Bilgisayar Mühendisliği Bölümü
Öğrenim Türü: Örgün eğitim
Ön Koşullar Giriş programlama bilgisi, Ayrık Hesaplama Yapıları, Veri yapıları
Öğrenim Dili: İngilizce
Dersin Düzeyi: Lisans
Dersin Koordinatörü: Doğan ÇÖRÜŞ
Dersin Amacı: Bu dersin temel amacı öğrenciye problem çözmenin temelleri ve hesapsal verimlilik ile ilgili gerekli bilgiyi, bilgisayar bilimleri ve hesapsal problemlerde yaygın olarak kullanılan algoritmaların tasarım, hesapsal verimlilik analizi ve gerçekleştirimi becerisini kazandırmaktır.
Dersin İçeriği: Algoritma tasarım ve analizi temel kavramlarına giriş. Temel analiz araçlarına genel bir bakış: Fonksiyonları asimtotik olarak yakınsama, toplamları sınırlama ve tekrar bağıntılarını çözme. Verimli olarak çözülebilen problemlerin böl-çöz, randomizasyon, dinamik programlama, amortizasyon, ve obur buluşsallar gibi tasarım tekniklerine odaklı tartışılması. Çeşitli algoritmik kavramların küme, dizi, çizge gibi yapılarla ilgili problemlerde uygulanması.
Dersin Öğrenme Çıktıları (ÖÇ):
  • 1- Özyinelemeyi bir problem çözme ve programlama tekniği olarak kullanabilme becerisi.
  • 2- Randomizasyon, dinamik programlama, obur buluşsallar gibi teknikleri kullanarak algoritma tasarımı becerisi.
  • 3- Algoritmaların zaman verimliliği analizi becerisi.
  • 4- Kümeler, diziler, çizgeler ve geometrik problemlere yönelik geliştirilmiş algoritmaları anlama becerisi.
  • 5- Algoritma gerçekleştirim ve mühendisliği becerisi
Dersin Öğrenme Yöntem ve Teknikleri Ders anlatımları, katılımlı problem çözme, kodlama projesi


HAFTALIK PROGRAM

HaftaKonularÖn Hazırlık ÖÇ
1 Dersin genel özeti, bilgisayar bilimlerinde algoritmaların rolü
2 Tümevarımsal tasarım ve örneği: Insertionsort, algoritmaların analizi 1, 3
3 Böl-çöz`e dayalı tasarım ve örneği: Mergesort ve analizi. Randomize algoritmalar ve örneği: Quicksort, ortalama zaman analizi. Lineer zamanda sıralama ve Countingsort algoritması, Enformasyon-teorik altsınırlar. 1,2,3,4
4 Asimtotik notasyon, yaygın fonksiyonlar 3
5 Tekrar bağıntılarını çözme, yaygın tekrar bağıntıları 1,4
6 Artımlı ve Özyinelemeli algoritma tasarım tekniklerinin karşılaştırmasına bir örnek: Maksimum Çarpımı/Toplamı Veren Altdizi Problemi. Vize sınavı öncesi problem çözme. 1,3,4
7 Vize Sınavı 1,2,3,4
8 Çizge algoritmaları: Enine Arama 4
9 Çizge algoritmaları: Boyuna Arama 4
10 Dinamik programlama: Çubuk kesme problemi 2
11 Dinamik programlama: Dinamik Programlama Elementleri, En uzun ortak altdizi problemi 2,4
12 Dinamik programlama: Sırt çantası problemi, Pseudo-polinom zamanlı algoritmalar 2,4
13 Obur buluşsallar: Aktivite seçimi 2,4
14 Obur buluşsallar: Huffman kodlaması 2,4


ZORUNLU ve ÖNERİLEN OKUMALAR

Introduction to algorithms, Cormen, Leiserson, Rivest, SteIn, the mit press, 2nd edition, 2001.


DİĞER KAYNAKLAR

Steven Skiena, The Algorithm Design Manual, 2nd Edition. Springer, 2008.


DEĞERLENDİRME SİSTEMİ

Yarıyıl İçi ÇalışmalarıSayıKatkı Payı (%)
Ödev 6 30
Ara Sınavlar/Sözlü Sınavlar/Kısa Sınavlar 1 30
Final Sınavı 1 40
Total: 8 100


İŞ YÜKÜ HESAPLAMASI

EtkinliklerSayısıSüresi (saat)Toplam İş Yükü (saat)
Ders Saati42142
Ödev617102
Dersle İlgili Sınıf Dışı Etkinlikler41352
Ara Sınavlar/Sözlü Sınavlar/Kısa Sınavlar122
Final Sınavı122
Toplam İş Yükü (saat):200


PROGRAM YETERLİLİKLERİ (PY) ve ÖĞRENME ÇIKTILARI (ÖÇ) İLİŞKİSİ

# PY1 PY2 PY3 PY4 PY5 PY6 PY7 PY8 PY9 PY10 PY11 PY12
OC1 2 3 3 2 2              
OC2 2 3 3 2 2              
OC3 2 3 3 2 2              
OC4 2 3 3 2 2              
OC5 2 3 3 2 2