Veri Yapıları (Data Structures)

📌 Ders Künyesi ve Bilgileri

Özellik Detay
Ders Adı Veri Yapıları (Data Structures)
Ders Kodu YZM2005.1
Akademik Birim Uygulamalı Bilimler Fakültesi (UBF)
Bölüm Yapay Zeka ve Makine Öğrenmesi Bölümü
Dönem Güz Dönemi
Ders Dili / Kredi Türkçe (Teknik Terimler İngilizce) / 3 Teori + 1 Uygulama
Ön Koşul Temel 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.

Hafta Konu Başlığı Odak Konular ve Algoritmik Beceriler Durum
Giriş Derse Giriş & Algoritmik Düşünme Ders Kuralları, Bellek Modeli, Geliştirme Ortamı (VS Code / Python / C++) 🟢 Açık
1 Veri Yapılarına Giriş ve Algoritma Analizi Asimptotik Notasyonlar (Big O, $\Omega$, $\Theta$), Zaman ve Bellek Karmaşıklığı ⏳ Hazırlanıyor
2 Diziler (Arrays) ve Dinamik Diziler Bellek Yerleşimi, Sabit ve Dinamik Diziler, Amortized Zaman Analizi ⏳ Hazırlanıyor
3 Bağlı Listeler I: Tek Yönlü Bağlı Liste Düğüm (Node) Yapısı, Başa/Sona/Araya Ekleme, Silme ve Arama ⏳ Hazırlanıyor
4 Bağlı Listeler II: Çift Yönlü ve Dairesel Listeler Doubly Linked List, Dairesel Liste Mimarisi, Sentinel Düğümler ⏳ Hazırlanıyor
5 Yığınlar (Stacks) ve LIFO Mimarisi LIFO Mantığı, Dizi ve Bağlı Liste İle Yığın Gerçekleme, Parantez Doğrulama ⏳ Hazırlanıyor
6 Kuyruklar (Queues) ve Çift Uçlu Kuyruk (Deque) FIFO Mantığı, Dairesel Kuyruk (Circular Queue), Deque ve İş Akışları ⏳ Hazırlanıyor
7 Özyineleme (Recursion) ve Böl-Yönet Rekürsif Fonksiyonlar, Base Case, Çağrı Yığını, Master Teoremi ⏳ Hazırlanıyor
8 Ara Sınav (Vize) & Algoritmik Değerlendirme Dönem İçi Değerlendirme ve Karmaşıklık Analizi Sınavı ⏳ Dönem İçi
9 Ağaçlar (Trees) ve İkili Ağaç Mimarisi Ağaç Terminolojisi, İkili Ağaçlar, Ağaç Gezinmeleri (Pre/In/Postorder) ⏳ Hazırlanıyor
10 İ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
11 Dengeli Ağaçlar (Balanced Trees: AVL) Denge Faktörü, Sol/Sağ Rotasyonlar, $O(\log n)$ Arama Garantisi ⏳ Hazırlanıyor
12 Yığınlar (Heaps) ve Öncelikli Kuyruklar Max-Heap, Min-Heap, Heapify İşlemi, Priority Queue ve Heapsort ⏳ Hazırlanıyor
13 Karma Tabloları (Hash Tables) ve Çakışma Yönetimi Hashing Prensipleri, Çakışma Çözümü (Chaining & Open Addressing) ⏳ Hazırlanıyor
14 Çizgelere Giriş (Graphs) ve Temel Gezinmeler Graf 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) %30 Teorik analiz ve kod yazma sınavı
Laboratuvar & Programlama Ödevleri %20 Algoritma ve veri yapısı gerçekleme projeleri
Yarıyıl Sonu Sınavı (Final) %50 Kapsamlı 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.