Bilimsel ve hesaba dayalı klasik problemlerin çözümü konusundaki temel algoritmaları öğretmek ve öğrenciyi algoritma analizinde kullanılan matematiksel yöntem ve araçlarla tanıştırmak.
Ön Koşullar
Yok
Eş Koşullar
Yok
Özel Koşullar
Programlama, veri yapıları, temel matematik (seriler, matrisler) konularında bilgi sahibi olmak ve kaynakları takip edebilme açısından temel düzeyde ingilizce bilgisine sahip olmak gerekli ve yeterlidir.
- Konu Anlatımı
- Bilgisayar Laboratuvarında C/C++ programlama dili ile algoritmaların gerçeklenmesi
Temel Kaynaklar
- Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein, Introduction To Algorithms, 3rd ed, The MIT Press, 2009.
Diğer Kaynaklar
- Michael T. Goodrich, Roberto Tamassia, Algorithm Design : Foundations, Analysis and Internet Examples, John Wiley & Sons Inc., 2002.
- MIT OpenCourseWare Web Site : http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-046j-introduction-to-algorithms-sma-5503-fall-2005/
Haftalık Ders Programı
Hafta
Dersin İçeriği
Öğretim Yöntem ve Teknikleri
1. Hafta
Algoritmalara Giriş, Algoritma Analizi, Araya Eklemeli Sıralama, Birleştirmeli Sıralama
Sözlü anlatım, uygulama
2. Hafta
Asimtotik Gösterim, Özyineleme, Yerine Koyma Yöntemi, Ana (Master) Metod
Kırmızı-Siyah Ağaçlarda Düğüm Döndürme, Düğüm Ekleme ve Düğüm Silme İşlemleri
Sözlü anlatım, uygulama
10. Hafta
Veri Yapılarının Genişletilmesi, Dinamik Sıra İstatistikleri ,Aralık Ağaçları
Sözlü anlatım, uygulama
11. Hafta
Dinamik Programlama : En Uzun Ortak Alt Dizi ve Çubuk Kesim Problemleri
Sözlü anlatım, uygulama
12. Hafta
Genel Konu Tekrarı
Sözlü anlatım, uygulama
13. Hafta
Açgözlü Algoritmalar, Minimum Kapsayan Ağaçlar
Sözlü anlatım, uygulama
14. Hafta
En Kısa Yol Bulma Algoritmaları
Sözlü anlatım, uygulama
15. Hafta
Final Haftası
Sınav
16. Hafta
Final Haftası
Sınav
17. Hafta
Final Haftası
Sınav
Değerlendirme Ölçütleri
Ölçüt Tipleri
Adet
Yüzdesi(%)
Ara sınav(lar)
1
40
Final
1
60
ÖÇ-1
Sıralama, arama ve çizge problemleri gibi klasik algoritmik problemlerin çözümü konusunda farklı algoritmalar öğrenir.
ÖÇ-2
Algoritmaların zaman ve mekan karmaşıklığını ve doğruluğunu matematiksel yöntem ve
teorik çözümleme araçlarını kullanarak analiz eder.
ÖÇ-3
Temel algoritma geliştirme tekniklerini (böl ve yönet, açgözlü algoritmalar, dinamik programlama vb.) uygulama konusunda yetkinlik kazanır.
ÖÇ-4
Farklı problem çözme yaklaşımlarını kullanarak programlar geliştirir ve geliştirdiği programlarda kullanılacak en etkili yaklaşımı tanımlayabilir.
ÖÇ-5
Gerçek hayatta karşılaşabileceği bir problemli modellemek için algoritma tasarlama ve program geliştirme yeteneğini kazanır; daha sonra bu programın davranışını analiz eder.
Program Çıktıları
PÇ-1
Matematik veya bilgisayar bilimleri alanlarında ileri düzeyde kuramsal ve uygulamalı bilgilere sahiptir.
PÇ-2
Matematik veya bilgisayar bilimleri alanlarında edindiği bilgi ve becerileri kullanarak verileri yorumlar ve değerlendirir.
PÇ-3
Matematik veya bilgisayar bilimleri alanlarındaki problemleri saptar, tanımlar, analiz eder; araştırmalara ve kanıtlara dayalı çözüm önerileri geliştirir.
PÇ-4
Matematik disiplinine sahip olarak, bilgisayarın işleyiş mantığını anlar ve hesaba dayalı düşünme yeteneği kazanır.
PÇ-5
Matematik veya bilgisayar bilimleri alanlarında karşılaşılan problemleri çözmek için bireysel ve ekip üyesi olarak etkin bir biçimde çalışır.
PÇ-6
En az bir yabancı dil bilgisine ve Türkçe, sözlü ve yazılı etkin iletişim kurma becerisine sahiptir.
PÇ-7
Analitik düşünme yeteneği ile sonuç çıkarma sürecinde zamanı etkin kullanır.
PÇ-8
Mesleki etik ve sorumluluk bilincindedir.
PÇ-9
Bağımsız davranma, inisiyatif kullanma ve yaratıcılık becerisine sahiptir.
PÇ-10
Yaşam boyu öğrenmenin gerekliliğinin bilincine sahiptir ve mesleki bilgi ve becerilerini sürekli olarak geliştirir.
PÇ-11
Alanı ile ilgili sahip olduğu bilgi birikimini toplum yararına kullanır.