ANASAYFAKURUMSAL BİLGİLEREĞİTİM VE ÖĞRETİM PROGRAMLARI Yazılım MühendisliğiSERTİFİKA PROGRAMLARIÖĞRENCİLER İÇİN FAYDALI BİLGİLER, KAYNAKLAR VE SERVİSLERFAYDALI LİNKLER VE DÖKÜMANLARİLAVE VE DESTEKLEYİCİ BİLGİLER

DERSİN GENEL BİLGİLERİ

Ders Kodu Ders Adı Yıl Yarıyıl Teorik Pratik Kredi AKTS
60613METOZ-YZM0044 Veri Yapıları ve Algoritmalar 2 Bahar 2 2 3 5
Dersin Türü: Zorunlu
Dersin Düzeyi: Lisans      TYYÇ:6. Düzey      QF-EHEA:1. Düzey      EQF-LLL:6. Düzey
Dersin Öğretim Dili: Türkçe
Dersin Ön/Yan Koşulu: Yoktur
Dersin Veriliş Şekli: Yüz yüze
Dersin Koordinatörü: Dr. Öğr. Üyesi İLHAN GARİP
Dersin Öğretim Eleman(lar)ı:
Dersin Kategorisi: Mesleki Alan

BÖLÜM II: DERSİN TANITIMI

Dersin Amacı ve İçeriği

Dersin Amacı: Bu dersin amacı diziler, kayıtlar, karakter dizileri, bağlı listeler, yığıtlar, kuyruklar ve ağaçlar gibi soyut veri yapılarına giriş yapmaktır. Bunların yanında temel hesaplama algoritmalarını (arama ve sıralama) ve soyut veri yapılarını program tasarımındaki hesaplama problemlerini çözmek için uygulama anlatılacaktır.
Dersin İçeriği: Algoritma analizi; dizi yığıtları, kuyruklar, bağlı listeler, ağaçlar, sıralama, hesaba dayalı adresleme ve arama yapıları; algoritma karmaşıklığı ve paralel algoritmalar; dosya örgütleşimi.
Bu derste proje odaklı öğrenme yaklaşımı kullanılmaktadır. Bu çerçevede dersin geleneksel yapıdaki içeriği yanında proje odaklı öğrenme bileşeni bulunmaktadır. Proje odaklı öğrenme bileşeni dersin amaçlarına ve öğrenme çıktılarına uygun olarak öğrenciler tarafından bireysel olarak veya proje takımları halinde belirli adımlardan geçilerek ve belirli ara çıktıların ve son çıktıların üretilmesini amaçlayan bir veya daha fazla sayıda projenin öğrenme amaçlı proje yapılmasını içermektedir. Dersin proje odaklı öğrenme bileşeni ağırlıklı olarak proje çıktılarının ve proje çalışmalarının dersi veren öğretim elemanı ve/veya jüri tarafından değerlendirilmektedir.

Dersin Öğrenme Çıktıları (DÖÇ)

Ders Öğrenme Çıktıları (DÖÇ), dersi başarı ile tamamlayan öğrencilerin kendilerinden sahip olmaları beklenen bilgi, beceri ve yetkinlikleri ifade eder. Bu bağlamda, bu ders için tanımlanmış olan Ders Öğrenme Çıktıları aşağıda verilmektedir.
Bilgi (Kuramsal ve/veya olgusal bilgi olarak tanımlanmıştır.)
  1) Algoritmik sorunları etkin biçimde çözmek için gerekli temel soyut veri türlerini (hash tabloları, ikili arama ağaçları ve çizgeler) bilir ve kullanır.
Beceriler (Bilişsel ve/veya uygulama becerileri olarak tanımlanmıştır.)
  1) Belli türlerde bilgiyi göstermek için veri yapılarını (diziler, karakter dizileri, bağlı listeler, yığıtlar, kuyruklar, ve hash tabloları) kullanan programları belirler, yazar ve bu veri yapılarının bellekte nasıl depolandığı bilir.
  2) Algoritmaların zaman ve bellek kullanımı karmaşıklığını belirler.
  3) Etkin arama ve sıralama algoritmalarını kullanarak yaygın programlama sorunlarını çözer.
  4) Algoritma çözümlemesinde kullanılan matematiksel simgeleri bilir ve bu simgeleri temel algoritma analizinde kullanır.
