| ALGORİTMA ANALİZİ VE TASARIMI |
YZM322 |
6 |
3 |
0 |
5,0 |
| Önkoşul(lar)-var ise |
|
| Dersin Dili |
|
| Dersin Türü |
Lisans |
| Dersin sorumlusu(ları) |
|
| Dersin Amacı |
Bu dersin amacı öğrencileri algoritma tasarım ve analizinde ileri tekniklerle tanıştırmak ve daha önce kapsanmayan bazı algoritma türleri hakkında bilgi ve beceri kazandırmaktır. |
| Dersin Verilme Şekli |
Örgün |
| Sıra No |
Dersin Öğrenme Çıktıları |
Öğretim Yöntemleri |
Değerlendirme Yöntemleri |
Program Yeterliliklerini Karşılama Düzeyi(1)(2)(3)(4)(5) |
| 1 |
To be able to perform average-case analysis of algorithms. |
|
|
|
| 1 |
Algoritma ortalama değer performans analizi yapabilmek |
Anlatım, Problem Çözme |
Kısa Sınav, Doküman İncelemesi |
1, 2, 3 |
| 2 |
Rastgeleleştirilmiş algoritma tasarımı yapabilmek |
Anlatım, Örnek Olay |
Kısa Sınav, Performans Ödevi |
1, 2, 3, 9 |
| 2 |
To design randomized algorithms. |
|
|
|
| 3 |
To analyze complex algorithms. |
|
|
|
| 3 |
Karmaşık algoritmları analiz edebilmek |
Anlatım, Problem Çözme |
Sözlü Değerlendirme |
1, 2, 4 |
| 4 |
Dinamik Algoritma uygulaması yapabilmek |
Anlatım |
Performans Ödevi |
2, 3, 4, 5 |
| 4 |
To implement dynamic programming algorithms. |
|
|
|
| 5 |
To implement greedy algorithms. |
|
|
|
| 5 |
Greedy Algoritma uygulaması yapabilmek |
Anlatım |
Doküman İncelemesi |
2, 3, 5, 8 |
| 6 |
Çizge algoritmalarının uygulamasını yapabilmek |
Anlatım, Problem Çözme |
Kısa Sınav |
2, 3 |
| 6 |
To perform graph algorithm implementations. |
|
|
|
| 7 |
|
|
|
|
| 7 |
|
|
|
|
| 8 |
|
|
|
|
| 8 |
|
|
|
|
| 9 |
|
|
|
|
| 9 |
|
|
|
|
| 10 |
|
|
|
|
| 10 |
|
|
|
|
| 11 |
|
|
|
|
| 11 |
|
|
|
|
| 12 |
|
|
|
|
| 12 |
|
|
|
|
| 13 |
|
|
|
|
| 13 |
|
|
|
|
| 14 |
|
|
|
|
| 14 |
|
|
|
|
| 15 |
|
|
|
|
| 15 |
|
|
|
|
|
| Dersin İçeriği |
| İleri düzey algoritma tasarlanma ve analiz yöntemlerini incelemek, karmaşık problemlerin bilgisayarda çözümüne yönelik yöntemleri incelemek ve uygulamalar yapmak. |
| Kaynaklar |
| 1. Cormen, T. H., Leiserson, C. E., Rivest, R. L., & Stein, C. (2001). Introduction To Algorithms (Üçüncü Baskı). The MIT Press. |
Haftalara Göre İşlenecek Konular |
| Haftalar |
Konular |
Dokümanlar |
| 1 . Hafta |
Olasılık analizi |
|
| 1 . Hafta |
Probability analysis |
|
| 2 . Hafta |
Recursion |
|
| 2 . Hafta |
Recursion |
|
| 3 . Hafta |
Sıralama Algoritmaları |
|
| 3 . Hafta |
Sorting Algorithms |
|
| 4 . Hafta |
Algorithm Complexity (Big O Notation) |
|
| 4 . Hafta |
Algoritma Karmaşıklığı (Big O Notasyonu) |
|
| 5 . Hafta |
Medians and Order Statistics, Median of Medians Algorithm |
|
| 5 . Hafta |
Medians and Order Statistics, Median of Medians Algorithm |
|
| 6 . Hafta |
Improving Data Structures |
|
| 6 . Hafta |
Veri yapılarını geliştirmek |
|
| 7 . Hafta |
Skip Liste |
|
| 7 . Hafta |
Skip List |
|
| 8 . Hafta |
Midterm Exam |
|
| 8 . Hafta |
Ara Sınav |
|
| 9 . Hafta |
Amortisman Analizi |
|
| 9 . Hafta |
Amortized Analysis |
|
| 10 . Hafta |
NP Problems |
|
| 10 . Hafta |
NP Problemler |
|
| 11 . Hafta |
Dinamik Algoritma |
|
| 11 . Hafta |
Dynamic Programming |
|
| 12 . Hafta |
Greedy Algorithms |
|
| 12 . Hafta |
Greedy Algoritma |
|
| 13 . Hafta |
Çizge Algoritmaları: Minimum-Spanning Trees |
|
| 13 . Hafta |
Graph Algorithms: Minimum Spanning Trees |
|
| 14 . Hafta |
Shortest Path Algorithms |
|
| 14 . Hafta |
En Kısa Yol Algoritmaları |
|
| 15 . Hafta |
Karakter Dizisi Algoritmaları |
|
| 15 . Hafta |
String Algorithms |
|
| 16 . Hafta |
Dönem Sonu Sınavı |
|
|
Değerlendirme Sistemi |
| Yarıyıl içi çalışmaları |
Sayısı |
Katkı Payı (%) |
| Sınav |
1 |
30 |
| Doküman İncelemesi |
0 |
0 |
| Performans Ödevi |
0 |
0 |
| Sözlü Değerlendirme |
0 |
0 |
| Sınav |
0 |
0 |
|
0 |
0 |
|
0 |
0 |
|
0 |
0 |
|
1 |
50 |
|
0 |
0 |
|
0 |
0 |
|
0 |
0 |
|
14 |
20 |
|
0 |
0 |
|
0 |
0 |
|
0 |
0 |
|
0 |
0 |
|
0 |
0 |
|
0 |
0 |
|
0 |
0 |
|
0 |
0 |
|
0 |
0 |
|
0 |
0 |
| Toplam |
100 |
| Yarıyıl İçi Çalışmalarının Başarı Notuna Katkısı |
4 |
30 |
| Yarıyıl Sonu Çalışmalarının Başarı Notuna Katkısı |
1 |
0 |
| Toplam |
100 |
|
AKTS (Öğrenci İş Yükü) Tablosu |
| Etkinlikler |
Sayısı |
Süresi |
Toplam İş Yükü |
| Ders süresi (sınav haftası dahil: 16xders saati) |
0 |
2 |
0 |
| Sınıf Dışı Ders Calışma Süresi (Ön çalışma, pekiştirme) |
0 |
3 |
0 |
| Ara Sınav |
0 |
12 |
0 |
| Dönem sonu sınavı |
1 |
2 |
2 |
|
0 |
0 |
0 |
|
0 |
0 |
0 |
|
0 |
0 |
0 |
|
1 |
2 |
2 |
|
0 |
0 |
0 |
|
0 |
0 |
0 |
|
0 |
0 |
0 |
|
4 |
5 |
20 |
|
0 |
0 |
0 |
|
0 |
0 |
0 |
|
0 |
0 |
0 |
|
0 |
0 |
0 |
|
14 |
3 |
42 |
|
1 |
10 |
10 |
|
1 |
10 |
10 |
|
14 |
3 |
42 |
|
0 |
0 |
0 |
| Toplam İş Yükü |
128 |
|
Dersin Öğrenme Çıktılarının Program Yeterlilikleri İle İlişkilendirilmesi |
| Sıra No |
Program Yeterlilikleri |
Katkı Düzeyi* |
| 1 |
2 |
3 |
4 |
5 |
| 15 |
As an aware individual of current and historical events, critically interprets events and makes rational deductions. |
X |
|
|
|
|
| 1 |
Possesses a fundamental understanding of applied and conceptual knowledge in the field of software engineering. |
|
|
X |
|
|
| 2 |
Utilizes the theoretical and applied knowledge from mathematics, natural sciences, and software engineering in solving engineering problems. |
|
|
|
|
X |
| 3 |
Identifies current engineering problems in various application domains and provides feasible recommendations for solving these problems using software systems. |
|
|
|
|
X |
| 4 |
Performs analyses of software-based systems, components, and processes required for problem-solving, and creates the best designs that can meet the identified requirements and constraints. |
|
X |
|
|
|
| 5 |
Selects and applies modern methods and tools necessary for engineering applications. |
|
X |
|
|
|
| 6 |
Collects and processes the necessary data for problem-solving, designs experiments, conducts experiments, and interprets the results. |
X |
|
|
|
|
| 7 |
Is familiar with the management processes of engineering projects, selects and applies the most suitable project management tools and project life cycle for the project. |
X |
|
|
|
|
| 8 |
Codes, tests, operates, and maintains computer-based systems. |
X |
|
|
|
|
| 9 |
Actively collaborates within disciplinary or interdisciplinary research and software development teams, either individually or as part of a team. |
X |
|
|
|
|
| 10 |
Keeps track of current developments in software engineering and other relevant fields, with a conscious awareness of the necessity for continuous professional development. |
X |
|
|
|
|
| 11 |
Proficiently and effectively utilizes both Turkish and English languages for the purpose of tracking scientific and technical resources, presenting projects, and writing academic publications. |
X |
|
|
|
|
| 12 |
Is aware of the legal consequences of information technology applications and the individual, corporate, societal, and global impacts in both ethical and universal dimensions. |
X |
|
|
|
|
| 13 |
Acts with professional and ethical responsibility in the development of software and systems. |
X |
|
|
|
|
| 14 |
Designs and develops software systems using analytical thinking skills, aiming to facilitate human life or enhance comfort. |
X |
|
|
|
|
|