. .

Dersin Adı-Kodu:

Veri Yapıları ve Algoritmaları 3 (3+0)

Programın Adı:

BİLİŞİM SİSTEMLERİ

Yarıyıl

Eğitim ve Öğretim Yöntemleri

Krediler

Teori

Uyg.

Lab.

Proje/Alan Çalışması

Ödev

Diğer

Toplam

Kredi

AKTS Kredisi

1-2

42

50

 

 

38

58

188

3

7.5

Ders Dili

Türkçe

Zorunlu / Seçmeli

Seçmeli

Ön şartlar

Yok

Dersin

İçeriği

Yığıtlar, kuyruklar, bağlı listeler. Dinamik bellek ayırma. Ağaç yapılar. B-ağaçları ve uygulamaları. Graflar, en kısa yollar, topolojik sıralama. Sıralama ve arama teknikleri ve performans. Statik ve dinamik kırpma (hash) teknikleri. Algoritmalara giriş, algoritma analizi. Sıralama algoritmaları (selection sort, insertion sort, bubble sort, shell sort, merge sort, quick sort, heap sort), doğrusal zamanda sıralama (count sort, radix sort, bucket sort). Temel graf algoritmaları (BFS, DFS, Topological sort). Greedy algoritmları, minimum spanning trees (kruskal algorithm, prim algorithm), shortest path (bellman-ford algorithm, dijkstra algorithm). Bilgi sıkıştırma (Huffman algorithm).

Dersin Amacı

Yığıtlar, kuyruklar, bağlı listeler, Dinamik bellek ayırma, Ağaç yapıları, B-ağaçları ve uygulamalarını öğretmek. Graflar, en kısa yollar, topolojik sıralama, Sıralama ve arama tekniklerinin performanslarını öğretmek. Sıralama algoritmaları (selection sort, insertion sort, bubble sort, shell sort, merge sort, quick sort, heap sort), doğrusal zamanda sıralama (count sort, radix sort, bucket sort) algoritmalarını öğretmek. Temel graf algoritmalarını ve Bilgi sıkıştırma algoritmalarını öğretmek.

Öğrenme

Çıktıları ve Yeterlilikler

Yığıtlar, kuyruklar, bağlı listeler, Dinamik bellek ayırma, Ağaç yapıları, B-ağaçları ve uygulamalarının öğrenilmesi. Graflar, en kısa yollar, topolojik sıralama, Sıralama ve arama tekniklerinin performanslarının öğrenilmesi. Sıralama algoritmaları (selection sort, insertion sort, bubble sort, shell sort, merge sort, quick sort, heap sort), doğrusal zamanda sıralama (count sort, radix sort, bucket sort) algoritmalarının öğrenilmesi. Temel graf algoritmaları ve Bilgi sıkıştırma algoritmalarının öğrenilmesi.

Ders Kitabı ve/veya Kaynaklar

 

·         Robert L. Kruse, Alexander J. Ryba, Data Structures and Program Design in C++, Prentice-Hall, 1999.

·         Adam Drozdek, Data Structures and Algorithms in Java, Thomson Learning,

2001.

·      Rıfat Çölkesen, Veri Yapıları ve Algoritmalar: Program Tasarımı ve Yazılım Mühendisliğinde, Papatya Yaıncılık, 2003

Değerlendirme Ölçütleri

 

Varsa (X) olarak işaretleyiniz

Yüzde (%)

Ara Sınavlar

X

50

Kısa Sınavlar

-

-

Ödevler

-

-

Projeler

-

-

Dönem Ödevi

-

-

Laboratuvar

-

-

Diğer

-

-

Dönem Sonu Sınavı

X

50

Ders Sorumluları

Fen Bilimleri Enstitüsü Müdürlüğü     fenbilim@sdu.edu.tr

 

Hafta

 

Konular

1

2

3

4

5

6

7

8

9

10

11

12

13

14

Giriş

Bağlı Listeler

Yığıtlar

Kuyruklar

Uygulama Örnekleri

Özyineleme

Ağaçlar

Uygulama Örnekleri

Dengelenmiş Ağaçlar

Çok Yollu Ağaçlar

Graflar

Graf Algoritmaları 

Uygulama Örnekleri

Hash Fonksiyonları