DERS TANITIM ve UYGULAMA BİLGİLERİ

Dersin Adı Kodu Yarıyıl T+U+L (saat/hafta) Türü (Z / S) Yerel Kredi AKTS
Veri Yapıları ve Algoritmalar CMPE 242 Bahar 03+00+02 Zorunlu 4 6
Akademik Birim: Bilgisayar Mühendisliği Bölümü
Öğrenim Türü: Örgün Eğitim
Ön Koşullar CMPE 241
Öğrenim Dili: İngilizce
Dersin Düzeyi: Lisans
Dersin Koordinatörü: Doğan ÇÖRÜŞ
Dersin Amacı: Bu dersin temel amacı öğrenciye problem çözmenin temelleri ile ilgili gerekli bilgiyi ve bilgisayar bilimleri ve hesapsal problemlerde yaygın olarak kullanılan ayrık veri yapılarının ve algoritmaların tasarım ve gerçekleştirimi becerisini kazandırmaktır.
Dersin İçeriği: Veri yapıları ve algoritmalara giriş. Asimtotik notasyon ve analiz araçlarına genel bir bakış. Özyineleme ve bilgisayar bilimlerinde problem çözüm uygulaması. Bağlı listeler, çift bağlı listeler, yığıtlar, kuyruklar gibi önemli soyut veri tiplerinin tasarım ve gereçekleştirimi. Verimli sıralama, arama algoritmalarının ve ikili arama ağaçları gibi ayrık arama yapılarının tasarımı ve gereçekleştirimi.
Dersin Öğrenme Çıktıları (ÖÇ):
  • 1- doğruluk için algoritmaları veya bilgisayar kodunu analiz etmek
  • 2- verimlilik açısından algoritmaları ve bilgisayar kodunu değerlendirmek
  • 3- en önemli veri yapılarını öğrenmek
  • 4- en önemli veri yapılarının nasıl uygulanacağını öğrenmek
  • 5- sorunları çözmek için veri yapılarının nasıl kullanılacağını öğrenmek
  • 6- bazı gelişmiş algoritmaları öğrenmek
  • 7- problem çözme becerilerini geliştirmek
  • 8- kaba kuvvet yaklaşımını kullanmadan sorunları nasıl çözeceğinizi öğrenmek
  • 9- bir kodlama görüşmesi için (neredeyse) hazır olmak
Dersin Öğrenme Yöntem ve Teknikleri Sınıfta ders anlatımı ardından bilgisayar laboratuarında uygulama.


HAFTALIK PROGRAM

HaftaKonularÖn Hazırlık ÖÇ
1 Giriş, Soyut Veri Tipleri Goodrich-Tamassia Bölüm 1, 2 1
2 Hesaplamalı Karmaşıklık Analizi Goodrich-Tamassia Bölüm 4 Skiena Bölüm 2.1, 2.2, 2.3, 2.4, 2.6, 2.7, 5.1 2, 4, 5, 6
3 Statik ve Dinamik Diziler, STL Goodrich-Tamassia Bölüm 3.1, 6.1, 6.2 Skiena Bölüm 3.1.1 2, 4, 5, 6
4 Özyineleme Goodrich-Tamassia Bölüm 3.5 1, 3, 4, 5
5 Bağlantılı Listeler Goodrich-Tamassia Bölüm 3.2, 3.3 Skiena Bölüm 3.1 1, 2, 3, 6
6 Yığınlar, Kuyruklar Goodrich-Tamassia Bölüm 5.1, 5.2 Skiena Bölüm 3.2 1, 2, 3, 6
7 Proje 1 1, 2, 3, 6
8 Grafikler, Ağaçlar, İkili Ağaçlar, Çapraz Ağaçlar (1) Goodrich-Tamassia Bölüm 13.1, 13.2, 13.3, 7 Skiena Bölüm 7 1, 2, 3, 6
9 Grafikler, Ağaçlar, İkili Ağaçlar, Çapraz Ağaçlar (2) Goodrich-Tamassia Bölüm 10.1 Skiena Bölüm 3.4 1, 2, 3, 6
10 Öncelikli Kuyruklar ve Yığınlar Goodrich-Tamassia Bölüm 8 Skiena Bölüm 3.5 1, 2
11 Hash Tabloları Goodrich-Tamassia Bölüm 9 Skiena Bölüm 3.7 1, 2
12 Sıralama Algoritmaları Goodrich-Tamassia Bölüm 11.1, 11.2 Skiena Bölüm 4 1, 2, 3, 4
13 Son Ek Dizileri ve LCP Dizileri (Geçici) 1, 3, 6, 4
14 Final sınavı için En İyi Uygulamalar ve Özet 1, 6, 4, 5


ZORUNLU ve ÖNERİLEN OKUMALAR

M. A. Weiss, Data Structures and Algorithm Analysis in C++, Pearson, 2014, 4th Ed.


DİĞER KAYNAKLAR

Data Structures Using C++, 2nd Edition by D. S. Malik


DEĞERLENDİRME SİSTEMİ

Yarıyıl İçi ÇalışmalarıSayıKatkı Payı (%)
Proje 2 90
Ödev 1 10
Total: 3 100


İŞ YÜKÜ HESAPLAMASI

EtkinliklerSayısıSüresi (saat)Toplam İş Yükü (saat)
Ders Saati14342
Laboratuvar14228
Proje23570
Ödev11010
Toplam İş Yükü (saat):150


PROGRAM YETERLİLİKLERİ (PY) ve ÖĞRENME ÇIKTILARI (ÖÇ) İLİŞKİSİ

# PY1 PY2 PY3 PY4 PY5 PY6 PY7 PY8 PY9 PY10 PY11 PY12
OC1 2 2 3 1 2 2   3        
OC2 2 3 3 1 3 3   3        
OC3 2 2 3 1 3 2   3        
OC4 2 3 3 2 3 2   3        
OC5 2 2 3 2 2 2   3        
OC6 2 2 3 2 2 3   3        
OC7 2 2 3 2 2 3   3        
OC8 2 2 3 2 2 3   3        
OC9 2 2 3 2 3 2   3