Bilgisayar Mühendisliği Lisans Programı

Veri Yapısı ve Algoritmalar(INF224)

Ders Kodu Dersin Adı Yarıyıl Teori Uygulama Lab Kredisi AKTS
INF224 Veri Yapısı ve Algoritmalar 3 3 0 2 3 4
Ön Koşul INF103
Derse Kabul Koşulları INF103
Dersin Dili Fransızca
Türü Zorunlu
Dersin Düzeyi Lisans
Dersi Veren(ler) Gülfem ALPTEKİN gulfem@gmail.com (Email) Özgün PINARER opinarer@gsu.edu.tr (Email)
Dersin Yardımcıları
Dersin Amacı Dersin asıl amacı, öğrenciye çeşitli veri tipleri için en uygun veri yapısını seçebilme, bu veri yapılarını algoritmalar içinde kullanabilme, yazılan algoritmaların performans analizlerini yapabilme ve veri yapılarını ve ilgili algoritmaları seçilen bir bilgisayar dilinde kodlayabilme yetilerini kazandırmaktır.
Dersin içeriği aşağıdaki gibi özetlenebilir:
- Öğrencilere farklı tipte veri örnekleri gösterilerek, aradaki farklar üzerinde durulur.
- Bir algoritmayı bir fonksiyon olarak düşünebilme yetisi verilir.
- Verilen iki algoritmanın, performans açısından birbiriyle kıyaslaması öğretilir.
- Öğrenciler farklı veri yapılarını bilgisayar dilinde gerçeklemeyi öğrenirler.
- Öğrenciler veri yapılarını görsel olarak betimlemeyi öğrenirler.
- Öğrenciler, öğrendikleri veri yapılarını algoritmalar içinde kullanmayı öğrenirler.
İçerik 1. Hafta: Algoritma analizi
2. Hafta: Genel veri yapıları (diziler, bağlı liste, kuyruk, yığın veri yapısı)
3. Hafta: Ağaç veri yapısı, ikili arama ağacı, ağaçta gezinme
4. Hafta: AVL ağaçları, splay ağaçları
5. Hafta: Öncelikli kuyruk, heap
6. Hafta: Dinamik diziler
7. Hafta: Ayrık kümeler
8. Hafta: Çırpı fonksiyonu, hashing
9. Hafta: Ara sınav
10. Hafta: Çizge veri yapısı
11. Hafta: Çizge algoritmaları (en kısa yol, en küçük kapsar ağaç)
12. Hafta: Arama algoritmaları
13. Hafta: Sıralama algoritmaları
14. Hafta: Kodlama algoritmaları
Dersin Öğrenme Çıktıları Bu dersi başarıyla tamamlayan öğrenci:

1. Çeşitli veri yapıları arasındaki farkları gösterebilir.
2. Elindeki veriye ve içinde bulunduğu kısıtlara göre en uygun veri yapısını seçebilir.
3. Problemleri çözmede kullandığı algortimalarda bu veri yapılarını kullanabilir.
4. Farklı algoritmaları, zaman ve kaynak harcama kriterlerine göre birbiriyle kıyaslayabilir ve aralarından kendi problemi açısından en uygununu seçebilir.
5. Veri yapılarını ve çeşitli algoritmaları seçilen bir programlama dilinde gerçekleyebilir.
Öğretim Yöntemleri Anlatım, Tartışma, Gösterip Yaptırma, Örnek Olay, Problem Çözme, İşbirlikli Öğrenme, Proje, Beyin Fırtınası
Kaynaklar 1. M.A. Weiss, Data Structures & Algorithm Analysis in C++, 1999, Addison Wesley.
2. A.M. Tanenbaum, Data Structures using C, 1989, Prentice Hall.
3. A. Drozdek, Data Structures and Algorithmss in C++, 2004, Course Technology.
4. R. Sedgewick, Algorithms in C, Parts 1-4: Fundamentals, Data Structures, Sorting, Searching, 1997, Addison-Wesley.
5. Olcay Taner Yıldız, C && Java ile Veri Yapılarına Giriş, Boğaziçi Üniversitesi Yayınevi, 2013.
Ders İçeriğini Yazdır
Teori Konu Başlıkları
Hafta Konu Başlıkları
1 Genel hatırlama
2 Genel veri yapıları (diziler, zincirli liste, yığın, kuyruk veri yapısı)
3 Ağaç veri yapısı, ikili arama ağacı
4 AVL ağaçları
5 Ağaç erişim algoritmaları, splay tree
6 Öncelikli kuyruklar, heap
7 Ayrık kümeler
8 Ara sınav
9 Dinamik diziler
10 Çırpı fonksiyonu
11 En kısa yol, en küçük kapsar ağaç algoritmaları
12 Arama algoritmaları
13 Sıralama algoritmaları
14 Öğrenci sunumları
Uygulama Konu Başlıkları
Hafta Konu Başlıkları
1 Genel hatırlama
2 Genel veri yapıları (diziler, zincirli liste, kuyruk veri yapısı) uygulamaları
3 Ağaç veri yapısı, ikili arama ağacı uygulamaları
4 AVL ağaçları uygulamaları
5 Ağaç erişim algoritmaları uygulamaları
6 Öncelikli kuyruklar, heap uygulamaları
7 Ayrık kümeler ve uygulamaları
8 Ara sınav
9 Dinamik dizi uygulamaları
10 Çırpı fonksiyonu uygulamaları
11 En kısa yol, en küçük kapsar ağaç algoritmaları uygulamaları
12 Arama algoritmaları uygulamaları
13 Sıralama algoritmaları uygulamaları
14 Öğrenci sunumları
Başarı Notuna Etki Oranları
  Sayı Katkı Payı
