BİLGİSAYAR MÜHENDİSLİĞİ
Kazanılan Yeterlilik Program Süresi Toplam Kredi (AKTS) Öğretim Şekli Yeterliliğin Düzeyi ve Öğrenme Alanı
4 240 FULL TIME TYÇ, TYYÇ, EQF-LLL, ISCED (2011):6. Düzey
QF-EHEA:1. Düzey
TYYÇ, ISCED (1997-2013): 48,52

Ders Genel Tanıtım Bilgileri

Ders Kodu: 1410211011
Ders İsmi: Veri Yapıları
Ders Yarıyılı: Güz
Ders Kredileri:
Teorik Pratik Laboratuvar Kredi AKTS
2 2 0 3 4
Öğretim Dili: TR
Ders Koşulu:
Ders İş Deneyimini Gerektiriyor mu?: Hayır
Ders İçin Önerilen Diğer Hususlar: yoktur
Dersin Türü: Zorunlu
Dersin Seviyesi:
Lisans TYYÇ:6. Düzey QF-EHEA:1. Düzey EQF-LLL:6. Düzey
Dersin Veriliş Şekli: Yüz yüze
Dersin Koordinatörü: Dr.Öğr.Üyesi Recep DURANAY
Dersi Veren(ler):

Dersin Yardımcıları:

Dersin Amaç ve İçeriği

Dersin Amacı: Algoritmalar ve Veri Yapıları Kavramlarını Öğretmek: Öğrencilere temel algoritma ve veri yapıları kavramlarını öğretmek, bu yapıların nasıl kullanıldığını anlamalarını sağlamak.
Problem Çözme Becerilerini Geliştirmek: Algoritmalar ve veri yapıları yardımıyla daha verimli problem çözme yollarını geliştirmek.
Verimli Kod Yazmayı Teşvik Etmek: Bellek ve zaman verimliliğini optimize eden veri yapıları kullanarak etkili kod yazmayı öğretmek.
Teorik Bilgiyi Uygulama Yeteneği Kazandırmak: Teorik bilgi ve kavramları yazılım geliştirme süreçlerinde uygulama yeteneğini kazandırmak.
Dersin İçeriği: Giriş ve Temel Kavramlar:

Algoritmaların temelleri
Zaman ve uzay karmaşıklığı
Big-O notasyonu
Basit Veri Yapıları:

Diziler (arrays) ve bağıl listeler (linked lists)
Yığınlar (stacks) ve kuyruklar (queues)
Bağlantılı veri yapıları (singly/doubly linked lists)
Ağaçlar (Trees):

İkili ağaçlar (binary trees)
İkili arama ağaçları (binary search trees)
AVL ağaçları
Kırmızı-Siyah Ağaçları (Red-Black Trees)
B ağaçları
Graf Yapıları (Graphs):

Temel grafik kavramları (vertices, edges)
Derinlik öncelikli arama (DFS) ve genişlik öncelikli arama (BFS)
Ağırlıklı graf ve en kısa yol algoritmaları (Dijkstra, Bellman-Ford)
Hash Tabloları:

Hash fonksiyonları ve çarpışma çözümleme yöntemleri
Zincirleme ve open addressing yöntemleri
Sıralama ve Arama Algoritmaları:

Sıralama algoritmaları (selection sort, bubble sort, merge sort, quicksort)
Arama algoritmaları (linear search, binary search)
Kuyruk Yapıları ve Öncelikli Kuyruklar:

Öncelikli kuyruk (priority queue)
İkili yığınlar (binary heaps)
Dinamik Bellek Yönetimi:

Bellek ayırma ve boşaltma
Çöp toplayıcılar (garbage collection)

Öğrenme Kazanımları

