Ö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ı.
|
# |
Öğ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. |
# |
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 |
# |
Öğ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 |