Genel Bilgi
Kod | BBZ202 |
Ad | Algoritma Tasarımı ve Analizi |
Dönem | 2024-2025 Eğitim-Öğretim Yılı |
Yarıyıl | 4. Yarıyıl |
Süre (T+U) | 3-0 (T-U) (17 Hafta) |
AKTS | 6 AKTS |
Yerel Kredi | 3 Yerel Kredi |
Eğitim Dil | Türkçe |
Seviye | Belirsiz |
Tür | Normal |
Etiket | AE Alan Eğitimi Dersleri Z Zorunlu |
Öğretim Şekli | Yüz Yüze Öğretim |
Bilgi Paketi Koordinatörü | Öğr. Gör.Dr. YOLDAŞ ERDOĞAN |
Dersin Öğretim Elemanı |
Öğr. Gör.Dr. YOLDAŞ ERDOĞAN
(A Grubu)
(Sor. Öğr. Ele.)
|
Dersin Amacı / Hedefi
Bu ders bilimsel ve hesaba dayalı klasik problemlerin çözümü konusundaki temel algoritmaları öğretmek, algoritma çalışma süresi, bellek kullanımı, enerji kullanımı gibi çeşitli yönlerden analizi yapmak, algoritma zaman karmaşıklığı hakkında bilgi sahibi olmak ve algoritma analizinde kullanılan matematiksel yöntem ve araçlarla tanıştırmayı amaçlar.
Dersin İçeriği
Algoritmalara giriş, asimtotik notasyonlar, algoritma etkinliği, en iyi, en kötü ve ortalama zaman karmaşıklığı analizleri, özyineli fonksiyonlar ve çözüm yöntemleri, yerine koyma yöntemi, sıralama ve arama algoritmaları, en kısa yol bulma, paralel algoritmalar, parçala çöz yöntemleri, küçült çöz yöntemleri, değiştir çöz yöntemleri, çizge algoritmaları, DFS, BFS, Dinamik programlamaya giriş ve açgözlü algoritmalar, karmaşıklık sınıfları, P, NP, NP-Tam.
Dersin Ön Koşulu
Yok
Kaynaklar
• Introduction to the Design and Analysis of Algorithms, Anany V. Levitin, Pearson Higher Education, 2007. • Introduction to Algorithms, T.H. Cormen, C.H. Leiserson, R.L. Rivest, C. Stein, McGrawHill, 2007.
Notlar
Dersin Öğrenme Çıktıları
Sıra | Dersin Öğrenme Çıktıları |
---|---|
ÖÇ01 | Algoritmalar kullanarak veri yapılarını tanımlama ve modelleme; |
ÖÇ02 | Denklemleri çözmek için matematiksel modelleri kullanma ve algoritmalar oluşturma; |
ÖÇ03 | Veriye dayalı materyalleri analiz edebilme ve eleştirel olarak değerlendirebilme; |
ÖÇ04 | Araştırılan alanla ilgili politika değişikliklerinin etkilerini öngörebilme becerisine sahip olacaktır. |
Program Öğrenme Çıktıları ile İlişkisi
Sıra | Tür | Program Öğrenme Çıktıları | Duzey |
---|---|---|---|
PÖÇ01 | Bilgi - Kuramsal, Olgusal | Bilgisayar Bilimleri temel kavramları, algoritmalar ve veri yapıları hakkında geniş bir bilgi yelpazesi kazandırır. | 4 |
PÖÇ02 | Bilgi - Kuramsal, Olgusal | Yazılım geliştirme, programlama dilleri ve veritabanı yönetimi gibi temel bilgisayar konularını öğrenir. | 4 |
PÖÇ03 | Bilgi - Kuramsal, Olgusal | Veri bilimi, yapay zeka ve makine öğrenimi gibi ileri düzey bilgisayar alanlarını anlar. | 3 |
PÖÇ04 | Bilgi - Kuramsal, Olgusal | Bilgisayar ağları, siber güvenlik ve veritabanı tasarımı gibi konularda bilgi edinir. | 2 |
PÖÇ05 | Beceriler - Bilişsel, Uygulamalı | Algoritmaları tasarlama, uygulama ve analiz etme becerilerini geliştirir. | 4 |
PÖÇ06 | Beceriler - Bilişsel, Uygulamalı | Farklı programlama dillerini etkili bir şekilde kullanabilme yeteneği kazanır | 3 |
PÖÇ07 | Beceriler - Bilişsel, Uygulamalı | Veri analizi, veritabanı yönetimi ve büyük veri işleme becerilerini öğrenir. | |
PÖÇ08 | Beceriler - Bilişsel, Uygulamalı | Yazılım geliştirme projelerinde çalışarak pratik deneyim kazanır. | 3 |
PÖÇ09 | Yetkinlikler - Bağımsız Çalışabilme ve Sorumluluk Alabilme Yetkinliği | Ekip içinde işbirliği yapma ve iletişim becerilerini güçlendirir. | 2 |
PÖÇ10 | Yetkinlikler - Alana Özgü Yetkinlik | Teknolojik yeniliklere açık bir zihniyet kazandırır. | |
PÖÇ11 | Yetkinlikler - Öğrenme Yetkinliği | Sürekli öğrenme ve kendini geliştirme yetkinliğini teşvik eder. | 2 |
PÖÇ12 | Yetkinlikler - İletişim ve Sosyal Yetkinlik | Karmaşık sorunları çözme yeteneği geliştirir. | 2 |
Haftalık Akış
Hafta | Konu | Ön Hazırlık | Yöntemler |
---|---|---|---|
1 | Algoritmalara giriş, ayrık matematik, veri yapıları, asimtotik notasyonlar, algoritma etkinliği | Ders notunda ilgili bölümü okumak | Öğretim Yöntemleri: Anlatım, Soru-Cevap, Tartışma |
2 | En iyi, en kötü ve ortalama zaman karmaşıklığı analizleri | Ders notunda ilgili bölümü okumak | Öğretim Yöntemleri: Anlatım, Soru-Cevap, Alıştırma ve Uygulama |
3 | Brute Force (Kaba Kuvvet) ve Algoritmaları: Selection Sort, Bubble Sort | Ders notunda ilgili bölümü okumak | Öğretim Yöntemleri: Anlatım, Alıştırma ve Uygulama |
4 | Alan Karmaşıklığı | Ders notunda ilgili bölümü okumak | Öğretim Yöntemleri: Anlatım, Alıştırma ve Uygulama |
5 | Divide and Conquer (Böl ve Yönet) ve Algoritmaları: Özyinelemeli Algoritmalar, Merge Sort, Quick Sort | Ders notunda ilgili bölümü okumak | Öğretim Yöntemleri: Anlatım, Alıştırma ve Uygulama |
6 | Decrease and Conquer (Azalt ve Yönet) ve Algoritmaları: Insertion Sort | Ders notunda ilgili bölümü okumak | Öğretim Yöntemleri: Anlatım, Alıştırma ve Uygulama |
7 | Dinamik Programlama - Böl ve Yönet: Fibonacci Serisi, Binom Sabitleri | Ders notunda ilgili bölümü okumak | Öğretim Yöntemleri: Anlatım, Alıştırma ve Uygulama |
8 | Ara Sınavlar | Sınava hazırlık | Ölçme Yöntemleri: Yazılı Sınav |
9 | Dinamik Programlama: En Uzun Alt Katar Problemi, Matris Çarpımı | Ders notunda ilgili bölümü okumak | Öğretim Yöntemleri: Anlatım, Alıştırma ve Uygulama |
10 | Dinamik Programlama: En Kısa Yol Problemi, Sırt Çantası Problemi | Ders notunda ilgili bölümü okumak | Öğretim Yöntemleri: Anlatım, Alıştırma ve Uygulama |
11 | Greedy Approach (Aç Gözlü Yaklaşım): Sırt Çantası Problemi, En Kısa Yol Problemi | Ders notunda ilgili bölümü okumak | Öğretim Yöntemleri: Anlatım, Alıştırma ve Uygulama |
12 | Greedy Approach (Aç Gözlü Yaklaşım): Prim, Kruskal Algoritmaları | Ders notunda ilgili bölümü okumak | Öğretim Yöntemleri: Anlatım, Alıştırma ve Uygulama |
13 | Transform and Conquer (Dönüştür ve Yönet): Mod Değeri Hesabı | Ders notunda ilgili bölümü okumak | Öğretim Yöntemleri: Anlatım, Alıştırma ve Uygulama |
14 | Transform and Conquer (Dönüştür ve Yönet): İkili Ağaçlar, Denge ve AVL Ağaçları, Heap Sort | Ders notunda ilgili bölümü okumak | Öğretim Yöntemleri: Anlatım, Alıştırma ve Uygulama |
15 | Hesaplama Teorisi: Hanoi Kuleleri, Karmaşıklık ve Hesaplanabilirlik Teorisi, NP-Tam, P, NP-Hard Problemler | Ders notunda ilgili bölümü okumak | Öğretim Yöntemleri: Anlatım, Alıştırma ve Uygulama |
16 | Yarıyıl Sonu Sınavları | Sınava hazırlık | Ölçme Yöntemleri: Yazılı Sınav |
17 | Yarıyıl Sonu Sınavları | Sınava hazırlık | Ölçme Yöntemleri: Yazılı Sınav |
Öğrenci İş Yükü - AKTS
Çalışmalar | Sayısı | Süresi (Saat) | İş Yükü (Saat) |
---|---|---|---|
Ders ile İlgili Çalışmalar | |||
Ders (Sınav haftaları dahil değildir) | 14 | 3 | 42 |
Sınıf Dışı Ders Çalışma (Ön çalışma, pekiştirme) | 14 | 5 | 70 |
Değerlendirmeler ile İlgili Çalışmalar | |||
Ödev, Proje, Diğer | 0 | 0 | 0 |
Ara Sınavlar (Yazılı, Sözlü, vs.) | 1 | 14 | 14 |
Yarıyıl/Yıl Sonu/Final Sınavı | 1 | 24 | 24 |
Toplam İş Yükü (Saat) | 150 | ||
Toplam İş Yükü / 25 (s) | 6,00 | ||
AKTS | 6 AKTS |