Algoritma ve İleri Programlama I(MAT231)
Ders Kodu | Dersin Adı | Yarıyıl | Teori | Uygulama | Lab | Kredisi | AKTS |
---|---|---|---|---|---|---|---|
MAT231 | Algoritma ve İleri Programlama I | 3 | 3 | 0 | 0 | 3 | 3 |
Ön Koşul | |
Derse Kabul Koşulları |
Dersin Dili | Fransızca |
Türü | Zorunlu |
Dersin Düzeyi | Lisans |
Dersi Veren(ler) | N. Sultan TURHAN sturhan@gsu.edu.tr (Email) |
Dersin Yardımcıları | |
Dersin Amacı | Bu dersin amacı öğrencilerin programlama yeteneklerini temel algoritmaların, gerçeklemelerinin ve hesapsal problemlere uygulamalarının incelenmesi yoluyla geliştirmektir. |
İçerik |
Temel programlama tekrarı (Python ile): değişken, değer, ifade, atama, koşul, döngü, fonksiyon Veri yapıları: liste, dizi, çok boyutlu dizi,ağaç, yığıt, kuyruk Algoritmalar: sıralama, arama, agregasyon fonksiyonları Özyineleme: nümerik hesaplama, ağaçta gezinme Algoritma analizi: zaman/uzay karmaşıklığı, karmaşıklık sınıfları |
Dersin Öğrenme Çıktıları |
--bir problem verildiğinde, öğrenciler problemin mantıksal bileşenlerini ve bunların arasındaki ilişkileri ayırt edebilecek ve her biri için hangi algoritmaları kullanabileceğini belirleyebilecek. --bir algoritma verildiğinde, öğrenciler bunun performansını ve karakteristiklerini aynı türden diğer algoritmalar ile karşılaştırabiliyor olacak. --bir kaynak kodu verildiğinde, öğrenciler bunun içinde gerçeklenmiş olan veri yapılarını ve algoritmaları ayırt edip, belirleyebilecek. |
Öğretim Yöntemleri | teorik ders, ödev |
Kaynaklar |
The Art of Computer Programming - Donald Knuth Python - How to Program - Deitel Data Structures and Algorithms Using Python - Rance D. Necaise Data Structures and Algorithms with Object-Oriented Design Patterns in Python - Bruno R.Preiss |
Teori Konu Başlıkları
Hafta | Konu Başlıkları |
---|---|
1 | Programlama (tekrar): değer, ifade, değişken, veri türü, atama, sayaçlı döngüler |
2 | Programlama (tekrar): koşul, kod akışının çatallanması, koşullu döngüler, iç içe döngü ve koşullar |
3 | Programlama (tekrar): fonksiyon, parametre, dönüş değeri, kod akışı, stack frame, değişken scope'u |
4 | Diziler, desenler, çok boyutlu desenler, veri bağımlılığı |
5 | Agregate fonksiyonların gerçeklenmesi: min, max, topla, say, ortalama, standart sapma, tekilleştir |
6 | Sıralama: basit yaklaşım, insertion sort, bubble sort, merge sort |
7 | Arasınav I |
8 | Özyineleme: derinliğe göre sınırlama, fonksiyon çağrılarının akışı, örnekler: faktoriyel, fibonacci, quick sort |
9 | Ağaçlar: derinlik öncelikli gezinme, genişlik öncelikli gezinme, in-order/pre-order/post-order gezinme |
10 | Yığıt, kuyruk, yığıt ve özyineleme arasındaki ilişki, recursion removal |
11 | Arasınav 2 |
12 | Nümerik algoritmalar: rastgele sayı üreteçleri, nümerik kök bulma algoritmaları, lineer regresyon |
13 | Arama: basit arama, ikili arama, rekürsif arama |
14 | Uzay/zaman karmaşıklığı, karmaşıklık sınıfları, algoritmaların karmaşıklıklarının karşılaştırılması |
Uygulama Konu Başlıkları
Hafta | Konu Başlıkları |
---|
Başarı Notuna Etki Oranları
Sayı | Katkı Payı | |
---|---|---|
Yarıyıl içi çalışmaların başarı notuna katkısı | 2 | 40 |
Yarıyıl sonu çalışmaların başarı notuna katkısı | 1 | 60 |
Toplam | 3 | 100 |
Yarıyıl İçi Çalışmaları
Sayı | Katkı Payı | |
---|---|---|
Ödevler | 0 | 0 |
Sunum | 0 | 0 |
Arasınavlar (Hazırlık Süresi Dahil) | 2 | 40 |
Proje | 0 | 0 |
Laboratuar | 0 | 0 |
Diğer Uygulamalar | 0 | 0 |
Kısa Sınavlar | 0 | 0 |
Dönem Ödevi / Projesi | 0 | 0 |
Portfolyo Çalışmaları | 0 | 0 |
Raporlar | 0 | 0 |
Öğrenme Günlükleri | 0 | 0 |
Bitirme Tezi/Projesi | 0 | 0 |
Seminer | 0 | 0 |
Diğer | 0 | 0 |
Toplam | 2 | 40 |
Numara | Program Yeterlilikleri | Puan | ||||
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
1 | Çıkarım yaparak muhakeme yapmanın ilkelerini anlar; ürettiği ya da karşılaştığı matematiksel ifadenin doğruluğunu ve uygunluğunu sistematik şekilde sorgulayabilir; | X | ||||
2 | Temel matematik netice ve kavramlarını doğru şekilde bilir ve kullanır; | X | ||||
3 | Sık kullanılan hesap tekniklerine ve algoritmalara hakimdir; bunları hayata geçirmek için iyi bir hesap becerisine sahiptir; bir problemin çözümü için bildiği araçlar arasından ilgili aleti tespit edip kullanabilir ve bu aletlere sahip olup olmadığını muhakeme edebilir; | X | ||||
4 | Matematiksel fikirlerini yapılandırarak hem yazılı hem de sözlü ifade edebilir; | X | ||||
5 | Bildiği matematiksel kavram ve neticeler arasındaki bağlantıları idrak eder, matematik nesnelerinin temsil biçimlerinin (şekiller, formüller, ifadeler, tahminler, örnek kümeleri , ...) birinden diğerine geçiş yapabilir; | X | ||||
6 | Rehber gözetiminde özerk bir öğrenme tecrübesi geçirmiş ve karmaşık bir problemin çözümünün anlaşılması için stratejiler geliştirmiştir; | X | ||||
7 | Bilgisayar biliminin teori ve uygulamaları hakkında, bir programlama dili öğrenmeye devam etmeye yetecek temellere sahiptir; | X | ||||
8 | Matematik modellerinin uygunluğunu ve matematik aletlerinin doğa bilimlerinde ve iş dünyasında kullanımını sorgulamıştır; matematik kavramlarının tarihi evriminin farkındadır; | X | ||||
9 | Bir akademik serbestlik atmosferi içinde matematik içi veya dışı bir konuya adım atma fırsatına sahip olmuştur, eğitimde yolunu kendi başına çizmeyi ve sorumluluk almayı öğrenmiştir; | X | ||||
10 | Yabancı bir ülkede okumak ve çalışmaya yetecek seviyede fransızcaya ve başka bir yabancı dile hakimdir. | X |
Etkinlikler | Sayı | Süre | Toplam İş Yükü |
---|---|---|---|
Ders Süresi | 14 | 3 | 42 |
Sınıf Dışı Çalışma Süresi | 14 | 2 | 28 |
Ödevler | 14 | 1 | 14 |
Arasınavlar (Hazırlık Süresi Dahil) | 1 | 10 | 10 |
Yarıyıl Sonu Sınavı (Hazırlık Süresi Dahil) | 1 | 20 | 20 |
Toplam İş Yükü | 114 | ||
Toplam İş Yükü / 25 | 4.56 | ||
Dersin AKTS Kredisi | 5 |