Bilgi Paketi / Ders Kataloğu
Veri Yapıları ve Algoritmalar
Ders Kodu: YBS205
Ders Türü: Zorunlu
Ders Grubu: Lisans
Eğitim Dili: Türkçe
Staj Durumu: Yok
Teori: 3
Uyg.: 0
Kredi: 3
Laboratuvar: 0
AKTS: 6
Amaç

Bu dersin amacı; öğrencilere C++ programlama dilini kullanarak yapılandırılmış ve nesne yönelimli programlama becerileri kazandırmak, temel veri yapıları ve algoritmaların çalışma mantığını öğretmek ve problem çözme yeteneklerini geliştirmektir. Ders kapsamında öğrenciler önce C++ programlama dilinin temel yapılarını öğrenmekte, ardından veri yapıları ve algoritma tasarımı konularını uygulamalı olarak incelemektedir.

Özet İçerik

Ders kapsamında öncelikle C++ programlama dilinin temel kavramları ele alınmakta; veri tipleri, değişkenler, operatörler, karar yapıları, döngüler, fonksiyonlar, diziler, karakter dizileri, pointer kullanımı, dinamik bellek yönetimi ve dosya işlemleri ayrıntılı olarak öğretilmektedir. Ayrıca yapı (struct) ve sınıf (class) kavramları ile nesne yönelimli programlamaya giriş yapılmaktadır. Dersin devamında veri yapıları ve algoritmalar konuları incelenmektedir. Bu kapsamda algoritma analizi, zaman karmaşıklığı ve Big-O gösterimi açıklanmakta; bağlı listeler, yığınlar (stack), kuyruklar (queue) ve ağaç yapıları gibi temel veri yapıları ele alınmaktadır. Ayrıca doğrusal arama, ikili arama (binary search) ve temel sıralama algoritmaları uygulamalı olarak incelenmektedir. Ders sonunda öğrencilerin problem çözme, algoritma geliştirme ve uygun veri yapısı seçme becerilerinin geliştirilmesi hedeflenmektedir.

