CMP6138 Algoritma AnaliziBahçeşehir ÜniversitesiAkademik Programlar BİLGİ TEKNOLOJİLERİ (İNGİLİZCE, TEZSİZ)Öğrenciler için Genel BilgiDiploma EkiErasmus BeyanıUlusal YeterliliklerBologna Komisyonu
BİLGİ TEKNOLOJİLERİ (İNGİLİZCE, TEZSİZ)
Yüksek Lisans TYYÇ: 7. Düzey QF-EHEA: 2. Düzey EQF-LLL: 7. Düzey

Ders Tanıtım Bilgileri

Ders Kodu Ders Adı Yarıyıl Teorik Pratik Kredi AKTS
CMP6138 Algoritma Analizi Güz
Bahar
3 0 3 6
Bu katalog bilgi amaçlıdır, dersin açılma durumu, ilgili bölüm tarafından yarıyıl başında belirlenir.

Temel Bilgiler

Öğretim Dili: İngilizce
Dersin Türü: Departmental Elective
Dersin Seviyesi: LİSANSÜSTÜ
Dersin Veriliş Şekli: Yüz yüze
Dersin Koordinatörü: Dr. Öğr. Üyesi TEVFİK AYTEKİN
Dersi Veren(ler): Prof. Dr. NAFİZ ARICA
Opsiyonel Program Bileşenleri: Yok
Dersin Amacı: Önemli algoritmaların zaman ve hafıza gereksinimlerinin, en kötü, ortalama ve amortize edilmiş durumlar için detaylı analizi öğretilecektir. İlgili büyüklük gösterimleri, özyinelemeli ilişkiler gibi gösterimler sunulacaktır. Ağaçlar, hash tabloları, dengeli ağaç şemaları, öncelik kuyrukları, Fibonacci ve binom yığınları gösterilecektir.
Böl ve yönet, dinamik programlama gibi paradigmalar tanıtılacaktır. Seçilen bazı gelişmiş algoritmalar incelenecektir.

Öğrenme Kazanımları

Bu dersi başarıyla tamamlayabilen öğrenciler;
I. Temel algoritma analiz tekniklerini uygulama
II. Sıralama algoritmalarını uygulama ve analiz etme

III. Özyinelemeli uygulamaları ve ağaç yapılarını uygulama ve analiz etme.
IV. Problemleri yığın ve kuyruk yapıları ile modelleme ve analiz etme
V. Çizgelerle problem çözebilme
VI. Dinamik programlama yöntemlerini uygulayabilme
VII. Gerektiğinde yeni algoritmalar tasarlama ve uygulama

Dersin İçeriği

Fonksiyonların karmaşıklığı, sıralama algoritmaları, özyineleme, ağaçlar, yığınlar ve öncelikli kuyruklar, çizge algoritmaları, dinamik programlama, seçilmiş teknikler.

Haftalık Ayrıntılı Ders İçeriği

Hafta Konu Ön Hazırlık
1) Giriş
2) Fonksiyonların büyümesi
3) Temel sıralama algoritmaları
4) Gelişmiş sıralama algoritmaları
5) Özyineleme
6) Ağaçlar 1
7) Ağaçlar 2
8) Arasınav
9) Yığınlar ve öncelikli kuyruklar
10) Çizge algoritmaları 1
11) Çizge algoritmaları 2
12) Dinamik Programlama
13) Seçilmiş teknikler
14) Proje sunumları

Kaynaklar

Ders Notları / Kitaplar: "Introduction to Algorithms" Thomas H. Cormen, The MIT Press
Diğer Kaynaklar:

Değerlendirme Sistemi

Yarıyıl İçi Çalışmaları Aktivite Sayısı Katkı Payı
Projeler 1 % 35
Ara Sınavlar 1 % 25
Final 1 % 40
Toplam % 100
YARIYIL İÇİ ÇALIŞMALARININ BAŞARI NOTU KATKISI % 25
YARIYIL SONU ÇALIŞMALARININ BAŞARI NOTUNA KATKISI % 75
Toplam % 100

AKTS / İş Yükü Tablosu

Aktiviteler Aktivite Sayısı Süre (Saat) İş Yükü
Ders Saati 14 3 42
Proje 1 72 72
Ara Sınavlar 1 40 40
Final 1 40 40
Toplam İş Yükü 194

Program ve Öğrenme Kazanımları İ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) Temel Yazılım Mühendisliği bilgi ve yetkinliklerini kullanır.
2) Yazılım Mühendisliği uygulamaları için gerekli olan program geliştirme becerisini uygular.
3) Veri yapılarını kullanır ve algoritma geliştirme bilgilerini uygular.
4) İşletim sistemleri üzerinde sistem programları geliştirir.
5) Bilgisayar organizasyonu, tasarımı ve mimarilerini tanımlar.
6) Bilgisayar ağları ve ağ güvenliği yapılarını oluşturur.
7) İş zekası, veri madenciliği ve veri analizi araçlarını kullanır, tekniklerini uygular.
8) Veritabanı uygulamaları ve WEB tabanlı programlar geliştirir.
9) Bilgi teknolojileri projelerini tanımlar, analiz eder, tasarlar ve yönetir.
10) Eğitimde teknoloji tabanlı ortamları ve araçları kullanır ve geliştirir.
11) İş ortamındaki bilişim teknolojileri ihtiyaçlarını saptar, tanımlar ve çözer.
12) Bilişim teknolojileri yetkinliklerini mesleki sorumluluklar ve etik kuralları çerçevesinde kullanır.