GERİ DÖN

Ders Öğretim Planı


Dersin Kodu Dersin Adı Dersin Türü Yıl Yarıyıl AKTS
BİLTEK-113 VERİ YAPILARI VE PROGRAMLAMA Seçmeli Ders Grubu 1 1 3,00

Önlisans


Türkçe


Öğrencilere Python programlama dili kullanarak temel veri yapılarını (diziler, bağlı listeler, yığınlar, kuyruklar, ağaçlar) ve temel algoritmaları (arama, sıralama) öğretmek; verimli programlama teknikleri, bellek yönetimi ve özyineleme kavramlarını uygulamalı olarak kazandırmaktır. Öğrenciler, problemleri analiz edip uygun veri yapısını seçerek çözüm geliştirme becerisi kazanacaklardır.


Öğr.Gör. Adil Kondiloğlu


1 Python programlama dilini kullanarak temel veri yapılarını (dizi, liste, sözlük) tanımlar ve uygular.
2 Bağlı liste, yığın ve kuyruk yapılarını Python sınıf yapısı ile implemente eder ve uygulama geliştirir.
3 Özyineleme (recursion) mantığını kullanarak problemleri çözer ve rekürsif algoritmalar tasarlar.
4 Temel sıralama (seçerek, kabarcık, birleştirmeli) ve arama (doğrusal, ikili) algoritmalarını açıklar, analiz eder ve Python ile uygular.
5 Ağaç veri yapısını tanımlar, ikili arama ağacı (BST) operasyonlarını (ekleme, arama, dolaşım) Python ile gerçekleştirir.

Birinci Öğretim



Yok


Python programlama dili ile veri yapılarına giriş, temel veri tipleri, kontrol yapıları, fonksiyonlar, işaretçi kavramı (Python referans modeli), özyineleme, struct yapıları (Python sınıfları), bellek yönetimi, bağlı listeler (tek yönlü, çift yönlü), yığın ve kuyruk yapıları, temel sıralama algoritmaları (seçerek sıralama, kabarcık sıralama, birleştirmeli sıralama), arama algoritmaları (doğrusal arama, ikili arama) ve ağaç veri yapıları.


Hafta Teorik Uygulama Laboratuvar
1 Veri Yapılarına Giriş: Veri yapısı kavramı, algoritma analizi (Big-O), Python ile veri yapılarına genel bakış
2 Veri Tipleri, Karar Kontrol Yapıları, Döngüler: Python veri tipleri, if-elif-else, for/while döngüleri, list comprehension
3 Diziler ve Dizeler (Strings): Tek/boyutlu diziler, string işlemler, slicing, string metotları, Regular Expressions
4 Fonksiyonlar: Fonksiyon tanımlama, parametre geçişi (positional, keyword, default), return değerleri, lambda fonksiyonları
5 İşaretçiler (Python Referans Modeli): Python'da referans semantiği, mutable vs immutable, id() fonksiyonu, bellek adresleri, alias kavramı
6 Özyineleme (Recursion): Rekürsiyon kavramı, base case ve recursive case, örnekler (faktöriyel, fibonacci), recursion tree
7 Struct ve Union (Python Sınıfları): Class yapısı, init metodu, instance/class variables, inheritance (kalıtım) temelleri
8 Bellek Yönetimi: Python bellek modeli, garbage collection, stack vs heap, bellek optimizasyonu
9 Bağlı Listeler: Tek yönlü bağlı liste, düğüm yapısı, ekleme/silme/arama işlemleri, çift yönlü bağlı liste tanıtımı
10 Yığın (Stack): Stack yapısı ve LIFO prensibi, push/pop/peek operasyonları, uygulamalar (parantez denetimi, postfix)
11 Kuyruk (Queue): Queue yapısı ve FIFO prensibi, enqueue/dequeue operasyonları, öncelikli kuyruk (priority queue) tanıtımı
12 Sıralama Algoritmalarına Giriş: Algoritma karmaşıklığı analizi, Seçerek Sıralama (Selection Sort), Kabarcık Sıralama (Bubble Sort), Birleştirmeli Sıralama (Merge Sort)
13 Arama Algoritmalarına Giriş: Doğrusal Arama (Linear/Sequential Search), İkili Arama (Binary Search), arama algoritması analizi
14 Ağaç Yapısı Kavramları ve Çeşitleri: Ağaç terminolojisi, ikili ağaç (binary tree), ikili arama ağacı (BST), ağaç dolaşımları (in-order, pre-order, post-order)

Python Algorithms: Mastering Basic Algorithms in the Python Language - Magnus Lie Hetland Veri Bilimi İçin Python - Dr. Bülent ÇOBANOĞLU


Anlatım, Soru-Cevap, Beyin Fırtınası, Tartışma, Uygulama (Laboratuvar), Problem Çözme, Proje Tabanlı Öğrenme


Yarıyıl (Yıl) İçi Etkinlikleri Adet Değer
Ara Sınav 1 50
Ara Sınav İçin Bireysel Çalışma 5 50
Toplam 100
Yarıyıl (Yıl) Sonu Etkinlikleri Adet Değer
Final Sınavı 1 50
Final Sınavı için Bireysel Çalışma 5 50
Toplam 100
Yarıyıl (Yıl) İçi Etkinlikleri 40
Yarıyıl (Yıl) Sonu Etkinlikleri 60


Etkinlikler Sayısı Süresi (saat) Toplam İş Yükü (saat)
Ara Sınav 1 1 1
Final Sınavı 1 1 1
Derse Katılım 12 3 36
Uygulama/Pratik 7 2 14
Proje Hazırlama 2 2 4
Ara Sınav İçin Bireysel Çalışma 6 3 18
Final Sınavı içiin Bireysel Çalışma 6 3 18
Toplam İş Yükü (saat) 92

PÇ 1 PÇ 2 PÇ 3 PÇ 4 PÇ 5 PÇ 6 PÇ 7 PÇ 8 PÇ 9 PÇ 10 PÇ 11 PÇ 12 PÇ 13 PÇ 14 PÇ 15 PÇ 16 PÇ 17
ÖÇ 1 5 4 4 3 4 4 3 4 4 4 4 4 4 4 4
ÖÇ 2 5 5 4 4 4 4 5 4 3 3 3 4 4 3 4
ÖÇ 3 5 5 4 4 4 4 4 3 3 4 4 4 4 3 4
ÖÇ 4 5 4 4 4 4 3 4 3 4 4 4 4 4 3 4
ÖÇ 5 5 5 4 4 4 4 4 4 4 4 4 4 3 4 3
* Katkı Düzeyi : 1 Çok düşük 2 Düşük 3 Orta 4 Yüksek 5 Çok yüksek