Yarıyıl içi çalışmaların başarı notuna katkısı 1 60
Yarıyıl sonu çalışmaların başarı notuna katkısı 1 40
Toplam 2 100
Yarıyıl İçi Çalışmaları
  Sayı Katkı Payı
Ödevler 0 0
Sunum 0 0
Arasınavlar (Hazırlık Süresi Dahil) 1 15
Proje 1 15
Laboratuar 8 15
Diğer Uygulamalar 0 0
Kısa Sınavlar 1 15
Dönem Ödevi / Projesi 0 0
Portfolyo Çalışmaları 0 0
Raporlar 0 0
Öğrenme Günlükleri 0 0
Bitirme Tezi/Projesi 0 0
Seminer 0 0
Diğer 0 0
Toplam 11 60
Numara Program Yeterlilikleri Puan
1 2 3 4 5
1 Matematik, fizik ve mühendislik bilimlerine özgü konularda yeterli bilgi birikimi; bu alanlardaki kuramsal ve uygulamalı bilgileri, mühendislik problemlerinin modellenmesi ve çözümünde kullanabilme becerisi. X
2 Karmaşık bilgisayar mühendisliği problemlerini saptama, tanımlama, formüle etme ve çözme becerisi; bu amaçla uygun analiz ve modelleme yöntemlerini seçme ve uygulama becerisi. X
3 Yazılımsal veya donanımsal karmaşık bir sistemi, süreci veya donanımı gerçekçi kısıtlar ve koşullar altında, belirli gereksinimleri karşılayacak şekilde tasarlama becerisi; bu amaçla modern tasarım yöntemlerini uygulama becerisi. X
4 Mühendislik uygulamalarında karşılaşılan karmaşık problemlerin analizi ve çözümü için gerekli olan modern teknik ve araçları geliştirme, seçme ve kullanma becerisi; bilişim teknolojilerini etkin bir şekilde kullanma becerisi. X
5 Analitik düşünce ile bir sistemi, sistem bileşenini ya da süreci analiz etme, modelleme, deney tasarlama ve yapma, veri toplama, çözüm algoritmaları üretebilme, uygulamaya alma ve geliştirme becerileri. X
6 Disiplin içi ve çok disiplinli takımlarda etkin biçimde çalışabilme becerisi; bireysel çalışma becerisi. X
7 Türkçe sözlü ve yazılı etkin iletişim kurma becerisi; en az iki yabancı dil bilgisi; etkin rapor yazma ve yazılı raporları anlama, yazılım ve donanım tasarımını, gerekirse teknik resim metotları kullanarak raporlayabilme, etkin sunum yapabilme becerisi. X
8 Bilgiye erişebilme ve bu amaçla kaynak araştırması yapabilme, veri tabanları ve diğer bilgi kaynaklarını kullanabilme becerisi X
9 Yaşam boyu öğrenmenin gerekliliği bilinci; kendini sürekli yenileme becerisi. X
10 Mesleki etik ilkelerine uygun davranma, mesleki sorumluluk bilinci; mühendislik uygulamalarında kullanılan standartlar hakkında bilgi.
11 Proje yönetimi, risk yönetimi ve değişiklik yönetimi gibi, iş hayatındaki uygulamalar hakkında bilgi; girişimcilik, yenilikçilik hakkında farkındalık; sürdürülebilir kalkınma hakkında bilgi.
12 Mühendislik uygulamalarının evrensel ve toplumsal boyutlarda sağlık, çevre ve güvenlik üzerindeki etkileri ve çağın mühendislik alanına yansıyan sorunları hakkında bilgi. X
13 Bilgisayar mühendisliği uygulamalarının hukuki ve etik boyutları konusunda farkındalık.
Etkinlikler Sayı Süre Toplam İş Yükü
Ders Süresi 14 3 42
Sınıf Dışı Çalışma Süresi 14 1 14
Arasınavlar (Hazırlık Süresi Dahil) 1 6 6
Proje 1 8 8
Laboratuar 12 2 24
Yarıyıl Sonu Sınavı (Hazırlık Süresi Dahil) 1 10 10
Toplam İş Yükü 104
Toplam İş Yükü / 25 4,16
Dersin AKTS Kredisi 4
Scroll to Top