Mühendislik Fakültesi
Bilgisayar Ve Yazılım Mühendisliği

Ders Bilgileri

ALGORİTMA ANALİZİ
Kodu Dönemi Teori Uygulama Ulusal Kredisi AKTS Kredisi
Saat / Hafta
CSE214 Bahar 3 0 3 4

Ön Koşulu Olan Ders( ler ) Yok
Dili İngilizce
Türü Seçmeli
Seviyesi Lisans
Öğretim Elemanı( ları ) Dr. Öğr. Üyesi Furkan GÖZÜKARA
Öğretim Sistemi Yüz Yüze
Önerilen Hususlar Yok
Staj Durumu Yok
Amacı Çeşitli alanlardaki algoritma sınıfları ve verimli algoritmaları tasarlama ve değerlendirme teknikleri hakkında geniş bilgi sahibi olma.
İçeriği Algoritmaların tanımı ve özellikleri. Algoritmaların tasarımı, analizi ve gösterimi. Veri soyutlama. Sözde kod sözleşmeleri. Hesaplama modelleri. Matematiksel Temeller: Fonksiyonların büyümesi, asimtotik gösterimler. Özyineli algoritmalar ve ilişkili yineleme ilişkilerinin incelenmesi (ikame yöntemi, yineleme yöntemi, ana yöntem, yineleme ağaçları). Algoritmalar için tasarım paradigmaları: Brute-Force (Kapsamlı Arama), Böl ve Düzenle (Merge Sort, İkili Arama Ağacı) Dinamik Programlama (Matrix-Zincir çarpımı, LCS-uzunluğu, 01-Sırt Çantası Sorunu). Açgözlü algoritmalar (Greedy Activity Selector, Kesirli Sırt Çantası Sorunu). Grafik Algoritmaları: Kümeler ve grafikler gösterimi. Genişlik ilk aramayı, derinlik ilk aramayı.

Dersin Öğrenim Çıktıları

# Öğrenim Çıktıları
1 Algoritmaların analizi için gerekli olan matematiksel bilgiye ve becerilere sahip olmak: Toplamların ve tekrarlamaların çözümünde kullanılan teknikler ve fonksiyonların asimptotik büyüme hızı da dahil olmak üzere matematiksel temelleri güçlendirin.
2 Algoritmik tasarım hakkında bilgi edinin ve algoritmik mantık, yapı ve performansdan nasıl etkilenir ve / veya etkiler? Standart algoritmaların doğruluğunu göstermek ve performansını değerlendirmek için ispat teknikleri ve matematiksel kavramları uygulayın.
3 Tam bir algoritmik tasarım süreci (tasarım, analiz, uygulama, sonuç) gerçekleştirme becerilerini göstermelidirler: Algoritmik tasarım, analiz ve uygulama ile ilgili sorunları gidermek.
4 Gelecekteki algoritmik çalışma için modellerle birlikte belirli algoritma sınıflarını anlayın: Algoritmik analiz için nesneler olarak hem klasik hem de modern standart algoritmalar tanıtıyoruz.

Haftalık Ayrıntılı Ders İçeriği

