Veri Yapıları (Data Structures)

📌 Ders Künyesi ve Bilgileri

ÖzellikDetay
Ders AdıVeri Yapıları (Data Structures)
Ders KoduYZM2005
Akademik BirimUygulamalı Bilimler Fakültesi (UBF)
BölümYapay Zeka ve Makine Öğrenmesi Bölümü
DönemGüz Dönemi
Ders Dili / KrediTürkçe (Teknik Terimler İngilizce) / 3 Teori + 1 Uygulama
Ön KoşulTemel Programlama (Python / C++ / Java)
Öğretim ElemanıYunus Serhat Bıçakçı

🎯 Dersin Amacı ve Kapsamı

Bu ders, bilgisayar bilimleri ve yapay zeka mühendisliğinin temel taşı olan verilerin bellekte organize edilmesi, saklanması ve işlenmesi prensiplerini öğretmeyi amaçlar. Öğrenciler farklı algoritmaların zaman ve bellek karmaşıklıklarını matematiksel olarak analiz etmeyi, probleme en uygun veri yapısını seçmeyi ve bunu nesne yönelimli programlama ilkeleriyle sıfırdan kodlamayı öğrenirler.


🚀 Öğrenme Çıktıları (Kazanımlar)

  • Asimptotik notasyonları ($O, \Omega, \Theta$) kullanarak algoritmaların zaman ve bellek karmaşıklığını teorik ve deneysel olarak analiz edebilme.
  • Doğrusal veri yapılarını (Diziler, Tek/Çift Yönlü Bağlı Listeler, Yığınlar, Kuyruklar) sıfırdan tasarlayabilme ve uygulama alanlarına entegre edebilme.
  • Hiyerarşik ve doğrusal olmayan veri yapılarını (İkili Ağaçlar, BST, AVL Ağaçları, Heap, Hash Tabloları, Graf) kavrama ve verimli arama/ekleme algoritmalarını kodlayabilme.
  • Rekürsif (özyinelemeli) algoritmaları analiz edebilme ve çağrı yığını (call stack) işleyişini modelleyebilme.
  • Yapay zeka ve büyük veri problemlerinde hesaplama maliyetini minimize eden optimum veri yapısını seçebilme yetkinliği.

📚 Haftalık Ders İzlencesi (Syllabus)

ℹ️ Haftalık Akış: Ders izlencesi aşağıda özetlenmiştir. Her haftanın detaylı teorik anlatımları, kodları ve uygulama materyalleri ilgili hafta geldiğinde sırayla sol menüde erişime açılacaktır.

HaftaKonu BaşlığıOdak Konular ve Algoritmik BecerilerDurum / Materyal
GirişDerse Giriş & Algoritmik DüşünmeDers Kuralları, Bellek Modeli, Geliştirme Ortamı (VS Code / Python / C++)🟢 Açık
1Veri Yapılarına Giriş ve Algoritma AnaliziAsimptotik Notasyonlar (Big O, $\Omega$, $\Theta$), Zaman ve Bellek Karmaşıklığı🟢 Açık · Slayt (PDF)
2Diziler (Arrays) ve Dinamik DizilerBellek Yerleşimi, Sabit ve Dinamik Diziler, Amortized Zaman Analizi🟢 Açık · Slayt (PDF)
3Bağlı Listeler I: Tek Yönlü Bağlı ListeDüğüm (Node) Yapısı, Başa/Sona/Araya Ekleme, Silme ve Arama🟢 Açık · Slayt (PDF)
4Yığınlar (Stacks) ve LIFO MimarisiLIFO Mantığı, Dizi ve Bağlı Liste İle Yığın Gerçekleme, Parantez Doğrulama🟢 Açık · Slayt (PDF)
5Kuyruklar (Queues) ve Çift Uçlu Kuyruk (Deque)FIFO Mantığı, Dairesel Kuyruk (Circular Queue), Deque ve İş Akışları⏳ Hazırlanıyor
6Özyineleme (Recursion) ve Böl-YönetRekürsif Fonksiyonlar, Base Case, Çağrı Yığını, Master Teoremi⏳ Hazırlanıyor
7Arama ve Basit SıralamaDoğrusal ve İkili Arama, Seçerek/Eklemeli Sıralama, $O(n^2)$ Sıralamalar⏳ Hazırlanıyor
8Ara Sınav (Vize) & Algoritmik DeğerlendirmeDönem İçi Değerlendirme ve Karmaşıklık Analizi Sınavı⏳ Dönem İçi
9Böl ve Yönet ile SıralamaBirleştirmeli (Merge) ve Hızlı (Quick) Sıralama, $O(n \log n)$ Karmaşıklık⏳ Hazırlanıyor
10Karma Tabloları (Hash Tables) ve Çakışma YönetimiHashing Prensipleri, Çakışma Çözümü (Chaining & Open Addressing)⏳ Hazırlanıyor
11Ağaçlar (Trees) ve İkili Ağaç MimarisiAğaç Terminolojisi, İkili Ağaçlar, Ağaç Gezinmeleri (Pre/In/Postorder)⏳ Hazırlanıyor
12İkili Arama Ağaçları (Binary Search Trees - BST)BST Özelliği, Arama, Ekleme, Düğüm Silme ($O(h)$ Karmaşıklık)⏳ Hazırlanıyor
13Yığınlar (Heaps) ve Öncelikli KuyruklarMax-Heap, Min-Heap, Heapify İşlemi, Priority Queue ve Heapsort⏳ Hazırlanıyor
14Çizgelere Giriş (Graphs) ve Temel GezinmelerGraf Gösterimleri (Adjacency Matrix/List), BFS ve DFS Algoritmaları⏳ Hazırlanıyor

⚖️ Değerlendirme Kriterleri

Değerlendirme TürüKatkı OranıAçıklama
Ara Sınav (Vize)%30Teorik analiz ve kod yazma sınavı
Laboratuvar & Programlama Ödevleri%20Algoritma ve veri yapısı gerçekleme projeleri
Yarıyıl Sonu Sınavı (Final)%50Kapsamlı teorik ve pratik dönem sonu sınavı
Toplam%100

📖 Başvuru Kitapları ve Kaynaklar

  • Cormen, T. H., Leiserson, C. E., Rivest, R. L., & Stein, C. Introduction to Algorithms (CLRS). MIT Press.
  • Weiss, M. A. Data Structures and Algorithm Analysis. Pearson.
  • Sedgewick, R., & Wayne, K. Algorithms. Addison-Wesley.