TR EN

DATA STRUCTURES AND ALGORITHMS DERS TANITIM VE UYGULAMA BİLGİLERİ

Kodu Dersin Adı Yarıyıl Süresi(T+U) Kredisi AKTS Kredisi
COM202 DATA STRUCTURES AND ALGORITHMS 4 5 4 7

DERS BİLGİLERİ

Dersin Öğretim Dili : İngilizce
Dersin Düzeyi LİSANS, TYY: + 6.Düzey, EQF-LLL: 6.Düzey, QF-EHEA: 1.Düzey
Dersin Türü Zorunlu
Dersin Veriliş Şekli -
Dersin Koordinatörü Dr.Öğr.Üyesi OĞUZHAN ÖZTAŞ
Dersi Veren Öğretim Üyesi/Öğretim Görevlisi Dr.Öğr.Üyesi DENİZ DAHMAN
Ders Ön Koşulu Yok

AMAÇ VE İÇERİK

Amaç: Öğrencilere önemli algoritma ve yapıların zaman ve yer gereksinimlerini analiz etmeyi; yığın, kuyruk, ağaç ve grafikler gibi birbirinden farklı veri yapılarını analiz etmeyi; Python'da algoritmaların implementasyonunu öğretmektir.
İçerik: Yığınlar, Yığın Yapıları Uygulamaları, Kuyruklar, Kuyruğa Ekleme, Kuyruktan Çıkarma, Öncelik Kuyrukları, Ağaç Yapıları, Ağaç Uygulamaları, İkili Arama Ağaçları, Öbek Yapıları Uygulamaları, Dengeli Arama Ağaçları, Çizge Yapıları, Çizge Yapıları Uygulamaları Konuları.

DERSİN ÖĞRENME ÇIKTILARI (Öğrenciler, bu dersi başarı ile tamamladıklarında aşağıda belirtilen bilgi, beceri ve/veya yetkinlikleri gösterirler.)

Bu dersi alan öğrenciler;
1. Özyinelemenin temel prensiplerini ve matematiksel tümevarım ile ilişkisini kavrar
2. Özyinelemeyi bir problem çözme ve programlama tekniği olarak kullanabilir.
3. Bağlı listeler, çift bağlı listeler, yığıtlar ve kuyruklar gibi önemli soyut veri tiplerini tasarım ve gerçekleştirim becerisine sahip olur
4. Ağaçlar gibi ayrık veri yapılarının kombinasyon yöntemiyle analizini yapar.
5. Sıralama ve arama problemlerinin algoritmik çözümlerini anlama ve ikili arama ağaçları gibi yaygın arama yapılarını tasarlar.

HAFTALIK DERS KONULARI VE ÖNGÖRÜLEN HAZIRLIK ÇALIŞMALARI

Hafta Ön Hazırlık Konular Yöntem
1 Yazılı Kaynaklar Yığın veri yapısına giriş Yüz Yüze Anlatım
2 Yazılı Kaynaklar Yığın veri yapısının python dilinde kodlanması Yüz Yüze Anlatım
3 Yazılı Kaynaklar Yığın veri yapısının python dilinde kodlanması Yüz Yüze Anlatım
4 Yazılı Kaynaklar Yığın veri yapısının python dilinde kodlanması Yüz Yüze Anlatım
5 Yazılı Kaynaklar Kuyruk, iki uçlu kuyruk ve öncelikli kuyruk veri yapıları Yüz Yüze Anlatım
6 Yazılı Kaynaklar Kuyruk, iki uçlu kuyruk ve öncelikli kuyruk veri yapılarının python dilinde Yüz Yüze Anlatım
7 Yazılı Kaynaklar Ağaç veri yapısına giriş Yüz Yüze Anlatım
8 Yazılı Kaynaklar Ağaç veri yapısının python dilinde kodlanması Yüz Yüze Anlatım
9 Yazılı Kaynaklar İkili arama ağaçları yapısı ve bu yapının python ile kodlanması Yüz Yüze Anlatım
10 - ARA SINAV -
11 Yazılı Kaynaklar Öbek veri yapısı ve bu yapının python ile kodlanması Yüz Yüze Anlatım
12 Yazılı Kaynaklar Öbek Yapıları Yüz Yüze Anlatım
13 Yazılı Kaynaklar Dengeli arama ağaçları Yüz Yüze Anlatım
14 Yazılı Kaynaklar Çizge veri yapısına giriş Yüz Yüze Anlatım
15 Yazılı Kaynaklar Çizge veri yapısının python ile kodlanması Yüz Yüze Anlatım
16 - FİNAL -
17 - FİNAL -

KAYNAKLAR

