BİLGİSAYAR PROGRAMCILIĞI
Önlisans TYYÇ: 5. Düzey QF-EHEA: Kısa Düzey EQF-LLL: 5. Düzey

Ders Genel Tanıtım Bilgileri

Ders Kodu: 2021211001
Ders İsmi: Veri Yapıları
Ders Yarıyılı: Güz
Ders Kredileri:
Teorik Pratik Kredi AKTS
3 0 3 6
Öğretim Dili: TR
Ders Koşulu:
Ders İş Deneyimini Gerektiriyor mu?: Hayır
Dersin Türü: Zorunlu
Dersin Seviyesi:
Önlisans TYYÇ:5. Düzey QF-EHEA:Kısa Düzey EQF-LLL:5. Düzey
Dersin Veriliş Şekli: Yüz yüze
Dersin Koordinatörü: Öğr.Gör. Esma TAYRAN
Dersi Veren(ler): Öğr.Gör. Esma TAYRAN
Dersin Yardımcıları:

Dersin Amaç ve İçeriği

Dersin Amacı: Matematiksel model oluşturmada ve veri içeren her türlü konuda ihtiyaç duyulan algoritma analiz ve veri yapı modellerine ait her türlü alt yapıyı vermek ve ilgili konudaki en iyi çözümü bilgisayar üzerinde bir dil kullanarak geliştirmektir.
Dersin İçeriği: Algoritmik Problem Çözümünün Temelleri, Algoritma Analizinin Temelleri, Liste ve Linkli Listeler, Kuyruk ve Yığın, Ağaçlar, Arama Algoritmaları, Sıralama Algoritmaları, Böl ve Yönet Algoritmaları, Graflar, Rekürans Bağıntıları

Öğrenme Kazanımları

Bu dersi başarıyla tamamlayabilen öğrenciler;
Öğrenme Kazanımları
1 - Bilgi
Kuramsal - Olgusal
2 - Beceriler
Bilişsel - Uygulamalı
1) Doğru ve efektif algoritma tasarımını öğrenilir. Yığın, Kuyruk, Ağaç, Graf gibi önemli temel veriyapıları öğrenilir ve problem çözümünde doğru olarak kullanılabilir.
3 - Yetkinlikler
İletişim ve Sosyal Yetkinlik
Öğrenme Yetkinliği
Alana Özgü Yetkinlik
Bağımsız Çalışabilme ve Sorumluluk Alabilme Yetkinliği

Ders Akış Planı

Hafta Konu Ön Hazırlık
1) Algoritmik Problem Çözümünün Temelleri Veri Yapıları ve Algoritmalar, 8.Basım, Rifat Çölkesen, Papatya Bilim, 2002
2) Algoritma Analizinin Temelleri Veri Yapıları ve Algoritmalar, 8.Basım, Rifat Çölkesen, Papatya Bilim, 2002
3) Liste ve Linkli Liste Yapıları Veri Yapıları ve Algoritmalar, 8.Basım, Rifat Çölkesen, Papatya Bilim, 2002
4) Kuyruk ve Yığın Yapıları Veri Yapıları ve Algoritmalar, 8.Basım, Rifat Çölkesen, Papatya Bilim, 2002
5) Ağaç Yapısı, İkili Ağaçlar, İkili Arama Ağaçları Veri Yapıları ve Algoritmalar, 8.Basım, Rifat Çölkesen, Papatya Bilim, 2002
6) Heap Ağaçları Veri Yapıları ve Algoritmalar, 8.Basım, Rifat Çölkesen, Papatya Bilim, 2002
7) Arama Algoritmaları, String Arama Algoritmaları Veri Yapıları ve Algoritmalar, 8.Basım, Rifat Çölkesen, Papatya Bilim, 2002
8) Ara sınav Veri Yapıları ve Algoritmalar, 8.Basım, Rifat Çölkesen, Papatya Bilim, 2002
9) Sıralama Algoritmaları Veri Yapıları ve Algoritmalar, 8.Basım, Rifat Çölkesen, Papatya Bilim, 2002
10) Böl ve Yönet Algoritmaları 1 Veri Yapıları ve Algoritmalar, 8.Basım, Rifat Çölkesen, Papatya Bilim, 2002
11) Böl ve Yönet Algoritmaları 2 Veri Yapıları ve Algoritmalar, 8.Basım, Rifat Çölkesen, Papatya Bilim, 2002
12) Graflar Veri Yapıları ve Algoritmalar, 8.Basım, Rifat Çölkesen, Papatya Bilim, 2002
13) Grafda Gezinti (BFS, DFS) Veri Yapıları ve Algoritmalar, 8.Basım, Rifat Çölkesen, Papatya Bilim, 2002
14) Minimum Kapsayan Ağaç Veri Yapıları ve Algoritmalar, 8.Basım, Rifat Çölkesen, Papatya Bilim, 2002
15) En Kısa Yol Algoritmaları Veri Yapıları ve Algoritmalar, 8.Basım, Rifat Çölkesen, Papatya Bilim, 2002