Yetkinlikler ("Bağımsız Çalışabilme", "Sorumluluk Alabilme", "Öğrenme", "İletişim ve Sosyal" ve "Alana Özgü" yetkinlikler olarak tanımlanmıştır.)

Haftalık Ders Planı

Hafta Konu
Materyal Paylaşımı *
Ön Hazırlık Pekiştirme
1)
1) Giriş Algoritma analizi
2) Projelerin belirlenmesi
3) Listeler, yığıtlar, kuyruklar
4) Ağaçlar
5) Hesaba dayalı adresleme
6) Öncelik kuyrukları (Yığınlar) Sıralama
7) Projenin ilk tesliminin yapılması
8) Ara sınav
9) Ayrık küme sınıfları Çizge algoritmaları
10) Algoritma tasarım teknikleri - I
11) Algoritma tasarım teknikleri - II
12) Projenin ikinci tesliminin yapılması
13) Amorti edilmiş analiz
14) İleri veri yapıları ve gerçekleştirimler
15) Projenin son tesliminin ve sunumunun yapılması 
*Bu alan öğrencilerin ders öncesi hazırlık ve sonrası dersi pekiştirme için paylaşılan ders materyallerini içerir.

Ders İçin Zorunlu/Önerilen Kaynaklar

Ders Notları / Kitaplar: Data Structures and Algorithm Analysis in Java (3rd Edition) by Mark Allen Weiss (Nov 28, 2011)
Diğer Kaynaklar: Data Structures and Algorithms in Java (4th edition) Michael T. Goodrich and Roberto Tamassia

Dersin Program Öğrenme Çıktılarına Katkı Düzeyi

Etkisi Yok 1 En Düşük 2 Düşük 3 Orta 4 Yüksek 5 En Yüksek
           
Program Öğrenme Çıktıları Katkı Oranı (1-5)
1) Matematik, fen bilimleri, bilgisayar bilimleri ve yazılım mühendisliği ile ilgili mühendislik konularında yeterli bilgi birikimine sahiptir; bu alanlardaki kuramsal ve uygulamalı bilgileri yazılım mühendisliği problemlerinin çözümü için birlikte kullanır ve uygular. 5
2) Alanı ile ilgili temel bilim konularındaki kuramsal ve uygulamalı bilgileri yazılım mühendisliği problemlerinin çözümü için birlikte kullanır ve uygular.
3) Yazılım mühendisliği uygulamalarını analiz eder, modeller, gerçekçi kısıtlar ve koşullar altında belirli gereksinimleri karşılayacak şekilde tasarlar ve geliştirir; bu amaçla uygun yöntemleri, araçları ve teknolojileri seçer ve kullanır.
4) Karmaşık yazılım mühendisliği problemlerini saptar, tanımlar, formüle eder ve çözer; bu amaçla uygun analitik yöntemler ile modelleme yöntemlerini seçer ve uygular. 5
5) Bilgisayar bilimleri ve yazılım mühendisliği uygulamaları için gerekli olan modern teknik ve araçları ve bilişim teknolojilerini seçer ve etkin bir şekilde kullanır. 4
6) Bilgisayar ve yazılım tabanlı karmaşık bir sistemi, süreci, cihazı veya ürünü ekonomi, çevre sorunları, sürdürülebilirlik, üretilebilirlik, etik, sağlık, güvenlik, sosyal ve politik sorunlar gibi öğeler dahil gerçekçi kısıtlar ve koşullar altında, belirli gereksinimleri karşılayacak şekilde tasarlar; bu amaçla modern tasarım yöntemlerini uygular. 4
7) Sorumluluk aldığı çalışmalarda var olan normları ve standartları eleştirel bakış açısıyla değerlendir.
8) Sürekli gelişen yazılım mühendisliği alanının ve küresel rekabet ortamının gerektirdiği yetkinliklere sahiptir.
9) Türkçe sözlü ve yazılı olarak etkili iletişim kurar ve B2 düzeyinde Yabancı Dilde (İngilizce) iletişim kurma yetkinliğine sahiptir.

BÖLÜM IV: DERSİN ÖĞRENME VE ÖĞRETME YÖNTEMLERİ İLE ÖLÇME VE DEĞERLENDİRME YÖNTEMLERİ

