· EEM227
EEM227 Veri Yapıları: Ders İzlencesi (2014)
EEM227 – Veri Yapıları · 22.09.2014 · 16.10.2026
Bu yazı, Başkent Üniversitesi Elektrik-Elektronik Mühendisliği EEM227 Veri Yapıları (Data Structures) dersinin izlencesidir. Hazırlayan Atilla Özgür, tarih 22 Eylül 2014. Ders Java ile işleniyordu; arşivdeki diğer EEM227 yazıları da bu dersin kod örneklerinden oluşuyor. İzlencenin orijinal PDF'i yazının sonunda indirilebilir.
Dersin amacı
- Yazılım programlama sırasında karşılarına en çok çıkan veri yapılarına giriş
- Veri yapılarının programlama dili içerisinde ne zaman ve nasıl kullanılacağı
- Hangi problemlerin çözümünde hangi veri yapısının daha uygun olduğu
- Veri yapılarının ana mantıkları
- Veri yapılarının kodlarının yazılması
Not hesaplama
| Not | Yüzde |
|---|---|
| Quiz | %15 |
| Ara sınav | %35 |
| Final | %45 |
| Yoklama | %5 |
| Toplam | %100 |
Ders içerikleri ve sınavlar
Tüm ders içeriği hocanın WordPress sitesi ve YouTube kanalı üzerinden yayınlanıyordu; öğrenciler YouTube'daki videolardan ve WordPress'teki ders notlarından sorumluydu. Duyurular için Twitter da kullanılıyordu, ama ana kaynak WordPress sitesiydi.
- atiozgur.wordpress.com/verilen-dersler/baskent-eem-227/
- youtube.com/user/ati1ozgur
Sınavlar açık not şeklindeydi: sitedeki ders notlarının ve daha önce verilen labların çıktısı alınıp sınavda kullanılabiliyor, bu notların arkasına kendi notlarınızı da ekleyebiliyordunuz. Başka kitap ve çıktı getirilmesine izin verilmiyordu.
Konular
Hafta 1–2: Yazılım geliştirme ortamı ve Java'yı gözden geçirme
- JDK kurulumu, BlueJ IDE (entegre geliştirme ortamı), Eclipse kurulumu
- Class (sınıf), main metodu
- Temel veri türleri (primitive data types) ve referans veri türleri (reference data types)
- Kontrol yapıları (control structures) ve döngüler (loop structures)
- Java'da referans, call by reference ve call by value
- Constructor
Hafta 3: Temel veri yapıları
- Array (diziler) ve dizi boyut değiştirme problemi (array resize problem)
- Array list (dizi listeler) ve Java'da kullanımı
- Linked list (bağlı listeler) ve Java'da kullanımı
- Double linked list
Hafta 4: Java yardımcı konular
- Generics
- Iterators
Hafta 5: Tasarım prensipleri ve analiz teknikleri
- Veri yapıları ve algoritmalar
- İşletim sistemi: stack ve heap kavramları
- Nesneye yönelik tasarım prensipleri (object-oriented design principles)
- Çalışma zamanı (running time) ve hızlı matematik gözden geçirme
- Algoritma analizi, asimptotik notasyon (Büyük O, "Big-Oh") ve asimptotik analiz
Hafta 6–7: Stack, queue, list
- Stack (yığın) ve Java'da kullanımı
- Queue (sıra) ve Java'da kullanımı
- Double-ended queue (deque) ve Java'da kullanımı
Hafta 8: Sözlük ve ağaçlar (dictionaries and trees)
- Sözlük soyut veri yapısı (the dictionary abstract data type)
- Binary search trees, AVL trees
- Hash tables
- Recursion (özyineleme)
Hafta 9: Sets
- Sets ve Java'da kullanımı
Hafta 10–12: Sıralama ve seçme (sorting, selection)
- Bubble sort, quick sort, merge sort, radix sort
- Sıralamanın karmaşıklığı (complexity of sorting)
- Selection
Hafta 13–14: Sequences
- Ranked sequences, positional sequences, general sequences
- Priority queues (zaman kalırsa): priority queue soyut veri tipi, sequence olarak priority queue, heaps
Çıkarılan konular: çizge algoritmaları (graph algorithms), ikili karar çizgeleri (binary decision trees), devingen programlama (dynamic programming).
Not: Dropbox arşivinde bu dersin klasörü "BTS202 - Veri Yapıları" adını taşıyordu; izlencedeki ders kodu EEM227 olduğu için yazılarda bu kod kullanıldı.