PROGRAMI
DERS TANITIM VE UYGULAMA BİLGİLERİ

Ders AdıKoduVerildiği YılVerildiği YarıyılSüresi (T+U)Yerel KredisiAKTS Kredisi
Programlama DilleriCENG 442423 + 035,00
 
Ders Bilgileri
Dersin Öğretim Diliİngilizce
Dersin SeviyesiLisans
Dersin TürüZorunlu
Dersin Veriliş BiçimiYüz Yüze
 
Dersin Öğrenme Kazanımları:

Bu dersi başarı ile tamamlayan öğrenciler:
1. Çağın ve geleceğin programlama dillerini değerlendirmek.
2. Problemler için uygun programlama dili seçimini öğrenmek.
3. Yeni programlama dili öğrenme kabiliyetini geliştirmek.
4. Programlama kavramlarını ifade etme kabiliyetini geliştirmek.
5. İmperatif, nesne-yönelimli, fonksiyonel ve mantıksal dillerde programlama.
 
Dersin Önkoşulları ve Birlikte Alınması Gereken DerslerCENG 124, CENG 241
Daha Önce Alınmış Olması Önerilen DerslerYok
 
Dersin Tanımı:

Bu dersin amacı, programlama dillerindeki temel kavramları ve bunları uygulamak için başlıca araç ve teknikleri incelemektir. Bu, sözdizimi belirtimini ve biçimsel olmayan anlamsal modelleri içerir; bağlama ve kapsam belirleme; türler ve tür sistemleri; kontrol yapıları; veri soyutlama; yordamsal soyutlama ve parametre geçirme; istisnalar; ve üst düzey fonksiyonlar; ve bellek yönetimi. Ana programlama dilleri tarafından benimsenen zorunlu programlama paradigması ile ilişkileri de dahil olmak üzere, ana programlama paradigmalarının temel özelliklerini keşfedeceğiz. Öğrenciler, çeşitli paradigmaların göze çarpan özelliklerini içeren birkaç küçük dil için çeviriciler ve derleyiciler uygulayarak programlama dillerinin temel fikirleri hakkında fikir edineceklerdir. Kullandıkları araçlar Flex ve Bison olacaktır. Haskell, işlevsel programlamanın yanı sıra işlevsel dil tartışması etrafında kullanılacaktır. Haskell ile programlama paradigması, buyrum programlamadan hesaplama yaklaşımı kapsamında önemli ölçüde farklı bir düşünme biçimi gerektirecek kadar farklıdır. İşlevsel programlar ile kodlamayı öğrenmek, öğrencilere programlama kavramları hakkında daha derin bir anlayış sağlayacaktır.
 
Dersin İçeriği (Haftalık Konu Dağılımı):
 
HaftaKonu
1Giriş, Hazırlık ve Tarih
2Sözcük Tanıma ve Analiz
3CFL/CFGs and Sözdizimi Analizi
4Flex ve Bison Araçları
5Anlamsal Analiz
6İsimler, Bağlayıcılar, Tip Denetimi ve Kapsam
7(Soyut) Veri Tipleri
8Vize
9İfadeler ve Denetim Yapıları
10Alt programlar
11İstisnalar ve İstisna Yönetme
12Fonksiyonel Programlama Dilleri I
13Fonksiyonel Programlama Dilleri II
14Fonksiyonel Programlama: Haskel
 
Kaynaklar:
Robert W. Sebesta, Concepts of Programming Languages, Addison-Wesley, 2012, 978-0131395312.
 
Diğer Kaynaklar:
Michael L. Scott, Programming Language Pragmatics, Morgan Kaufmann, 2009, 978-0123745149 Haskell The Craft of Functional Programming, 2nd Edition, Simon Thompson, Pearson, 1999.
 
Öğretim Yöntem ve Teknikleri:
3 saat/hafta ders.
 
Değerlendirme Sistemi:
YöntemAdetKatkı (%)
Ara Sınav1%30
Proje1%30
Final Sınavı1%40
 
Ders İşbaşı Eğitimi (iş yerinde eğitim) Gerektiriyor mu?
Gerektirmiyor