|
BIL7151 | Functional Programming | 3+0+0 | AKTS:7.5 | Yıl / Yarıyıl | Bahar Dönemi | Ders Duzeyi | Doktora | Yazılım Şekli | Seçmeli | Bölümü | BİLGİSAYAR MÜHENDİSLİĞİ ANABİLİM DALI | Ön Koşul | Yok | Eğitim Sistemi | Yüz yüze | Dersin Süresi | 14 hafta - haftada 3 saat teorik | Öğretim Üyesi | Doç. Dr. Hüseyin PEHLİVAN | Diğer Öğretim Üyesi | Yok | Öğretim Dili | İngilizce | Staj | Yok | | Dersin Amacı: | Fonksiyonel dilleri gerçekleme, fonksiyonel programlama tarzının yararları ve fonksiyonel programların bir matematiksel hesaplama süreci olarak oluşturulması gibi konuları anlatarak Haskell dili yardımıyla fonksiyonel programlama paradigmasını sunmaktır. |
Öğrenim Kazanımları | PÖKK | ÖY | Bu dersi başarı ile tamamlayan öğrenciler : | | | ÖK - 1 : | basit problemleri çözmek için temel fonksiyonel teknikleri kullanabilir. | 3,10 | 1,3 | ÖK - 2 : | yüksek dereceli fonksiyonlar tanımlayabilir ve kullanabilir. | 3,5,10 | 1,3 | ÖK - 3 : | listeler üzerinde herhangi bir çeşit fonksiyon tanımlayabilir. | 3,5 | 1,3 | ÖK - 4 : | yeni veri tipleri tanımlamak için Haskell ilkelerini kullanabilir. | 3,5,10 | 1,3 | ÖK - 5 : | bir tembel fonksiyonel dilin ana özelliklerini anlayabilir. | 3,5 | 1,3 | ÖK - 6 : | fonksiyonel biçimde giriş ve çıkış işlemlerini yönetebilir. | 3,5,10 | 1,3 | PÖKK :Program öğrenim kazanımlarına katkı, ÖY : Ölçme ve değerlendirme yöntemi (1: Yazılı Sınav, 2: Sözlü Sınav, 3: Ev Ödevi, 4: Laboratuvar Çalışması/Sınavı, 5: Seminer / Sunum, 6: Dönem Ödevi / Proje),ÖK : Öğrenim Kazanımı | |
Fonksiyonel programlamaya giriş: Haskell programları, Hugs kullanımı, program sözdizimi, ifadeler, standart kütüphaneler, modüller, hatalar ve hata mesajları. Veri tipleri: Temel tipler ve tanımlamalar, çiftler, listeler, liste türetimi, çokbiçimlilik, aşırı yükleme, öncü ifadeler. Fonksiyon tanımlama: Örüntü eşleme, listeler ve liste örüntüleri, listeler üzerindeki ilkel özçağrılar, fonksiyon seviyeli tanımlamalar, fonksiyon birleşimi, parametre birleşimi, yerel tanımlamalar. Genelleştirme: Listeler üzerindeki hesaplama örüntüleri, yüksek dereceli fonksiyonlar, katlama ve ilkel özçağrı, listeleri parçalama. Tip denetimi: Tekbiçimli tip denetimi, çokbiçimli tip denetimi, tip denetimi ve sınıfları. Cebirsel tipler: Cebirsel tiplere giriş, özçağrılı cebirsel tipler, çokbiçimli cebirsel tipler. Soyut veri tipleri: Tip gösterimleri, kuyruklar, tasarım, benzetim, arama ağaçları, kümeler, ilişkiler ve graflar. Amaçlı hesaplama: Amaçlı değerlendirme, hesaplama kuralları, veriye dayalı programlama, ayrıştırma ifadeleri, sonsuz listeler. Durum çalışmaları: Huffman kodları, kodlama ve dekodlama, Huffman ağaçları oluşturma. Eylemlerle programlama: Giriş/çıkış temelleri, yineleme ve özçağırma, do yapısı, monad'lar, ağaçlar üzerinde monadik hesaplama. |
|
Haftalık Detaylı Ders Planı | Hafta | Detaylı İçerik | Önerilen Kaynak | Hafta 1 | Fonksiyonel Programlamaya Giriş | | Hafta 2 | Veri Tipleri | | Hafta 3 | Çiftler ve Listeler | | Hafta 4 | Fonksiyon tanımlama | | Hafta 5 | Özyineleme ve Liste Türetme | | Hafta 6 | Yüksek Dereceli Fonksiyonlar | | Hafta 7 | Genelleştirme | | Hafta 8 | Tiplerin Denetimi | | Hafta 9 | Arasınav | | Hafta 10 | Cebirsel Tipler | | Hafta 11 | Cebirsel Veri Tipleri | | Hafta 12 | Amaçlı Programlama | | Hafta 13 | Durum Çalışması: Huffman Ağaçları | | Hafta 14 | Eylemlerle Programlama | | Hafta 15 | Durum Çalışması: Ayrıştırıcılar | | Hafta 16 | Dönem sonu sınavı | | |
1 | Thompson, S. 2001; Haskell: The Craft of Functional Programming, 2nd ed., Addison Wesley, 600 p. | | 2 | Rabhi, F.A., Lapalme, G. 1999; Algorithms: A Functional Programming Approach, 1st ed., Addison Wesley, 256 p. | | |
1 | Bird, R. 1998; Introduction to Functional Programming using Haskell, 2nd ed., Prentice Hall, 448 p. | | 2 | Cousineau, G., Mauny, M., Callaway, K. 1998; The Functional Approach to Programming, .English ed., Cambridge University Press, 460 p. | | |
Ölçme Yöntemi | Yöntem | Hafta | Tarih | Süre (Saat) | Katkı (%) | Arasınav | 9 | 18/04/2024 | 2 | 30 | Yıl içi çalışma | 13 | 16/05/2024 | 2 | 20 | Dönem sonu sınavı | 16 | 06/06/2024 | 2 | 50 | |
Öğrenci Çalışma Yükü | İşlem adı | Haftalık süre (saat) | Hafta sayısı | Dönem toplamı | Yüz yüze eğitim | 3 | 14 | 42 | Sınıf dışı çalışma | 5 | 14 | 70 | Arasınav için hazırlık | 15 | 1 | 15 | Arasınav | 2 | 1 | 2 | Ödev | 30 | 1 | 30 | Dönem sonu sınavı için hazırlık | 20 | 1 | 20 | Dönem sonu sınavı | 2 | 1 | 2 | Toplam Çalışma Yükü | | | 181 |
|