DERSİN GENEL BİLGİLERİ

Ders Kodu Ders Adı Yıl Yarıyıl Teorik Pratik Kredi AKTS
CME7202 Advanced Data Structures 0 Güz
3 0 3 6
Dersin Türü: Elective Course II
Dersin Düzeyi: Yüksek Lisans      TYYÇ:7. Düzey      QF-EHEA:2. Düzey      EQF-LLL:7. Düzey
Dersin Öğretim Dili: English
Dersin Ön/Yan Koşulu: Yoktur
Dersin Veriliş Şekli: Uzaktan Eğitim
Dersin Koordinatörü: Profesör Dr. ALİ ÇİVRİL
Dersin Öğretim Eleman(lar)ı: Profesör Dr. ALİ ÇİVRİL
Dersin Kategorisi:

BÖLÜM II: DERSİN TANITIMI

Dersin Amacı ve İçeriği

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ı.

Dersin Öğrenme Çıktıları (DÖÇ)

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.

Haftalık Ders Planı

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ış.
*Bu alan öğrencilerin ders öncesi hazırlık ve sonrası dersi pekiştirme için paylaşılan ders materyallerini içerir.

Ders İçin Zorunlu/Önerilen Kaynaklar

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).

DERS ÖĞRENME ÇIKTILARI - PROGRAM ÖĞRENME ÇIKTILARI İLİŞKİSİ

Ders - Program Öğrenme Kazanım İlişkisi

Ders Öğrenme Çıktıları (DÖÇ)

1

2

3

4

5

Program Öğrenme Çıktıları (PÖÇ)
1) Bilimsel araştırma yaparak yenilikçi yöntem ve uygulamalara erişmeyi bilir, yeni bilgiler üretir, bilgiyi değerlendirir, yorumlar ve uygular.
2) Üretim ve mühendislikte teknolojinin gelişimi ve endüstriyel evrime ait bilgi sahibidir.
3) Teknoloji ve yenilikçilik yönetimi alanında ileri düzeyde güncel kuramsal ve uygulamalı bilgiye sahiptir.
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
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.

BÖLÜM III: DERSİN PROGRAM ÖĞRENME ÇIKTILARI İLE İLİŞKİSİ

Dersin Program Öğrenme Çıktılarına Katkı Düzeyi

Etkisi Yok 1 En Düşük 2 Düşük 3 Orta 4 Yüksek 5 En Yüksek
           
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.

BÖLÜM IV: DERSİN ÖĞRENME VE ÖĞRETME YÖNTEMLERİ İLE ÖLÇME VE DEĞERLENDİRME YÖNTEMLERİ

Dersin Öğrenme ve Öğretme Yöntemleri

(Üniversitemiz genelinde kullanılan tüm öğrenme ve öğretme yöntemleri sistematik olarak yönetilmektedir. Akademik birimlerden gelen talepler doğrultusunda bölüm/programların öğrenme ve öğretme yöntemleri ilgili kurullarımız tarafından değerlendirilmekte ve uygun bulunursa, üniversite havuzunda toplanmaktadır. Bölüm ve programlar, kendileri için program tasarımlarına uygun olan yöntemleri bu havuzdan seçebilmektedirler. Benzer şekilde, dersler için kullanılması uygun görülen yöntemler de programlar düzeyinde belirlenmiş olan yöntemler arasından seçilebilmektedir.)
Programa Genelinde Kullanılan Öğrenme ve Öğretme Yöntemleri
Ders İçin Kullanılan Öğrenme ve Öğretme Yöntemleri
Problem Çözme
Okuma
Ödev

Dersin Ölçme ve Değerlendirme Yöntemleri

(Üniversitemiz genelinde kullanılan tüm ölçme ve değerlendirme yöntemleri sistematik olarak yönetilmektedir. Akademik birimlerden gelen talepler doğrultusunda bölüm/programların ölçme ve değerlendirme yöntemleri ilgili kurullarımız tarafından değerlendirilmekte ve uygun bulunursa, üniversite havuzunda toplanmaktadır. Bölüm ve programlar, kendileri için program tasarımlarına uygun olan yöntemleri bu havuzdan seçebilmektedirler. Benzer şekilde, dersler için kullanılması uygun görülen yöntemler de programlar düzeyinde belirlenmiş olan yöntemler arasından seçilebilmektedir.)
Programa Genelinde Kullanılan Ölçme ve Değerlendirme Yöntemleri
Ders İçin Kullanılan Ölçme ve Değerlendirme Yöntemleri

Dersin Ölçme ve Değerlendirme Yöntemlerinin Başarı Notuna Katkısı

Ölçme ve Değerlendirme Yöntemleri Uygulama Sayısı / Yarıyıl Katkı Oranı
Projeler 1 % 40.00
Yarıyıl Sonu Sınavı 1 % 60.00
Toplam % 100
YARIYIL İÇİ ÖLÇME VE DEĞERLENDİRME YÖNTEMLERİNİN BAŞARI NOTUNA KATKI ORANI % 40
YARIYIL SONU SINAVININ BAŞARI NOTUNA KATKI ORANI % 60
Toplam % 100

BÖLÜM V: DERSİN İŞ YÜKÜ VE AKTS KREDİSİ

ÖĞ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