| Dersin Amacı: |
Bu ders, farklı disiplinlerden gelen lisansüstü öğrencileri için programlama temellerini, veri yapıları ve algoritma düşünme biçimini uygulamalı olarak kazandırmayı amaçlar. Öğrenciler, temel veri yapılarının (dizi tabanlı yapılar, karma tablolar, ağaçlar, yığınlar, grafik temsilleri) altında yatan fikirleri ve karmaşıklık analizini öğrenir; doğru ve verimli algoritmalar tasarlayıp uygulayabilir hale gelir. Ders ayrıca grafik algoritmaları, dinamik programlama, açgözlü yöntemler ve giriş düzeyinde yaklaşık (approximation) algoritmalara yönelik seçilmiş ileri konulara giriş yapar. |
| Dersin İçeriği: |
Algoritmik düşünme ve analiz: büyüme mertebeleri (Big-O), doğruluk/invariant kavramı, özyineleme, amortize analiz. Dizi tabanlı listeler ve dinamik diziler. Karma tablolar (hashing), çakışma çözümü ve yeniden boyutlandırma. Öncelik kuyrukları ve yığınlar (heap) ve uygulamaları. Ağaç yapıları ve arama ağaçları (denge fikri). Sıralama ve seçim problemleri. Grafik temsilleri; BFS/DFS, en kısa yol (Dijkstra), minimum kapsayan ağaç (Kruskal/Prim) ve Union-Find. Dinamik programlama (temel kalıplar). Açgözlü algoritmalar ve kanıt şablonları. NP-zor problemler için motivasyon ve seçilmiş yaklaşık algoritmalar (ör. Vertex Cover 2-approx, Set Cover için greedy yaklaşımı) ve proje/uygulama çalışmaları. |
Ders Öğrenme Çıktıları (DÖÇ), dersi başarı ile tamamlayan öğrencilerin kendilerinden sahip olmaları beklenen bilgi, beceri ve yetkinlikleri ifade eder. Bu bağlamda, bu ders için tanımlanmış olan Ders Öğrenme Çıktıları aşağıda verilmektedir.
|
|
|
|
| Bilgi
(Kuramsal ve/veya olgusal bilgi olarak tanımlanmıştır.)
|
1) Algoritmaların zaman ve bellek karmaşıklığını Big-O notasyonu ile analiz eder; amortize analiz ve temel doğruluk (invariant) argümanlarını uygular.
|
| Beceriler
(Bilişsel ve/veya uygulama becerileri olarak tanımlanmıştır.)
|
| Yetkinlikler
("Bağımsız Çalışabilme", "Sorumluluk Alabilme", "Öğrenme", "İletişim ve Sosyal" ve "Alana Özgü" yetkinlikler olarak tanımlanmıştır.)
|
1) Dinamik diziler ve karma tabloların (hash table) çalışma prensiplerini açıklar; uygun durumlarda Python sözlük/küme yapılarını etkin biçimde kullanır.
|
2) Öncelik kuyruğu (heap) ve ağaç tabanlı veri yapılarının temel işlemlerini uygular; bu yapıların performans etkilerini karşılaştırır.
|
3) Graf temsillerini kurar ve BFS/DFS, Dijkstra ve minimum kapsayan ağaç algoritmalarını (Kruskal/Prim, Union-Find ile) uygular.
|
4) Dinamik programlama ve açgözlü yöntemlerle problem çözer; seçilmiş NP-zor problemler için yaklaşık algoritmaların yaklaşım oranı fikrini yorumlar.
|
| Hafta |
Konu |
Materyal Paylaşımı * |
|
Ön Hazırlık |
Pekiştirme |
| 1) |
Derse giriş; algoritmik düşünme, problem çözme modeli, Python/Git/test altyapısı. Big-O, temel doğruluk (invariant), özyineleme ve kod standartları. |
|
|
| 2) |
Dinamik diziler ve dizi tabanlı listeler; amortize analiz; iki işaretçi (two pointers) ve kayan pencere (sliding window) kalıpları. |
|
|
| 3) |
Hashing ve sözlük/küme yapıları; çakışma, yeniden boyutlandırma; frekans sayımı, indeksleme, deduplikasyon problemleri. |
|
|
| 4) |
Sıralama ve seçim: karşılaştırma modeli, kararlılık (stability), karşılaştırıcılar; quickselect ve top-k fikirleri. |
|
|
| 5) |
Heap ve öncelik kuyruğu; heapify, heappush/heappop; çizelgeleme, k-yollu birleştirme, akışta top-k uygulamaları. |
|
|
| 6) |
Ağaçlar ve arama yapıları: ikili ağaç temelleri, dolaşmalar, BST fikri; dengeleme kavramına giriş (sezgisel). |
|
|
| 7) |
Graf temsilleri; BFS/DFS ile durum keşfi; bağlı bileşenler, iki parçalı grafik testi; pratik uygulamalar. |
|
|
| 8) |
Arasınav. |
|
|
| 9) |
En kısa yol: Dijkstra algoritması, öncelik kuyruğu ile uygulama; karmaşıklık ve doğruluk sezgisi (relaxation). |
|
|
| 10) |
Minimum kapsayan ağaç: Kruskal/Prim; Union-Find (DSU) ve dinamik bağlantılılık; uygulama ve analiz. |
|
|
| 11) |
Dinamik Programlama I: durum tanımı, geçişler, optimizasyon; klasik örnekler (knapsack türevleri, LIS fikri). |
|
|
| 12) |
Açgözlü algoritmalar: greedy kalıplar; exchange argument ile kanıt; interval scheduling ve Huffman örnekleri. |
|
|
| 13) |
NP-zorluk motivasyonu ve yaklaşık algoritmalar: yaklaşım oranı; Vertex Cover için 2-approx; (opsiyonel) Set Cover için greedy. |
|
|
| 14) |
Yaklaştırma algoritmalarına devam ve genel tekrar: seçilmiş konuların bütünleştirilmesi, performans/analiz değerlendirmesi, kapanış. |
|
|
| Ders Notları / Kitaplar: |
Pat Morin, Open Data Structures (primary reference).
Jeff Erickson, Algorithms (free online notes, selected chapters).
Tim Roughgarden, Algorithms Illuminated (supplementary reading).
Instructor-provided lecture notes, coding templates, and problem sets (Python).
|
| Diğer Kaynaklar: |
Pat Morin, Open Data Structures (primary reference).
Jeff Erickson, Algorithms (free online notes, selected chapters).
Tim Roughgarden, Algorithms Illuminated (supplementary reading).
Instructor-provided lecture notes, coding templates, and problem sets (Python).
|
| |
Program Öğrenme Çıktıları |
Katkı Oranı (1-5) |
| 1) |
Bilimsel araştırma yaparak yenilikçi yöntem ve uygulamalara erişmeyi bilir, yeni bilgiler üretir, bilgiyi değerlendirir, yorumlar ve uygular. |
3 |
| 2) |
Üretim ve mühendislikte teknolojinin gelişimi ve endüstriyel evrime ait bilgi sahibidir. |
3 |
| 3) |
Teknoloji ve yenilikçilik yönetimi alanında ileri düzeyde güncel kuramsal ve uygulamalı bilgiye sahiptir. |
1 |
| 4) |
Yenilikçilik ve yeni ürün geliştirme kavram ve süreçlerini anlar |
|
| 5) |
Teknoloji ve yenilikçilik yönetimi uygulamalarının sosyal, çevresel, sağlık, güvenlik, hukuk boyutları ile proje yönetimi ve iş hayatı uygulamalarını bilir |
3 |
| 6) |
Veri analitiği, büyük veri ve yapay zeka araçlarını kullanarak teknoloji ve inovasyon yönetimi problemlerine çözüm geliştirir. |
|
| 7) |
Dijital dönüşüm süreçlerini, Endüstri 4.0 teknolojilerini ve akıllı üretim sistemlerini analiz eder ve yönetir. |
|
| 8) |
Disiplinler arası takımlarda etkin şekilde çalışır, liderlik yapar ve karmaşık projeleri planlar ve yönetir. |
|
| 9) |
Teknoloji ve inovasyon süreçlerinde etik, sürdürülebilirlik ve toplumsal etki boyutlarını dikkate alarak karar verir. |
|
| 10) |
Edindiği bilgi ve becerileri yazılı, sözlü ve görsel araçlarla etkin bir şekilde sunar ve paydaşlarla iletişim kurar. |
|
| ÖĞRENME VE ÖĞRETME ETKİNLİKLERİ İŞ YÜKÜ |
| Öğrenme ve Öğretme Etkinlikleri |
Etkinlik Sayısı/Yarıyıl |
Süresi (saat) |
Toplam İş Yükü |
| Ders |
14 |
3 |
42 |
| Laboratuvar |
0 |
0 |
0 |
| Uygulama |
0 |
0 |
0 |
| Derse Özgü Staj |
0 |
0 |
0 |
| Arazi Çalışması |
0 |
0 |
0 |
| Sınıf Dışı Ders Çalışması |
1 |
40 |
40 |
| Sunum / Seminer |
0 |
0 |
0 |
| Proje |
1 |
30 |
30 |
| Ödevler |
0 |
0 |
0 |
| Öğrenme ve Öğretme Etkinlikleri Toplam İş Yükü |
- |
- |
112 |
| ÖLÇME VE DEĞERLENDİRME ETKİNLİKLERİ İŞ YÜKÜ |
| Ölçme ve Değerlendirme Etkinlikleri |
Etkinlik Sayısı/Yarıyıl |
Süresi (saat) |
Toplam İş Yükü |
| Kısa Sınav |
0 |
0 |
0 |
| Ara Sınavlar |
0 |
0 |
0 |
| Yarıyıl Sonu Sınavı |
1 |
30 |
30 |
| Ölçme ve Değerlendirme Etkinlikleri Toplam İş Yükü |
- |
- |
30 |
| TOPLAM İŞ YÜKÜ (Öğrenme ve Öğretme + Ölçme ve Değerlendirme Etkinlikleri) |
142 |
| DERSİN AKTS KREDİSİ (Toplam İş Yükü/25.5 Saat) |
6 |