DERSİN GENEL BİLGİLERİ

Ders Kodu Ders Adı Yıl Yarıyıl Teorik Pratik Kredi AKTS
60613METOZ-YZM0096 Algoritma Analizi 3 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 GİZEM TEMELCAN ERGENECOŞAR
Dersin Öğretim Eleman(lar)ı:




Dersin Kategorisi:

BÖLÜM II: DERSİN TANITIMI

Dersin Amacı ve İçeriği

Dersin Amacı: Problem çözümü, algoritma tasarımı ve analizinin kuramsal temellerine giriş.
Dersin İçeriği: Algoritmaların analizi: Ayıklama, arama, sayfalama ve paralelleme; matematiksel algoritmaların analizi: Oyun ve bulmaca, ağ algoritmaları ve olasılık algoritmaları.

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) Algoritmaların zaman ve bellek karmaşıklığını ve etkinliğini belirler. Algoritmaların etkinliğine bakarak birçok tasarım alternatifinden birini seçer.
  2) Bazı problemlere algoritmik çözüm olmadığı anlar ve açıklar.
  3) Çelişkiyi göstererek ispatlama ve tümevarım veya aykırı örnekler bulma tekniklerini kullanarak bir algoritmanın doğruluğunu kanıtlar.
Beceriler (Bilişsel ve/veya uygulama becerileri olarak tanımlanmıştır.)
  1) Kaba-kuvvet, çoğalan tasarım, aç gözlü, böl-ve-kazan, rastgele stratejiler gibi yaygın kullanılan algoritma tasarım tekniklerini kullanarak algoritma tasarlar.
  2) Etkin sıralama algoritmaları ve derinlik ve genişliğe göre sıralama, tek kaynak ve tüm çiftlerin en kısa yolları, geçişli kilit, topolojik sıralama, en az bir tane minimum yayılan ağaç algoritması gibi temel grafik algoritmalarını kullanarak problem çözer.
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) İşlevlerin büyümesi
2) Azalt ve Yönet
3) Böl-ve-yönet
4) Yığın ve Hızlı sıralama
5) Adres hesaplı tablolar ve ikili arama ağaçları
6) Fırsatçı algoritmalar
7) B-ağaçları ve Fibonacci Yığınları
8) Ara sınav
9) Temel çizge algoritmaları, Minimum dallanma ağaçları
10) Tek-kaynaklı kısa yolları bulma
11) Butun düğümler arası kısa yolları bulma
12) Matris işlemleri
13) NP-tamamlılık
14) Devingen programlama
*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: Introduction to Algorithms ; Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein 4/e
Diğer Kaynaklar: The Algorithm Design Manual, 2nd Edition; Steven Skiena

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. 4
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. 3
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. 3

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
Ödev

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 % 10.00
Projeler 1 % 10.00
Ara Sınavlar 1 % 30.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 0 0 0
Proje 1 10 10
Ödevler 0 0 0
Öğrenme ve Öğretme Etkinlikleri Toplam İş Yükü - - 94
Ö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 1 6 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) 118
DERSİN AKTS KREDİSİ (Toplam İş Yükü/25.5 Saat) 5