Dersi Veren Öğretim Görevlisi/Görevlileri
Prof. Dr. Muhsin ÖZDEMİR
Öğrenme Çıktıları
1.C++ programlama dilinin temel yapılarını kullanarak program geliştirebilir.
2.Problem çözme süreçlerinde algoritmik düşünme yaklaşımını uygulayabilir.
3.Fonksiyonlar, diziler, pointerlar ve sınıflar gibi temel programlama yapılarını etkin biçimde kullanabilir.
4.Temel veri yapılarını kullanarak veri organizasyonu ve yönetimi gerçekleştirebilir.
5.Temel arama ve sıralama algoritmalarının çalışma mantığını analiz edebilir ve uygulayabilir.
Ders Kitabı / Malzemesi / Önerilen Kaynaklar
1.Rifat Çölkesen, Veri Yapıları ve Algoritmalar, Papatya Yayıncılık 2002.
2.2. Cormen, Leiserton, Rivest, Introduction to Algorithms, MIT Press, 2001
3.Horowitz, Sahni, Rajasekaran, Computer Algorithms, Computer Science Press, 1998.
Haftalık Ayrıntılı Ders İçeriği
1. Hafta - Teorik
Programlamaya ve C++ Diline Giriş * Algoritma ve programlama kavramları * Derleyici ve yorumlayıcı kavramı * C++ geliştirme ortamının kurulumu * İlk C++ programı * Temel sözdizimi kuralları * Veri tipleri ve değişkenler Uygulama * Basit giriş/çıkış programları
1. Hafta - Ön Hazırlık
Ders Materyali
2. Hafta - Teorik
Operatörler ve Programlama İfadeleri * Aritmetik operatörler * Mantıksal operatörler * Karşılaştırma operatörleri * Atama operatörleri * İşlem önceliği * Tür dönüşümleri Uygulama * Matematiksel işlem programları
2. Hafta - Ön Hazırlık
Ders Materyali
3. Hafta - Teorik
Karar Yapıları * if, if-else yapıları * switch-case yapısı * İç içe koşullar * Mantıksal karar mekanizmaları Uygulama * Karar verme algoritmaları
3. Hafta - Ön Hazırlık
Ders Materyali
4. Hafta - Teorik
Döngüler * for döngüsü * while döngüsü * do-while döngüsü * Sonsuz döngü kavramı * break ve continue kullanımı Uygulama * Seri ve tekrar işlemleri
4. Hafta - Ön Hazırlık
Ders Materyali
5. Hafta - Teorik
Fonksiyonlar * Fonksiyon tanımlama * Parametre kullanımı * Geri dönüş değeri * Yerel ve global değişkenler * Rekürsif fonksiyonlara giriş Uygulama * Matematiksel fonksiyon geliştirme
5. Hafta - Ön Hazırlık
Ders Materyali
6. Hafta - Teorik
Diziler ve Karakter Dizileri * Tek boyutlu diziler * Çok boyutlu diziler * String işlemleri * Karakter dizileri Uygulama * Dizi tabanlı problem çözümü
6. Hafta - Ön Hazırlık
Ders Materyali
7. Hafta - Teorik
İşaretçiler (Pointers) ve Bellek Yönetimi * Bellek yapısı * Pointer kavramı * Pointer işlemleri * Dinamik bellek kullanımı * new ve delete işlemleri Uygulama * Dinamik veri yapısı örnekleri
7. Hafta - Ön Hazırlık
Ders Materyali
8. Hafta - Teorik
Yapılar ve Nesne Yönelimli Programlamaya Giriş * struct kullanımı * Sınıf (class) kavramı * Nesne oluşturma * Erişim belirleyiciler * Constructor kavramı Uygulama * Basit sınıf tasarımları
8. Hafta - Ön Hazırlık
Ders Materyali
9. Hafta - Teorik
Dosya İşlemleri * Dosya okuma ve yazma işlemleri * Metin dosyaları ile çalışma * Hata kontrol mekanizmaları * C++ genel tekrar ve uygulamalar Uygulama * Dosya tabanlı mini uygulama
9. Hafta - Ön Hazırlık
Ders Materyali
10. Hafta - Teorik
Veri Yapılarına Giriş ve Algoritma Analizi * Veri yapısı kavramı * Soyut veri tipi (ADT) * Algoritma analizi * Zaman karmaşıklığı * Big-O gösterimi Uygulama * Temel algoritma analizleri
10. Hafta - Ön Hazırlık
Ders Materyali
11. Hafta - Teorik
Bağlı Listeler (Linked Lists) * Tek yönlü bağlı liste * Çift yönlü bağlı liste * Düğümler arası bağlantılar * Ekleme ve silme işlemleri Uygulama * Bağlı liste uygulamaları
11. Hafta - Ön Hazırlık
Ders Materyali
12. Hafta - Teorik
Yığın (Stack) ve Kuyruk (Queue) * Stack veri yapısı * Push / Pop işlemleri * Queue veri yapısı * FIFO ve LIFO mantığı * Kuyruk uygulamaları Uygulama * Parantez kontrolü * Kuyruk simülasyonları
12. Hafta - Ön Hazırlık
Ders Materyali
13. Hafta - Teorik
Arama ve Sıralama Algoritmaları * Doğrusal arama * Binary search * Bubble sort * Selection sort * Insertion sort Uygulama * Algoritma performans karşılaştırmaları
13. Hafta - Ön Hazırlık
Ders Materyali
14. Hafta - Teorik
Ağaç Yapıları ve Genel Değerlendirme * Ağaç veri yapısı kavramı * Binary tree yapısı * Düğüm ve seviye kavramları * Ağaç dolaşım yöntemleri * Genel tekrar ve proje değerlendirmesi Uygulama * Basit ağaç uygulamaları
14. Hafta - Ön Hazırlık
Ders Materyali
15. Hafta - Ön Hazırlık
16. Hafta - Ön Hazırlık
17. Hafta - Ön Hazırlık
18. Hafta - Ön Hazırlık
19. Hafta - Ön Hazırlık
20 .Hafta - Ön Hazırlık
21. Hafta - Ön Hazırlık
22. Hafta - Ön Hazırlık
23. Hafta - Ön Hazırlık
24. Hafta - Ön Hazırlık
25. Hafta - Ön Hazırlık
26. Hafta - Ön Hazırlık
27. Hafta - Ön Hazırlık
28. Hafta - Ön Hazırlık
29. Hafta - Ön Hazırlık
30. Hafta - Ön Hazırlık
31. Hafta - Ön Hazırlık
32. Hafta - Ön Hazırlık
Değerlendirme
Değerlendirme TürüAdetYüzde
Kısa Sınav (Quiz)2%10
Ara Sınav (Vize)1%30
Dönem Sonu Sınavı (Final)1%60
İş Yükü Hesaplaması
EtkinlikSayısıÖn HazırlıkSüreToplam Iş Yükü (Saat)
Kuramsal Ders132365
Ödev132026
Bireysel Çalışma132026
Kısa Sınav1819
Ara Sınav19110
Dönem Sonu Sınavı113114
TOPLAM İŞ YÜKÜ (Saat)150
Program ve Öğrenme Çıktıları İlişkisi
PÇ-1
PÇ-2
PÇ-3
PÇ-4
PÇ-5
PÇ-6
PÇ-7
PÇ-8
PÇ-9
PÇ-10
PÇ-11
PÇ-12
PÇ-13
PÇ-14
PÇ-15
OÇ-1
4
4
4
3
2
4
4
3
3
2
4
3
4
3
3
OÇ-2
5
4
5
3
3
5
5
4
4
2
4
3
5
4
4
OÇ-3
4
5
5
3
3
4
4
4
3
2
5
4
4
3
4
OÇ-4
4
4
5
3
3
4
4
5
4
2
5
3
4
3
5
OÇ-5
4
4
4
2
2
4
5
4
4
2
4
2
5
3
4
Adnan Menderes Üniversitesi - Bilgi Paketi / Ders Kataloğu
2026