# Konular Öğretim Yöntem ve Teknikleri
1 Algoritmaların tanımı ve özellikleri. Algoritmaların tasarımı, analizi ve gösterimi. Anlatım, tartışma, sunum
2 Veri soyutlama. Sözde kod sözleşmeleri. Hesaplama modelleri. Anlatım, tartışma, sunum
3 Matematiksel Temeller: Fonksiyonların büyümesi, asimtotik gösterimler. Anlatım, tartışma, sunum
4 Özyineli algoritmalar ve ilişkili yineleme ilişkilerinin incelenmesi (ikame yöntemi, iterasyon yöntemi). Anlatım, tartışma, sunum
5 Özyineli algoritmalar ve ilişkili yineleme ilişkilerinin incelenmesi (ana yöntem). Anlatım, tartışma, sunum
6 Özyineli algoritmalar ve ilişkili yineleme ilişkileri (özyineleme ağaçları). Anlatım, tartışma, sunum
7 Ara SINAV Ölçme
8 Brute-Force (Kapsamlı Arama), Böl ve Düzenle (Birleştirme Sırala, İkili Arama Ağacı). Anlatım, tartışma, sunum
9 Dinamik Programlama (Matris Zinciri Çarpma, LCS uzunluğu, 0-1 Sırt Çantası Problemi). Anlatım, tartışma, sunum
10 Açgözlü algoritmalar (Greedy Activity Selector) Anlatım, tartışma, sunum
11 Kesirli Sırt Çantası Sorunu. Anlatım, tartışma, sunum
12 Grafik Algoritmaları: Kümeler ve grafikler gösterimi. Anlatım, tartışma, sunum
13 Genişlik ilk aramayı, derinlik ilk aramayı. Anlatım, tartışma, sunum
14
15
16 Son Sınav Ölçme

Resources

# Malzeme / Kaynak Adı Kaynak Hakkında Bilgi Referans / Önerilen Kaynak
1
2

Ölçme ve Değerlendirme Sistemi

# Ağırlık Çalışma Türü Çalışma Adı
1 %40 Ara Sınav Ara Sınav
2 %60 Son Sınav Son Sınav

Dersin Öğrenim Çıktıları ve Program Yeterlilikleri ile İlişkileri

# Öğrenim Çıktıları Program Çıktıları Ölçme ve Değerlendirme
1 Algoritmaların analizi için gerekli olan matematiksel bilgiye ve becerilere sahip olmak: Toplamların ve tekrarlamaların çözümünde kullanılan teknikler ve fonksiyonların asimptotik büyüme hızı da dahil olmak üzere matematiksel temelleri güçlendirin. 1͵2͵3͵4 1͵2
2 Algoritmik tasarım hakkında bilgi edinin ve algoritmik mantık, yapı ve performansdan nasıl etkilenir ve / veya etkiler? Standart algoritmaların doğruluğunu göstermek ve performansını değerlendirmek için ispat teknikleri ve matematiksel kavramları uygulayın. 1͵2͵3͵4 1͵2
3 Tam bir algoritmik tasarım süreci (tasarım, analiz, uygulama, sonuç) gerçekleştirme becerilerini göstermelidirler: Algoritmik tasarım, analiz ve uygulama ile ilgili sorunları gidermek. 1͵2͵3͵4 1͵2
4 Gelecekteki algoritmik çalışma için modellerle birlikte belirli algoritma sınıflarını anlayın: Algoritmik analiz için nesneler olarak hem klasik hem de modern standart algoritmalar tanıtıyoruz. 1͵2͵3͵4 1͵2
Not: Ölçme ve Değerlendirme sütununda belirtilen sayılar, bir üstte bulunan Ölçme ve Değerlerndirme Sistemi başlıklı tabloda belirtilen çalışmaları işaret etmektedir.

İş Yükü Detayları

# Etkinlik Adet Süre (Saat) İş Yükü
1 Ders Süresi 14 3 42
2 Sınıf Dışı Ders Süresi (Ön çalışma, pekiştirme) 14 2 28
3 Sunum ve Seminer Hazırlama 0 0 0
4 İnternette tarama, kütüphane ve arşiv çalışması 0 0 0
5 Belge/Bilgi listeleri oluşturma 0 0 0
6 Atölye 0 0 0
7 Ara Sınav için Hazırlık 1 8 8
8 Ara Sınav 1 2 2
9 Kısa Sınav 0 0 0
10 Ödev 4 3 12
11 Ara Proje 0 0 0
12 Ara Uygulama 0 0 0
13 Son Proje 0 0 0
14 Son Uygulama 0 0 0
15 Son Sınav için Hazırlık 1 6 6
16 Son Sınav 1 2 2
  100