Bu dersi başarıyla tamamlayabilen öğrenciler;
Öğrenme Kazanımları
1 - Bilgi
Kuramsal - Olgusal
1) Temel veri yapılarını anlayıp uygulayabilecek.
2 - Beceriler
Bilişsel - Uygulamalı
1) Yığın, kuyruk, bağlı liste, ağaç ve grafik yapıları oluşturabilecek.
2) Gerçek dünyadaki hesaplama problemlerini veri yapılarıyla çözebilecek.
3) Kodlama çalışmaları ile problem çözme becerisi geliştirebilecek.
3 - Yetkinlikler
İletişim ve Sosyal Yetkinlik
Öğrenme Yetkinliği
1) Veri yapılarının verimliliğini Big-O notasyonu ile analiz edebilecek.
2) Dinamik bellek yönetimi ve özyinelemeyi anlayabilecek.
Alana Özgü Yetkinlik
1) Sıralama ve arama algoritmalarını etkili bir şekilde kullanabilecek.
2) Uygun veri yapıları ile algoritmaları optimize edebilecek.
3) Yazılım geliştirme projelerinde veri yapılarını uygulayabilecek.
Bağımsız Çalışabilme ve Sorumluluk Alabilme Yetkinliği

Ders Akış Planı

Hafta Konu Ön Hazırlık
1) Introduction to Algorithms and Data Structures yok
1) Introduction to Algorithms and Data Structures yok
2) Diziler ve Bağlı Listeler yok
3) Yığınlar ve Kuyruklar yok
4) Recursion and Applications yok
5) Ağaçlar: Temel Kavramlar ve İkili Ağaçlar yok
6) İkili Arama Ağaçları (BST) yok
7) Dengeli Ağaçlar: AVL ve Kırmızı-Siyah Ağaçlar yok
8) vize
9) Hash Tabloları
10) Yığınlar (Heap) ve Öncelikli Kuyruklar
11) Grafikler: Temsil ve Gezinme
12) En Kısa Yol Algoritmaları
13) Sıralama Algoritmaları
14) Dinamik Bellek Yönetimi
15) Final Projesi ve Gözden Geçirme
16) Final

Kaynaklar

Ders Notları / Kitaplar: "Veri Yapıları ve Algoritmalar" – Aydın Afşar

Bu kitap, özellikle Türkçe kaynak arayan öğrenciler için algoritmalar ve veri yapıları konusunda kapsamlı bir rehber sunar. Her konu detaylı bir şekilde açıklanmıştır.
"Algoritmalar ve Programlama" – Adil Alpkoçak

Algoritma geliştirme ve veri yapıları ile ilgili temel konuları işleyen bu kitap, C ve Java gibi programlama dilleri üzerinden örnekler sunar.
"Veri Yapıları ve Çözümlü Algoritmalar" – Aydın Öztürk
Diğer Kaynaklar: "Introduction to Algorithms" – Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein

Bu kitap (kısaca "CLRS" olarak bilinir), üniversitelerde veri yapıları ve algoritmalar konusunda en çok kullanılan kaynaklardan biridir. Temel ve ileri düzey veri yapılarını geniş bir kapsamda ele alır.
"Data Structures and Algorithms in Java" – Michael T. Goodrich, Roberto Tamassia

Java programlama dili üzerinden veri yapıları ve algoritmalar konusuna odaklanan bir kitaptır. Java bilen öğrenciler için uygundur.
"Algorithms, 4th Edition" – Robert Sedgewick, Kevin Wayne

Algoritmalar ve veri yapıları konusunda kapsamlı ve iyi yapılandırılmış bir kaynak. Çeşitli sıralama, arama, grafik algoritmalarını ve veri yapılarını ele alır.
"Data Structures and Algorithm Analysis in C" – Mark Allen Weiss

Ders - Program Öğrenme Kazanım İlişkisi

Ders Öğrenme Kazanımları

1

2

6

3

4

8

5

7

9

