CE 390 | Ders Tanıtım Bilgileri

Dersin Adı
Algoritma Analizi
Kodu
Yarıyıl
Teori
(saat/hafta)
Uygulama/Lab
(saat/hafta)
Yerel Kredi
AKTS
CE 390
Güz/Bahar
3
0
3
5

Ön Koşul(lar)
Yok
Dersin Dili
İngilizce
Dersin Türü
Servis Dersi
Dersin Seviyesi
Lisans
Dersin Koordinatörü -
Öğretim Eleman(lar)ı -
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.
Öğrenme Çıktıları Bu dersi başarıyla tamamlayabilen öğrenciler;
  • Bir problemin kendine has özelliklerini nasıl izole edip başa çıkılabilir kılacaklarını öğrenecektir.
  • Algoritmaların zaman ve hafıza karmaşıklıklarını analiz edebilecektir.
  • Algoritma portföylerinde, çok daha farklı problemleri çözmelerini sağlayacak çok daha fazla algoritmik çözüme sahip olacaktır.
  • Doğrudan veya bir dizi transformasyon ile aralık takvimleme, aralık bölümleme, gecikmeyi en aza indirmek için takvimleme, kümeleme ve en düşük maliyetli ağaçlık problemlerinin örnekleri olarak modellenebilen problemleri açgözlü algoritmalarla verimli olarak çözecektir.
  • Bir problemin böl-ve-yönet bir algoritmayla çözülüp çözülemeyeceğini anlayacak ve sırasız çiftleri sayma, verilen noktalar içinde birbirine en yakın olanları bulma ve tamsayıları çarpma problemlerini veya bunlara azaltılabilenleri verimli biçimde çözebilecek ve hızlı Fourier transformasyonunu verimli algoritmalar geliştirmek için kullanacaktır.
  • Ağırlıklı aralık bölümleme ve sekans hizalama problemlerine nasıl dinamik program çözümleri bulabileceğini öğrenecek ve bu bilgiyi genelleyebilerek başka problemeler çözecektir.
  • Harcanan zaman ve çözümün optimalliği arasında değerlendirme yaparak, en optimali bulmak mümkün değilse, yaklaşık algoritmalar kullanma kararı verecek ve kendisine yük dengeleme ve küme kaplama problemlerinin polinom zamanlı olarak azaltılabileceği benzer problemleri ayırdedebilecektir. Öğrenciler yük dengeleme ve küme kaplama problemleri için elde edilen yaklaşıklık limitlerini mümkün olduğunda benzer polinom olmayan problemlerin çözümlerinde kullanılacaktır.
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
Destek Dersleri
İletişim ve Yönetim Becerileri Dersleri
Aktarılabilir Beceri Dersleri

 

HAFTALIK KONULAR VE İLGİLİ ÖN HAZIRLIK ÇALIŞMALARI

Hafta 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 Arası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 Genel tekrar
16 Dönemin gözden geçirilmesi  

 

Dersin 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.
Diğer Kaynaklar Algorithm Design. Jon Kleinberg and Eva Tardos. 2006, Pearson Education, ISBN 0321372913

 

DEĞERLENDİRME ÖLÇÜTLERİ

Yarıyıl İçi Çalışmaları Sayı Katkı Payı %
Derse Katılım
Laboratuvar / Uygulama
Arazi Çalışması
Küçük Sınavlar / Stüdyo Kritiği
Ödev
Sunum / Jüri Önünde Sunum
Proje
6
30
Çalıştay
Portfolyo
Ara Sınav / Sözlü Sınav
1
30
Final Sınavı / Sözlü Sınav
1
40
Toplam

Yarıyıl İçi Çalışmalarının Başarı Notuna Katkısı
60
Yarıyıl Sonu Çalışmalarının Başarı Notuna Katkısı
40
Toplam

AKTS / İŞ YÜKÜ TABLOSU

Aktiviteler Sayı Süresi (Saat) İş Yükü
Teorik Ders Saati
(Sınav haftası dahildir: 16 x toplam ders saati)
16
3
48
Laboratuvar / Uygulama Ders Saati
Sınav haftası dahil değildir. 16 x uygulama/lab ders saati
16
Sınıf Dışı Ders Çalışması
15
4
Arazi Çalışması
Küçük Sınavlar / Stüdyo Kritiği
Ödev
Sunum / Jüri Önünde Sunum
Proje
6
2
Çalıştay
Portfolyo
Ara Sınavlar / Sözlü Sınavlar
1
10
Final / Sözlü Sınav
1
20
    Toplam
150

 

DERSİN ÖĞRENME Ç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 ve Mühendislik alanlarında yeterli bilgi birikimine sahip olmak.
2

Kuramsal ve uygulamalı bilgileri, Makine  Mühendisliği alanındaki problemlerin modellenmesi ve çözümü için kullanabilme becerisi kazanmak.

3

Makine Mühendisliği alanındaki problemlerin araştırılması için deney tasarlama/yürütme, veri toplama, analiz etme ve sonuçları değerlendirme yetilerine sahip olmak.

4 İmalat teknolojilerini kullanarak, ekonomik şartları ve mekanik performans gereksinimlerini karşılayacak şekilde makine, parça, malzeme ve işlem seçimi, ürün geliştirme ve tasarımı becerilerine sahip olmak.
5

Makine Mühendisliği alanındaki problemleri tanımlama, formüle etme ve çözme becerileri kazanmak.

6 Çok disiplinli takımlarda etkin biçimde çalışabilme becerisi
7 En az Avrupa Dil Portföyü B1 Genel Düzeyi’nde İngilizce sözlü ve yazılı etkin iletişim kurma becerisi kazanmak.
8 Mesleki ve etik sorumluluk anlayışına sahip olmak.
9 Kendini sürekli yenilemek için yaşam boyu öğrenmenin gerekliliği bilinci kazanmak.
10 Bilim ve teknolojideki gelişmeleri izlemek ve böylelikle mühendislik çözümlerinin ulusal ve küresel boyutlardaki etkileri hakkında bilgi sahibi olmak.
11 İkinci bir yabancı dilde orta düzeyde yeterliliğe sahip olmak.
12 İş hayatında girişimcilik, yenilikçilik ve sürdürülebilir kalkınma hakkında yeterli kuramsal ve pratik bilgi birikimine sahip olmak.
13 Konusu ile ilgili bilgisayar yazılımlarını kullanabilmek ve bilişim ve iletişim teknolojilerini kullanabilecek bilgi ve beceriye sahip olmak.

*1 Lowest, 2 Low, 3 Average, 4 High, 5 Highest