Türkçe | English
MÜHENDİSLİK FAKÜLTESİ / BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ
( I. ÖĞRETİM) - %30 İngilizce
Ders Bilgi Paketi
https://www.ktu.edu.tr/bilgisayar
Tel: +90 0462 377 2080
MF
MÜHENDİSLİK FAKÜLTESİ / BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ / ( I. ÖĞRETİM) - %30 İngilizce
Katalog Ana Sayfa
  Katalog Ana Sayfa  KTÜ Ana Sayfa   Katalog Ana Sayfa
 
 

COM2002Programming Languages3+0+0AKTS:5
Yıl / YarıyılBahar Dönemi
Ders DuzeyiLisans
Yazılım ŞekliZorunlu
BölümüBİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ
Ön KoşulYok
Eğitim SistemiYüz yüze , Uygulama
Dersin Süresi14 hafta - haftada 3 saat teorik
Öğretim ÜyesiDoç. Dr. Hüseyin PEHLİVAN
Diğer Öğretim ÜyesiYRD. DOÇ. DR. Hüseyin PEHLİVAN,
Öğretim Diliİngilizce
StajYok
 
Dersin Amacı:
Önemli programlama paradigmalarının (emirsel, nesne-tabanlı, fonksiyonel ve lojik) icra modellerini, farklı katmanlarda dil yapılarını (kelimesel, sözdizimsel, içeriksel ve anlamsal) ve diğer önemli programlama dili konularını (tipler, çokbiçimlilik, aşırı yükleme, kapsamlar, aktivasyon kayıtları ve parametre geçişi) incelemenin yanı sıra C, Java ve Haskell gibi dillerde kaynak kod içerisinden modern programlama dillerinin temel prensiplerini sunmaktır.
 
Öğrenim KazanımlarıBPKKÖY
Bu dersi başarı ile tamamlayan öğrenciler :
ÖK - 1 : programlama dili sözdizim ve anlambilimini tanımlamak için formal teknikleri kullanabilir.2,3,41,3
ÖK - 2 : sözdizim ve anlambiliminin temel çerçevesi verilen yeni dillerde hızlıca programlar yazmaya başlayabilir.2,3,41,3
ÖK - 3 : yeni programlama dillerini analiz edebilir ve değerlendirebilir.2,3,41
ÖK - 4 : fonksiyonel programlama tarzını uygulayabilir ve çoklu fonksiyonlar gerektiren Haskell programları yazabilir.2,3,41,3
ÖK - 5 : statik ve dinamik olarak tiplenen diller arasındaki farkları kavrayabilir.2,3,41
ÖK - 6 : çokbiçimlilik, tipleme, aşırı yükleme, erken ve geç bağlama gibi emirsel ve nesneye yönelik özellikleri uygulayabilir.2,3,41,3
BPKK :Bölüm program 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ı
 
Ders İçeriği
Dil paradigmaları: Emirsel, nesneye yönelik, fonksiyonel ve lojik programlama. Program sözdizimi: Backus Naur biçimi, gramerler, kelimesel sözdizimsel yapılar, diğer gramer biçimleri. Sözdizim ve anlambilimi: İşleçler, öncelik, birleşme, diğer belirsizlikler, parse ağaçları. Dil sistemleri: Klasik zincir, yorumlayıcılar, sanal makineler, gecikmeli bağlama, profilleme, dinamik derleme, bağlama zamanları. Haskell'e ilk bakış: Hugs sistemi, tipler, sınıflar. Tipler: İlkel ve yapılandırılmış tipler, sıralamalar, diziler, birleşik tipler, alt tipler, tiplerin kullanımları. Haskell'e ikinci bakış: Fonksiyonlar tanımlama, liste türetimi. Çokbiçimlilik: Aşırı yükleme, parametre dönüşümü, parametrik ve alt tip çokbiçimliliği. Haskell'e üçüncü bakış: Yüksek dereceli fonksiyonlar, fonksiyonel ayrıştırıcılar. Kapsam: Tanımlamalar, blokalarla kapsama, etiketlenmiş alanla kapsama, ilkel alanla kapsama, dinamik kapsama. Haskell'e dördüncü bakış: Etkileşimli programlar, tip ve sınıf bildirimleri. Değişkenler için bellek alanları: Aktivasyona özel değişkenler, aktivasyon kayıtları, statik özgüleme, dinamik yığınlar, içice fonksiyonlarla ilgilenme, parametre olarak fonksiyonlar, uzun yaşamlı fonksiyonlar. Bellek yönetimi: Bir bellek modeli, yığınlar, kümeler, bölütleme, güncel küme linkleri. Nesne-yönlendirme: Sınıflar, prototipler, miras, kuşatma, çokbiçimlilik. Parametreler: Uyuşma, parametre geçme yöntemleri. Maliyet modelleri: Listeler için bir maliyet modeli, fonksiyon çağrımları için bir maliyet modeli, diziler için bir maliyet modeli.
 
Haftalık Detaylı Ders İçeriği
 HaftaDetaylı İçerikÖnerilen Kaynak
 Hafta 1Dil Paradigmaları Çok disiplinli proje grupları ve konularının belirlenmesi
 Hafta 2Program Sözdizimi
 Hafta 3Sözdizim ve Anlambilimi
 Hafta 4Dil Sistemleri
 Hafta 5Haskell'e İlk Bakış
 Hafta 6Tipler
 Hafta 7Haskell'e İkinci Bakış
 Hafta 8Çokbiçimlilik ve Kapsam
 Hafta 9Arasınav
 Hafta 10Haskell'e Üçüncü Bakış
 Hafta 11Değişkenler için Bellek Alanları
 Hafta 12Haskell'e Dördüncü Bakış
 Hafta 13Bellek Yönetimi ve Nesne-yönlendirme
 Hafta 14Parametreler Project presentations
 Hafta 15Maliyet Modelleri
 Hafta 16Dönem sonu sınavı
 
Ders Kitabı / Malzemesi
1Webber, A. B., 2011, Modern Programming Languages: A Practical Introduction, Franklin Beedle & Associates, 572 p.
 
İlave Kaynak
1Sebesta, R. W., 2019, Concepts of Programming Languages, Pearson, 784 p.
2Hutton, G., 2016, Programming in Haskell, 2nd ed., Cambridge University Press, 272 p.
 
Ölçme Yöntemi
YöntemHaftaTarih

Süre (Saat)Katkı (%)
Arasınav 9 2 50
Dönem sonu sınavı 16 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 3 14 42
Arasınav için hazırlık 10 1 10
Arasınav 2 1 2
Uygulama 1 14 14
Proje 1 12 12
Dönem sonu sınavı için hazırlık 15 1 15
Dönem sonu sınavı 2 1 2
Toplam Çalışma Yükü139