Dersin Adı | Kodu | Yarıyıl | T+U+L (saat/hafta) | Türü (Z / S) | Yerel Kredi | AKTS |
---|---|---|---|---|---|---|
Veri Yapıları ve Algoritmalar | CE 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 | Önerilen:- Giriş programlama bilgisi - Ayrık Hesaplama Yapıları |
Öğrenim Dili: | İngilizce |
Dersin Düzeyi: | Lisans |
Dersin Koordinatörü: | Doğan ÇÖRÜŞ |
Dersin Amacı: | Bu dersin temel amacı, öğrencilere bilgisayar bilimlerinde ve hesaplama problemlerinde yaygın olarak kullanılan ayrık veri yapılarının tasarımı ve uygulanmasında problem çözme ve deneyim kazandırmaktır. Öğrenciler, hesaplama karmaşıklığı analizi ile tanışacak ve en önemli veri yapılarını ve göreli algoritmaları nasıl uygulayacaklarını ve nasıl kullanacaklarını öğreneceklerdir. |
Dersin İçeriği: | Soyut Veri Tipleri ve Veri Yapıları tanımı, Big-O Notasyonuna Giriş (Hesaplamalı Karmaşıklık Analizi), Statik Diziler, Dinamik Diziler, C++ STL Kapsayıcıları, C++ STL Yineleyiciler, C++ STL Algoritmaları, Özyineleme, Tek Bağlantılı Liste, Çift Bağlantılı Listeler, Yığınlar, Kuyruklar, Grafiklere ve Ağaçlara Giriş, İkili Ağaçlar, Derinlik İlk Arama, Genişlik İlk Arama, İkili Arama Ağaçları, Ön Sipariş Geçişi, Sıra Sıra Geçişi, Sipariş Sonrası Geçiş, Düzey Sıra Geçişi, Öncelik Kuyrukları ve Yığınlar, İkili Yığınlar, Karma Tablolar, Seri Zincirleme, Açık Adresleme, Kabarcık Sıralaması, Seçim Sıralaması, Ekleme Sıralaması, Birleştirme Sıralaması, Hızlı Sıralama, Yığın Sıralama, Son Ek Dizileri, LCP Dizileri. |
Dersin Öğrenme Çıktıları (ÖÇ): |
|
Dersin Öğrenme Yöntem ve Teknikleri | Dersler ve laboratuvar etkinlikleri. Sınıftaki tüm örnekler C++ ile verilecektir. Ödevleri yapmak için LeetCode'da ücretsiz bir hesabınızın olması gerekir (https://leetcode.com/). |
Hafta | Konular | Ö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 | Vize | 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, 5, 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 | |
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) | TBA | 1, 3, 6, 4 |
14 | Final Sınavı için En İyi Uygulamalar ve Özet | 1, 6, 4, 5 |
- Goodrich, Tamassia, Mount, "Data Structures & Algorithms in C++", 2nd edition - Mark Allen Weiss, "Data Structures and Algorithm Analysis in C++”, 4th edition - Steven S. Skiena, “The Algorithm Design Manual”, 3dh edition |
- Geeksforgeeks online tutorials: https://www.geeksforgeeks.org/data-structures/ - William Fiset's video: https://www.youtube.com/watch?v=RBSGKlAvoiM - LeetCode: https://leetcode.com - CoderPad: https://app.coderpad.io/sandbox |
Yarıyıl İçi Çalışmaları | Sayı | Katkı Payı (%) |
---|---|---|
Ödev | 1 | 10 |
Final Sınavı | 1 | 45 |
Ara Sınavlar | 1 | 45 |
Total: | 3 | 100 |
Etkinlikler | Sayısı | Süresi (saat) | Toplam İş Yükü (saat) |
---|---|---|---|
Ders Saati | 42 | 1 | 42 |
Laboratuvar | 28 | 1 | 28 |
Ödev | 6 | 7 | 42 |
Final Sınavı | 1 | 20 | 20 |
Ara Sınavlar | 1 | 18 | 18 |
Toplam İş Yükü (saat): | 150 |
# | PY1 | PY2 | PY3 | PY4 | PY5 | PY6 | PY7 | PY8 | PY9 | PY10 | PY11 | PY12 |
OC1 | 1 | 2 | ||||||||||
OC2 | 1 | 2 | 3 | 1 | 2 | |||||||
OC3 | 1 | 3 | 3 | 1 | 2 | |||||||
OC4 | 2 | 2 | 3 | 1 | 2 | |||||||
OC5 | 1 | 2 | 3 | 1 | 2 | |||||||
OC6 | 1 | 2 | 3 | 2 | 2 | 2 | ||||||
OC7 | ||||||||||||
OC8 | ||||||||||||
OC9 |