Program Kazanımları
1) 1.1 Matematik ve fen bilimleri gibi konularda yeterli bilgi birikimi
2) 1.2 Matematik, fen bilimleri ve bilgisayar mühendisliği konularında kuramsal ve uygulamalı bilgileri mühendislik problemlerini modelleme ve çözme için uygulayabilme becerisi.
3) 1.3 Matematik ve fen bilimleri gibi alanlardaki kuramsal ve uygulamalı bilgileri, karmaşık mühendislik problemlerinde kullanabilme becerisi
4) 2.1 Karmaşık mühendislik problemlerini saptama, tanımlama, formüle etme ve çözme becerisi
5) 2.2 Bu amaçla uygun analiz ve modelleme yöntemlerini seçme ve uygulama becerisi
6) 3.1 Karmaşık bir sistemi, süreci, cihazı veya ürünü gerçekçi kısıtlar ve koşullar altında, belirli gereksinimleri karşılayacak şekilde tasarlama becerisi
7) 3.2 Bu amaçla modern tasarım yöntemlerini uygulama becerisi
8) 4.1 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
9) 4.2 Bilişim teknolojilerini etkin bir şekilde kullanma becerisi
10) 5.1 Karmaşık mühendislik problemlerinin veya disipline özgü araştırma konularının incelenmesi için deney tasarlama becerisi
11) 5.2 Karmaşık mühendislik problemlerinin veya disipline özgü araştırma konularının incelenmesi için deney yapma becerisi
12) 5.3 Karmaşık mühendislik problemlerinin veya disipline özgü araştırma konularının incelenmesi için veri toplama becerisi
13) 5.4 Karmaşık mühendislik problemlerinin veya disipline özgü araştırma konularının incelenmesi için deney sonuçlarını analiz etme ve yorumlama becerisi
14) 6.1 Disiplin içi bireysel çalışma becerisi
15) 6.2 Disiplin içi takımlarda etkin biçimde çalışabilme becerisi
16) 6.3 Çok disiplinli takımlarda etkin biçimde çalışabilme becerisi
17) 7.1 Türkçe sözlü ve yazılı etkin iletişim kurma ve sunum yapabilme becerisi
18) 7.2 En az bir yabancı dil bilgisi
19) 7.3 Etkin rapor yazma ve yazılı raporları anlama becerisi
20) 7.4 Tasarım ve üretim raporları hazırlayabilme becerisi
21) 7.5 Açık ve anlaşılır talimat verme ve alma becerisi
22) 8.1 Yaşam boyu öğrenmenin gerekliği bilinci
23) 8.2 Bilgiye erişebilme, bilim ve teknolojideki gelişmeleri izleme ve kendini sürekli yenileme becerisi
24) 9.1 Etik ilkelerine uygun davranma, mesleki ve etik sorumluluk bilinci
25) 9.2 Mühendislik uygulamalarında kullanılan standartlar hakkında bilgi
26) 10.1 Proje yönetimi, risk yönetimi ve değişiklik yönetimi gibi, iş hayatındaki uygulamalar hakkında bilgi
27) 10.2 Girişimcilik, yenilikçilik hakkında farkındalık
28) 10.3 Sürdürülebilir kalkınma hakkında bilgi
29) 11.1 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
30) 11.2 Mühendislik çözümlerinin hukuksal sonuçları konusunda farkındalık
31) 12.1 Ayrık matematik konusunda bilgi sahip olmak

Ders - Öğrenme Kazanımı İlişkisi

Etkisi Yok 1 En Düşük 2 Düşük 3 Orta 4 Yüksek 5 En Yüksek
           