Kaynaklar

Ders Notları / Kitaplar: Derste not tutulacaktır.
Diğer Kaynaklar: Veri Yapıları ve Algoritmalar, 8.Basım, Rifat Çölkesen, Papatya Bilim, 2002
Algoritma Geliştirme ve Veri Yapıları, Rifat Çölkesen, Papatya Yayıncılık, 2016
Algoritmalar, Robert Sedgewick, Kevin Wayne, Nobel Yayıncılık, 2018

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

Ders Öğrenme Kazanımları

1

Program Kazanımları
1) Matematik, fen bilimleri ve hesaplama alanlarındaki bilgi birikimini yazılım sistemlerini geliştirme ve bilgisayar programlama ile ilgili problemlerinin çözümüne uygulama becerisine sahip olmak.
2) Yazılım sistemlerini geliştirme ve bilgisayar programlama alanına özgü sorunları analiz etme ve modelleme, çözümleri için uygun yazılım gereksinimlerini belirleme ve tanımlama becerisine sahip olmak.
3) Belirlenen gereksinimleri karşılayacak yazılım sistemini, sistem parçasını, işlemi veya programı tasarlama, geliştirme ve değerlendirme becerisine sahip olmak.
4) Yazılım sistemlerini geliştirme ve bilgisayar programlama uygulamaları için modern teknik ve programlama araçlarını kullanma becerisine sahip olmak.
5) Yazılım sistemlerini geliştirme ve bilgisayar programlama disiplini ve disiplinler arası takımlarda veya bireysel olarak etkin biçimde çalışabilmek için gerekli iş yeteneklerini ortaya koyabilme becerisine sahip olmak.
6) Yazılım sistemlerini geliştirme ve bilgisayar programlarının analiz, tasarım, uygulama, doğrulama, geçerleme ve bakım süreçlerini uygulayarak geliştirilmesindeki yaklaşımları uygulama becerisine sahip olmak.
7) Yazılım ve bilgisayar programlama alanında mesleki, hukuksal, etik ve sosyal sorunlar hakkında farkındalık ve sorumluluk bilincine 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) Matematik, fen bilimleri ve hesaplama alanlarındaki bilgi birikimini yazılım sistemlerini geliştirme ve bilgisayar programlama ile ilgili problemlerinin çözümüne uygulama becerisine sahip olmak. 4
2) Yazılım sistemlerini geliştirme ve bilgisayar programlama alanına özgü sorunları analiz etme ve modelleme, çözümleri için uygun yazılım gereksinimlerini belirleme ve tanımlama becerisine sahip olmak. 4
3) Belirlenen gereksinimleri karşılayacak yazılım sistemini, sistem parçasını, işlemi veya programı tasarlama, geliştirme ve değerlendirme becerisine sahip olmak. 3
4) Yazılım sistemlerini geliştirme ve bilgisayar programlama uygulamaları için modern teknik ve programlama araçlarını kullanma becerisine sahip olmak. 3
5) Yazılım sistemlerini geliştirme ve bilgisayar programlama disiplini ve disiplinler arası takımlarda veya bireysel olarak etkin biçimde çalışabilmek için gerekli iş yeteneklerini ortaya koyabilme becerisine sahip olmak. 3
6) Yazılım sistemlerini geliştirme ve bilgisayar programlarının analiz, tasarım, uygulama, doğrulama, geçerleme ve bakım süreçlerini uygulayarak geliştirilmesindeki yaklaşımları uygulama becerisine sahip olmak. 1
7) Yazılım ve bilgisayar programlama alanında mesleki, hukuksal, etik ve sosyal sorunlar hakkında farkındalık ve sorumluluk bilincine sahip olmak. 2

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

Alan Çalışması
Akran Değerlendirmesi
Anlatım
Beyin fırtınası /Altı şapka
Bireysel çalışma ve ödevi
Ders
Grup çalışması ve ödevi
Laboratuvar
Okuma
Problem Çözme
Soru cevap/ Tartışma
Web Tabanlı Öğrenme

Ö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)
Uygulama

Ölçme ve Değerlendirme

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

İş Yükü ve AKTS Kredisi Hesaplaması

Aktiviteler Aktivite Sayısı Süre (Saat) İş Yükü
Ders Saati 14 3 42
Sınıf Dışı Ders Çalışması 14 3 42
Ödevler 2 20 40
Ara Sınavlar 1 25 25
Final 1 25 25
Toplam İş Yükü 174