Dersin Öğrenme ve Öğretme Yöntemleri

(Üniversitemiz genelinde kullanılan tüm öğrenme ve öğretme yöntemleri sistematik olarak yönetilmektedir. Akademik birimlerden gelen talepler doğrultusunda bölüm/programların öğrenme ve öğretme yöntemleri ilgili kurullarımız tarafından değerlendirilmekte ve uygun bulunursa, üniversite havuzunda toplanmaktadır. Bölüm ve programlar, kendileri için program tasarımlarına uygun olan yöntemleri bu havuzdan seçebilmektedirler. Benzer şekilde, dersler için kullanılması uygun görülen yöntemler de programlar düzeyinde belirlenmiş olan yöntemler arasından seçilebilmektedir.)
Programa Genelinde Kullanılan Öğrenme ve Öğretme Yöntemleri
Ders İçin Kullanılan Öğrenme ve Öğretme Yöntemleri
Anlatım
Proje Hazırlama

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

(Üniversitemiz genelinde kullanılan tüm ölçme ve değerlendirme yöntemleri sistematik olarak yönetilmektedir. Akademik birimlerden gelen talepler doğrultusunda bölüm/programların ölçme ve değerlendirme yöntemleri ilgili kurullarımız tarafından değerlendirilmekte ve uygun bulunursa, üniversite havuzunda toplanmaktadır. Bölüm ve programlar, kendileri için program tasarımlarına uygun olan yöntemleri bu havuzdan seçebilmektedirler. Benzer şekilde, dersler için kullanılması uygun görülen yöntemler de programlar düzeyinde belirlenmiş olan yöntemler arasından seçilebilmektedir.)
Programa Genelinde Kullanılan Ölçme ve Değerlendirme Yöntemleri
Ders İçin Kullanılan Ölçme ve Değerlendirme Yöntemleri
Ara Sınav
Sunum
Yarıyıl Sonu Sınavı
Kısa Sınav

Dersin Ölçme ve Değerlendirme Yöntemlerinin Başarı Notuna Katkısı

Ölçme ve Değerlendirme Yöntemleri Uygulama Sayısı / Yarıyıl Katkı Oranı
Kısa Sınavlar 1 % 5.00
Ödev 2 % 10.00
Projeler 1 % 20.00
Ara Sınavlar 1 % 15.00
Yarıyıl Sonu Sınavı 1 % 50.00
Toplam % 100
YARIYIL İÇİ ÖLÇME VE DEĞERLENDİRME YÖNTEMLERİNİN BAŞARI NOTUNA KATKI ORANI % 50
YARIYIL SONU SINAVININ BAŞARI NOTUNA KATKI ORANI % 50
Toplam % 100

BÖLÜM V: DERSİN İŞ YÜKÜ VE AKTS KREDİSİ

ÖĞRENME VE ÖĞRETME ETKİNLİKLERİ İŞ YÜKÜ
Öğrenme ve Öğretme Etkinlikleri Etkinlik Sayısı/Yarıyıl Süresi (saat) Toplam İş Yükü
Ders 14 2 28
Laboratuvar 0 0 0
Uygulama 14 2 28
Derse Özgü Staj 0 0 0
Arazi Çalışması 0 0 0
Sınıf Dışı Ders Çalışması 14 2 28
Sunum / Seminer 4 1 4
Proje 4 5 20
Ödevler 0 0 0
Öğrenme ve Öğretme Etkinlikleri Toplam İş Yükü - - 108
ÖLÇME VE DEĞERLENDİRME ETKİNLİKLERİ İŞ YÜKÜ
Ölçme ve Değerlendirme Etkinlikleri Etkinlik Sayısı/Yarıyıl Süresi (saat) Toplam İş Yükü
Kısa Sınav 3 2 6
Ara Sınavlar 1 6 6
Yarıyıl Sonu Sınavı 1 12 12
Ölçme ve Değerlendirme Etkinlikleri Toplam İş Yükü - - 24
TOPLAM İŞ YÜKÜ (Öğrenme ve Öğretme + Ölçme ve Değerlendirme Etkinlikleri) 132
DERSİN AKTS KREDİSİ (Toplam İş Yükü/25.5 Saat) 5