Data Structures and Program Design In C, Robert L. Kruse, Bruce P. Leung, ve Clovis L. Tondo, Pearson, 1996 Goodrich, M. T., Tamassia, R., & Goldwasser, M. H. (2013). Data structures and algorithms in Python (pp. 978-1). Hoboken: Wiley.

ÖLÇME VE DEĞERLENDİRME

Yarıyıl İçi Yapılan Çalışmaların Ölçme ve Değerlendirmesi Etkinlik Sayısı Katkı Yüzdesi Açıklama Sınav Yapılma Şekli
Ara Sınav (Vize) 1 30 Klasik Sınav
Uygulama-Lab 1 20
DÖNEM SONU- Sınavı (Final) 1 25 Klasik Sınav
DÖNEM SONU- Sınavı (Final-Uygulama) 1 25
TOPLAM 4 100
(0) Etkisiz (1) En Düşük (2) Düşük (3) Orta (4) İyi (5) Çok İyi
0 1 2 3 4 5

DERSİN PROGRAM ÖĞRENME ÇIKTILARINA KATKISI

BİLGİ
Kuramsal
Program Yeterlilikleri/Çıktıları Katkı Düzeyi
0 1 2 3 4 5
1
Bilgisayar Bilimi ile ilgili temel mühendislik kavramlarını açıklar ve Bilgisayar Biliminin teorik altyapısı ile ilişkilendirir.
3
BİLGİ
Olgusal
Program Yeterlilikleri/Çıktıları Katkı Düzeyi
0 1 2 3 4 5
1
Matematik, fen bilimleri, olasılık ve istatistik gibi kendi dalıyla ilgili mühendislik konularında sahip olduğu kuramsal ve uygulamalı bilgileri mühendislik çözümleri için kullanır.
3
BECERİLER
Bilişsel
Program Yeterlilikleri/Çıktıları Katkı Düzeyi
0 1 2 3 4 5
1
Bir sistemin bileşenlerini ya da sistemdeki süreçleri analiz eder ve gereksinimler doğrultusunda gerçekçi kısıtlar altında bir bilgisayar modeli tasarlar.
3
2
Belirli bir kavramsal modeli bilgisayar ortamında modern yöntemlerle tasarlar.
3
BECERİLER
Uygulamalı
Program Yeterlilikleri/Çıktıları Katkı Düzeyi
0 1 2 3 4 5
1
Bilgisayar Mühendisliği alanında var olan uygulama alanlarını analiz eder, değerlendirir ve bunların çözümüne yönelik uygulama geliştirir.
3
2
Bilgisayar Mühendisliği alanında yer alan konulara uygun analitik yöntemler ve modelleme tekniklerini seçer ve uygular.
3
3
Mühendislik uygulamaları için gerekli olan modern teknik ve araçları seçer ve bilişim teknolojilerini etkin olarak kullanır.
3
YETKİNLİKLER
Bağımsız Çalışabilme ve Sorumluluk Alabilme Yetkinliği
Program Yeterlilikleri/Çıktıları Katkı Düzeyi
0 1 2 3 4 5
1
Deney tasarlama, deney yapma, veri toplama, sonuçları analiz etme ve değerlendirme bilincine ve sorumluluğuna sahiptir.
3
2
Bireysel olarak etkin çalışmalar yürütebilir.
3
3
Bir ekip içerisinde etkin çalışabilme becerisi gösterir ve sorumluluk alır.
3

DERSİN İŞ YÜKÜ VE AKTS KREDİSİ

Öğrenme-Öğretme Etkinlikleri İş Yükü
Öğrenme-Öğretme Etkinlikleri Etkinlik(hafta sayısı) Süresi(saat sayısı) Toplam İş Yükü
Ders 14 5 70
Derse Ön Hazırlık ve Ders Sonrası Pekiştirme 14 5 70
Arazi Çalışması 0 0 0
Grup Çalışması / Ödevi 0 0 0
Laboratuvar 0 0 0
Okuma 0 0 0
Ödev 2 10 20
Proje Hazırlama 0 0 0
Seminer 0 0 0
Staj 0 0 0
Teknik Gezi 0 0 0
Web Tab. Öğrenme 0 0 0
Uygulama 0 0 0
Yerinde Uygulama 0 0 0
Mesleki Faaliyet 0 0 0
Sosyal Faaliyet 0 0 0
Tez Hazırlama 0 0 0
Alan Çalışması 0 0 0
Rapor Yazma 0 0 0
Final Sınavı 1 1 1
Final Sınavı Hazırlığı 1 10 10
Ara Sınav 1 1 1
Ara Sınav Hazırlığı 1 10 10
Kısa Sınav 2 1 2
Kısa Sınav Hazırlığı 0 0 0
TOPLAM 36 0 184
Genel Toplam 184
Toplam İş Yükü / 25.5 7,2
Dersin AKTS(ECTS) Kredisi 7,0