Dersin Program Kazanımlarına Etkisi Katkı Payı
1) 1.1 Matematik ve fen bilimleri gibi konularda yeterli bilgi birikimi 3
2) 1.2 Matematik, fen bilimleri ve bilgisayar mühendisliği konularında kuramsal ve uygulamalı bilgileri mühendislik problemlerini modelleme ve çözme için uygulayabilme becerisi. 3
3) 1.3 Matematik ve fen bilimleri gibi alanlardaki kuramsal ve uygulamalı bilgileri, karmaşık mühendislik problemlerinde kullanabilme becerisi
4) 2.1 Karmaşık mühendislik problemlerini saptama, tanımlama, formüle etme ve çözme becerisi
5) 2.2 Bu amaçla uygun analiz ve modelleme yöntemlerini seçme ve uygulama becerisi
6) 3.1 Karmaşık bir sistemi, süreci, cihazı veya ürünü gerçekçi kısıtlar ve koşullar altında, belirli gereksinimleri karşılayacak şekilde tasarlama becerisi
7) 3.2 Bu amaçla modern tasarım yöntemlerini uygulama becerisi
8) 4.1 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
9) 4.2 Bilişim teknolojilerini etkin bir şekilde kullanma becerisi 4
10) 5.1 Karmaşık mühendislik problemlerinin veya disipline özgü araştırma konularının incelenmesi için deney tasarlama becerisi
11) 5.2 Karmaşık mühendislik problemlerinin veya disipline özgü araştırma konularının incelenmesi için deney yapma becerisi
12) 5.3 Karmaşık mühendislik problemlerinin veya disipline özgü araştırma konularının incelenmesi için veri toplama becerisi
13) 5.4 Karmaşık mühendislik problemlerinin veya disipline özgü araştırma konularının incelenmesi için deney sonuçlarını analiz etme ve yorumlama becerisi
14) 6.1 Disiplin içi bireysel çalışma becerisi 3
15) 6.2 Disiplin içi takımlarda etkin biçimde çalışabilme becerisi
16) 6.3 Çok disiplinli takımlarda etkin biçimde çalışabilme becerisi
17) 7.1 Türkçe sözlü ve yazılı etkin iletişim kurma ve sunum yapabilme becerisi
18) 7.2 En az bir yabancı dil bilgisi
19) 7.3 Etkin rapor yazma ve yazılı raporları anlama becerisi
20) 7.4 Tasarım ve üretim raporları hazırlayabilme becerisi 3
21) 7.5 Açık ve anlaşılır talimat verme ve alma becerisi 3
22) 8.1 Yaşam boyu öğrenmenin gerekliği bilinci 4
23) 8.2 Bilgiye erişebilme, bilim ve teknolojideki gelişmeleri izleme ve kendini sürekli yenileme becerisi
24) 9.1 Etik ilkelerine uygun davranma, mesleki ve etik sorumluluk bilinci
25) 9.2 Mühendislik uygulamalarında kullanılan standartlar hakkında bilgi
26) 10.1 Proje yönetimi, risk yönetimi ve değişiklik yönetimi gibi, iş hayatındaki uygulamalar hakkında bilgi
27) 10.2 Girişimcilik, yenilikçilik hakkında farkındalık
28) 10.3 Sürdürülebilir kalkınma hakkında bilgi
29) 11.1 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
30) 11.2 Mühendislik çözümlerinin hukuksal sonuçları konusunda farkındalık
31) 12.1 Ayrık matematik konusunda bilgi sahip olmak

Öğrenme Etkinliği ve Öğretme Yöntemleri

Ders
Ödev

Ölçme ve Değerlendirme Yöntemleri ve Kriterleri

Yazılı Sınav (Açık uçlu sorular, çoktan seçmeli, doğru yanlış, eşleştirme, boşluk doldurma, sıralama)
Ödev

Ölçme ve Değerlendirme

Yarıyıl İçi Çalışmaları Aktivite Sayısı Katkı Payı
Ara Sınavlar 1 % 30
Yarıyıl/Yıl Sonu Sınavı 1 % 40
Quiz 2 % 30
Toplam % 100
YARIYIL İÇİ ÇALIŞMALARININ BAŞARI NOTU KATKISI % 60
YARIYIL SONU ÇALIŞMALARININ BAŞARI NOTUNA KATKISI % 40
Toplam % 100

İş Yükü ve AKTS Kredisi Hesaplaması

Aktiviteler Aktivite Sayısı Süre (Saat) İş Yükü
Ders Saati 3 48 144
Ara Sınavlar 2 4 8
Final 1 2 2
Toplam İş Yükü 154