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 509 Bahar 03+00+00 Seçmeli 3 8.0
Akademik Birim: Bilgisayar Mühendisliği Bölümü
Öğrenim Türü: Örgün
Ön Koşullar Giriş programlama bilgisi, Ayrık Hesaplama Yapıları, Veri yapıları
Öğrenim Dili: İngilizce
Dersin Düzeyi: Yüksek Lisans
Dersin Koordinatörü: Bahar Delibaş
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
  • 6- Algoritma doğruluğu ve verimliliğini sınamaya yönelik hesapsal deneylerin tasarımı 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 1, 3
4 Asimtotik notasyon, yaygın fonksiyonlar 3
5 Tekrar bağıntılarını çözme, yaygın tekrar bağıntıları 1,4
6 Randomize algoritmalar ve örneği: Quicksort, ortalama zaman analizi 2,3
7 Sınav1, çözümlerin tartışılmasıLineer zamanda sıralama ve Countingsort algoritması, Enformasyon-teorik altsınırlar 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ı (%)
Katılım - -
Laboratuvar - -
Uygulama - -
Arazi Çalışması - -
Proje - -
Ödev 6 30
Sunum/Jüri - -
Derse Özgü Staj - -
Diğer Uygulamalar (seminer, stüdyo kritiği, workshop vb.) - -
Dersle İlgili Sınıf Dışı Etkinlikler (okuma, bireysel çalışma vb.) - -
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
Laboratuvar000
Uygulama000
Arazi Çalışması000
Proje11010
Ödev6954
Sunum/Jüriye Hazırlık000
Derse Özgü Staj000
Diğer Uygulamalara Hazırlık000
Dersle İlgili Sınıf Dışı Etkinlikler10990
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                  
OC2 2 3 3 2 2              
OC3 2 3 3 2 2              
OC4 2 3 3 2 2              
OC5 2 3 3 2 2 1            
OC6 2 3 3 3 3              
Dersin Adı Kodu Yarıyıl T+U+L (saat/hafta) Türü (Z / S) Yerel Kredi AKTS
Algoritma Tasarım ve Analizi CE 509 Bahar 03+00+00 Seçmeli 3 8.0
Akademik Birim: Bilgisayar Mühendisliği Bölümü
Öğrenim Türü: Örgün
Ön Koşullar Giriş programlama bilgisi, Ayrık Hesaplama Yapıları, Veri yapıları
Öğrenim Dili: İngilizce
Dersin Düzeyi: Yüksek Lisans
Dersin Koordinatörü: Bahar Delibaş
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
  • 6- Algoritma doğruluğu ve verimliliğini sınamaya yönelik hesapsal deneylerin tasarımı 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 1, 3
4 Asimtotik notasyon, yaygın fonksiyonlar 3
5 Tekrar bağıntılarını çözme, yaygın tekrar bağıntıları 1,4
6 Randomize algoritmalar ve örneği: Quicksort, ortalama zaman analizi 2,3
7 Sınav1, çözümlerin tartışılmasıLineer zamanda sıralama ve Countingsort algoritması, Enformasyon-teorik altsınırlar 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ı (%)
Katılım - -
Laboratuvar - -
Uygulama - -
Arazi Çalışması - -
Proje - -
Ödev 6 30
Sunum/Jüri - -
Derse Özgü Staj - -
Diğer Uygulamalar (seminer, stüdyo kritiği, workshop vb.) - -
Dersle İlgili Sınıf Dışı Etkinlikler (okuma, bireysel çalışma vb.) - -
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
Laboratuvar000
Uygulama000
Arazi Çalışması000
Proje11010
Ödev6954
Sunum/Jüriye Hazırlık000
Derse Özgü Staj000
Diğer Uygulamalara Hazırlık000
Dersle İlgili Sınıf Dışı Etkinlikler10990
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                  
OC2 2 3 3 2 2              
OC3 2 3 3 2 2              
OC4 2 3 3 2 2              
OC5 2 3 3 2 2 1            
OC6 2 3 3 3 3