Mühendislik Fakültesi Yazýlým Mühendisliði CE 390 - Algoritma Analizi
DERS TANITIM BÝLGÝLERÝ
Dersin Adý Algoritma Analizi
Kodu Yarýyýl Teori
(saat/hafta)
Uygulama/Laboratuvar (saat/hafta)
Yerel Kredi
AKTS
CE 390 Güz/Bahar 3 0 3 5
Ön Koþullar CE 221 Başarılı olmak (En az DD notu almış olmak)
Dersin Dili İngilizce
Dersin Türü Seçmeli
Dersin Düzeyi Lisans
Dersin Veriliþ þekli -
Dersin Öðretim Yöntem ve Teknikleri
Dersin Koordinatörü * Prof. Dr. Turhan TUNALI
Dersi Veren(ler) -
Dersin Yardýmcýlarý -
Dersin Amacý Dersin amacı gerçek hayat problemlerinden hareketle, farklı alanlarda kullanılabilecek algoritmaların sunulmasıdır. Öğrenciler, bu derste, hesaplama ve optimizasyon
uygulamalarında karşılacakları farklı tasarım ve analiz teknikleri öğreneceklerdir. Açgözlü algoritmalar, bölveyönet tarzı algoritmalar ve dinamik programlama, farklı örnek
uygulamalar üzerinden anlatılacaktır. Yakınlaşık algoritmalar da özellikle yük dengeleme ve küme kaplama problemlerine vurgu yapılarak açıklanacaktır.
Dersin Öðrenme Çýktýlarý Bu dersi başarıyla tamamlayabilen öğrenciler;
* Algoritmaların zaman ve hafıza karmaşıklıklarını analiz edebilecektir,
* Uygun türden problemleri açgözlü algoritmalarla verimli olarak çözebilecektir,
İzmir Ekonomi Üniversitesi | Yönetim Bilgi Sistemleri Müdürlüğü | AKTS ve TYYÇ Kataloğu: https://ects.ieu.edu.tr | 1647786708 Page 1/7
* Bir problemin böl-ve-yönet bir algoritmayla çözülüp çözülemeyeceğini
tartışabilecek ve uygun problemler için böl-ve-yönet algoritması kullanan çözüm yapabilecektir,
* Bir problemin dinamik programlama bir algoritmayla çözülüp çözülemeyeceğini tartışabilecek ve uygun problemler için dinamik programlama algoritması kullanan çözüm yapabilecektir,
* Harcanan zaman ve çözümün optimalliği arasında karşılaştırma yaparak, en optimali bulmak, mümkün değilse, yaklaşık algoritmalar kullanma alternatifini tartışabilecektir.
Dersin Tanýmý Açgözlü algoritmalar, bölveyönet tarzı algoritmalar, dinamik programlama ve yakınlaşık algoritmalar.
Ders Kategorisi Temel Meslek Dersleri
Uzmanlık/Alan Dersleri X
Destek Dersleri
İletişim ve Yönetim Becerileri Dersleri Aktarılabilir Beceri Dersleri
HAFTALIK KONULAR VE ÝLGÝLÝ ÖN HAZIRLIK ÇALIÞMALARI
Hafta16 Konular Ön Hazýrlýk
1 Tanıtım ve motivasyon. Matematik temeller, toplamalar, özyinelemeler, ve fonksiyonların artışı
Cormen Chapter 2, 3, and 4
2 Asimtotik notasyon ve Master teoremi Cormen Chapter 4
3 İkili heapler ve heapsortun analizi Cormen Chapter 6
4 Sıralama teorisi ve diğer karşılaştırma tabanlı sıralama algorithmaları: Merge sort ve quicksortun analizi
Cormen Chapter 7
5 Quicksort algorithmasının en kötü çalışma senaryosu analizi Cormen Chapter 7 6 Doğrusal zamanda sıralama, sıralama için altsınırlar, counting sort, radix sort
bucket sort
Cormen Chapter 8
7 Ortanca ve sıra istatistikleri. Ortanca değer ve sıranın doğrusal zamanda bulunması ve selection algorithması
Cormen Chapter 9
8 Ara Sınav
9 Temel veri yapıları ve ekleme, silme ve güncellemenin çalışma zamanı analizleri Cormen Chapter 10
10 Hash tabloları ve çalışma zamanı analizleri Cormen Chapter 11
11 İkili arama ağaçları ve redblack ağaçları Cormen Chapter 12 and 13
12 Btree ve veri yapılarına ilaveler yapmak Cormen Chapter 18
13 Ortalama çalışma zamanı analizi Cormen Chapter 17
14 Binomial heapler ve fibonazzi heapler Cormen Chapter 19 and 20
15 Dönemin gözden geçirilmesi 16 Final Sınavı
KAYNAKLAR
Ders Kitabý Introduction to Algorithms, 2/eThomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein, ISBN: 9780262533058, MIT PressData Structures and Algorithm Analysis in C++, Mark Allen Weiss, Addision Wesley, Third Edition.
Önerilen Okumalar/Materyaller Data Structures and Algorithm Analysis in C++, Mark Allen Weiss, Addision Wesley, Third Edition, 978-0132847377
Algorithm Design. Jon Kleinberg and Eva Tardos. 2006, Pearson Education, ISBN 0321372913
İzmir Ekonomi Üniversitesi | Yönetim Bilgi Sistemleri Müdürlüğü | AKTS ve TYYÇ Kataloğu: https://ects.ieu.edu.tr | 1647786708 Page 3/7
DEÐERLENDÝRME SÝSTEMÝ
Yarýyýl Aktiviteleri Sayý Katký Payý
Katılım - -
Laboratuvar / Uygulama - -
Arazi Çalışması - -
Küçük Sınavlar/Stüdyo Kritiği - -
Portfolyo - -
Ödev - -
Sunum / Jüri Önünde Sunum - -
Proje 6 30
Seminer/Çalıştay - -
Sözlü Sınav - -
Ara Sınavlar 1 30
Final 1 40
Toplam 8 100
YARIYIL ÝÇÝ AKTÝVÝTELERÝN BAÞARI NOTUNA KATKISI - 60
YARIYIL SONU AKTÝVÝTELERÝN BAÞARI NOTUNA KATKISI - 40
Toplam 0 100
AKTS / ÝÞ YÜKÜ TABLOSU
Yarýyýl Aktiviteleri Sayý Süresi (Saat) Toplam
Ders saati (Sınav haftası dahildir: 16 x toplam ders saati) 16 3 48
Laboratuvar / Uygulama 16 - -
Sınıf Dışı Ders Çalışması 15 4 60
Arazi Çalışması - - -
Küçük Sınavlar / Stüdyo Kritiği - - -
Portfolyo - - -
Ödev - - -
Sunum / Jüri Önünde Sunum - - -
Proje 6 2 12
Seminer / Çalıştay - - -
Sözlü Sınav - - -
Ara Sınavlar 1 10 10
Final 1 20 20
Toplam Ýþ Yükü 150
İzmir Ekonomi Üniversitesi | Yönetim Bilgi Sistemleri Müdürlüğü | AKTS ve TYYÇ Kataloğu: https://ects.ieu.edu.tr | 1647786708 Page 5/7
DERSÝN ÖÐRENÝM ÇIKTILARININ PROGRAM YETERLÝLÝKLERÝ ÝLE ÝLÝÞKÝSÝ
# Program Yeterlilikleri / Çýktýlarý * Katký Düzeyi
1 2 3 4 5
1 Matematik, Fen Bilimleri, Bilgisayar Bilimleri ve Yazılım Mühendisliği konularında yeterli bilgi sahibidir; bu alanlardaki kuramsal ve uygulamalı bilgileri, Yazılım Mühendisliği problemlerinde kullanır.
X
2 Karmaşık Yazılım Mühendisliği problemlerini saptar, tanımlar, formüle eder ve çözer; bu amaca uygun analiz ve modelleme yöntemlerini seçer ve uygular.
X
3 Karmaşık bir yazılım sistemini, süreci veya ürünü gerçekçi kısıtlar ve koşullar altında, belirli gereksinimleri karşılayacak şekilde tasarlar, gerçekleştirir, sınar, doğrular, raporlar, ölçer ve bakımını yapar; bu amaçla modern yöntemleri uygular.
4 Yazılım Mühendisliği uygulamalarında karşılaşılan karmaşık problemlerin analizi ve çözümü için gerekli olan modern teknik ve araçları geliştirir, seçer ve kullanır; bilişim teknolojilerini etkin bir şekilde kullanır.
X
5 Yazılım Mühendisliği problemlerinin incelenmesi için deney tasarlar, deney yapar, veri toplar, sonuçları analiz eder ve yorumlar.
6 Yazılım Mühendisliği disiplini içinde ve çok disiplinli takımlarda etkin biçimde çalışır; bireysel çalışma sergiler.
7 Türkçe sözlü ve yazılı etkin iletişim kurar; etkin rapor yazar ve yazılı raporları anlar, tasarım ve üretim raporları hazırlar, etkin sunum yapar, açık ve anlaşılır talimat verir ve alır.
8 Mühendislik ve Yazılım 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 sahibidir; mühendislik ve yazılım çözümlerinin hukuksal sonuçlarının farkındadır.
9 Etik ilkelerine uygun davranma, mesleki ve etik sorumluluk bilincine sahiptir; mühendislik uygulamalarında kullanılan standartlar hakkında bilgi sahibidir.
10 Proje yönetimi, risk yönetimi ve değişiklik yönetimi gibi, iş hayatındaki uygulamalar hakkında bilgi sahibidir; girişimcilik, yenilikçilik hakkında bilinçlidir; sürdürülebilir kalkınma hakkında bilgi sahibidir.
11 Bir yabancı dili kullanarak Yazılım Mühendisliği ile ilişkili konularda, bilgi toplar ve meslektaşları ile iletişim kurar. ("European Language Portfolio Global Scale", Level B1)
12 İkinci yabancı dili orta düzeyde kullanır.
13 Yaşam boyu öğrenmenin gerekliliği bilincindedir; bilgiye erişebilir, bilim ve teknolojideki gelişmeleri izler ve kendini sürekli yeniler; insanlık tarihi boyunca oluşan bilgi birikimini Yazılım Mühendisliği alanıyla ilişkilendirir.
*1 Lowest, 2 Low, 3 Average, 4 High, 5 Highest
İzmir Ekonomi Üniversitesi | Yönetim Bilgi Sistemleri Müdürlüğü | AKTS ve TYYÇ Kataloğu: https://ects.ieu.edu.tr | 1647786708 Page 7/7