Ders AdıKodu Yerel KrediAKTS Ders (saat/hafta)Uygulama (saat/hafta)Laboratuar (saat/hafta)
İleri Programlama DilleriMTM620037.5300
ÖnkoşullarYok
YarıyılGüz, Bahar
Dersin Diliİngilizce, Türkçe
Dersin SeviyesiDoktora
Dersin TürüSeçmeli @ Matematik Mühendisliği ABD Matematik Mühendisliği Doktora Programı
Seçmeli @ Matematik Mühendisliği ABD Matematik Mühendisliği Yüksek Lisans Programı
Ders KategorisiUzmanlık/Alan Dersleri
Dersin Veriliş ŞekliYüz yüze
Dersi Sunan Akademik BirimMatematik Mühendisliği Bölümü
Dersin KoordinatörüAydın Seçer
Dersi Veren(ler)Aydın Seçer
Asistan(lar)ı
Dersin AmacıÇeşitli programlama dilleri, paradigmalar ve ilgili teknikler hakkında kapsamlı bilgi sağlayarak, yazılım geliştirme süreçlerinde kalite ve güvenliği artırmaya yardımcı olmak.
Dersin İçeriğiProgramlama Dilleri ve Paradigmalarına Giriş: Dillerin tarihçesi ve evrimi, İleri düzey programlama paradigmaları. Tip Sistemleri ve Tip Güvenliği: Statik ve dinamik tip sistemleri, Tip güvenliği, tip çıkarımı ve Hindley-Milner sistemi. Programlama Dilleri Semantiği: Operasyonel, aksiyomatik ve anlambilimsel yaklaşımlar, Denotasyonel ve deneyimsel semantikler. İleri Seviye Nesne Yönelimli Programlama ve Tasarım Modelleri: Nesne yönelimli analiz ve tasarım süreçleri, Mimari ve tasarım örüntüleri. Fonksiyonel Programlama ve Lambda Hesaplamaları: Fonksiyonel programlama paradigmaları ve dilleri Lambda hesaplamaları ve Curry-Howard izomorfizması. Mantıksal Programlama ve İlişkisel Akıl Yürütme: Mantıksal programlama dilleri (ör. Prolog), Kural tabanlı sistemler ve çıkarım motorları. Meta-programlama ve Domain Specific Languages (DSL): Meta-programlama teknikleri ve kullanım alanları, DSL tasarımı ve uygulamaları. Derleyici Tasarımı ve Yapısı: İç ve ara kod temsilleri, Derleyici optimizasyon teknikleri Program Analizi ve Doğrulama: Statik ve dinamik analiz yöntemleri, Program doğrulama ve doğruluk kanıtları. İleri Seviye Eşzamanlılık ve Paralel Programlama: Paralel programlama modelleri ve teknikleri, Eşzamanlılık kontrolü ve kilitlenme önleme stratejileri. İleri Seviye İstisna İşlemleri ve Olay İşleme: İstisna yönetimi ve işlem modelleri, Olay temelli programlama ve reaktif programlama. Kriptografi ve Güvenlik İçin Programlama Dilleri: Güvenlik ve gizlilik için programlama dilleri ve kütüphaneler, Kriptografi kullanarak veri güvenliği sağlama. Kuantum Programlama Dilleri ve Kuantum Bilgisayarlar: Kuantum bilgisayarların temel prensipleri ve özellikleri, Kuantum programlama dilleri ve algoritmaları, Kuantum süperpozisyonu, örtüşme ve kuantum hesaplamalarının geleceği.
Ders Kitabı / Malzemesi / Önerilen Kaynaklar
  • Pierce, B. C. Types and Programming Languages. MIT Press. Bu kitap, tip sistemleri, tip güvenliği ve tip çıkarımı konularında derinlemesine bilgi sunar.
  • Scott, M. L. Programming Language Pragmatics, Fourth Edition. Morgan Kaufmann. Bu kitap, programlama dilleri semantiği ve paradigma çeşitliliği üzerine kapsamlı bilgi sağlar.
  • Gamma, E., Helm, R., Johnson, R., & Vlissides, J. "Design Patterns: Elements of Reusable Object-Oriented Software". Addison-Wesley. Nesne yönelimli programlama ve tasarım modelleri üzerine klasik bir kaynak.
  • Hudak, P. "The Haskell School of Expression: Learning Functional Programming through Multimedia". Cambridge University Press. Bu kitap, fonksiyonel programlama ve lambda hesaplamaları üzerine odaklanır.
  • Aho, A. V., Lam, M. S., Sethi, R., & Ullman, J. D. "Compilers: Principles, Techniques, and Tools, Second Edition". Pearson. Derleyici tasarımı ve yapıları hakkında ayrıntılı bilgi sunar.
  • Nielsen, M. A., & Chuang, I. L. "Quantum Computation and Quantum Information: 10th Anniversary Edition". Cambridge University Press. Kuantum programlama dilleri ve kuantum bilgisayarlar üzerine temel ve güncel bilgiler sunar.
Opsiyonel Program BileşenleriYok

Ders Öğrenim Çıktıları

  1. Farklı programlama dilleri ve paradigmaları hakkında bilgi sahibi olma ve bu dillerin tarihçesini ve evrimini anlama.
  2. Tip sistemleri ve tip güvenliği konularında bilgi edinme ve statik ve dinamik tip sistemleri arasındaki farkları kavrama.
  3. Nesne yönelimli programlama, fonksiyonel programlama ve mantıksal programlama gibi ileri düzey programlama tekniklerini öğrenme ve uygulama becerisi kazanma.
  4. Program analizi ve doğrulama yöntemleriyle yazılımın kalitesini ve güvenliğini artırma becerisi geliştirme.
  5. Kuantum programlama dilleri ve kuantum bilgisayarlar hakkında temel bilgi edinme ve gelecekteki gelişmeleri takip etme becerisi.

Ders Öğrenim Çıktısı & Program Çıktısı Matrisi

DÖÇ-1DÖÇ-2DÖÇ-3DÖÇ-4DÖÇ-5
PÇ-1-----
PÇ-2-----
PÇ-3-----
PÇ-4-----
PÇ-5-----
PÇ-6-----
PÇ-7-----
PÇ-8-----
PÇ-9-----
PÇ-10-----

Haftalık Konular ve İlgili Ön Hazırlık Çalışmaları

HaftaKonularÖn Hazırlık
1Programlama Dilleri ve Paradigmalarına Giriş: Dillerin tarihçesi ve evrimi, İleri düzey programlama paradigmaları.Kaynak Kitaplar ve Çevirimiçi Materyaller
2Tip Sistemleri ve Tip Güvenliği: Statik ve dinamik tip sistemleri, Tip güvenliği, tip çıkarımı ve Hindley-Milner sistemi.Kaynak Kitaplar ve Çevirimiçi Materyaller
3Programlama Dilleri Semantiği: Operasyonel, aksiyomatik ve anlambilimsel yaklaşımlar, Denotasyonel ve deneyimsel semantikler.Kaynak Kitaplar ve Çevirimiçi Materyaller
4İleri Seviye Nesne Yönelimli Programlama ve Tasarım Modelleri: Nesne yönelimli analiz ve tasarım süreçleri, Mimari ve tasarım örüntüleri.Kaynak Kitaplar ve Çevirimiçi Materyaller
5Fonksiyonel Programlama ve Lambda Hesaplamaları: Fonksiyonel programlama paradigmaları ve dilleri Lambda hesaplamaları ve Curry-Howard izomorfizması.Kaynak Kitaplar ve Çevirimiçi Materyaller
6Mantıksal Programlama ve İlişkisel Akıl Yürütme: Mantıksal programlama dilleri (ör. Prolog), Kural tabanlı sistemler ve çıkarım motorları.Kaynak Kitaplar ve Çevirimiçi Materyaller
7Meta-programlama ve Domain Specific Languages (DSL): Meta-programlama teknikleri ve kullanım alanları, DSL tasarımı ve uygulamaları.Kaynak Kitaplar ve Çevirimiçi Materyaller
8Ara Sınav 1
9Derleyici Tasarımı ve Yapısı: İç ve ara kod temsilleri, Derleyici optimizasyon teknikleriKaynak Kitaplar ve Çevirimiçi Materyaller
10Program Analizi ve Doğrulama: Statik ve dinamik analiz yöntemleri, Program doğrulama ve doğruluk kanıtları.Kaynak Kitaplar ve Çevirimiçi Materyaller
11İleri Seviye Eşzamanlılık ve Paralel Programlama: Paralel programlama modelleri ve teknikleri, Eşzamanlılık kontrolü ve kilitlenme önleme stratejileri.Kaynak Kitaplar ve Çevirimiçi Materyaller
12İleri Seviye İstisna İşlemleri ve Olay İşleme: İstisna yönetimi ve işlem modelleri, Olay temelli programlama ve reaktif programlama.Kaynak Kitaplar ve Çevirimiçi Materyaller
13Kriptografi ve Güvenlik İçin Programlama Dilleri: Güvenlik ve gizlilik için programlama dilleri ve kütüphaneler, Kriptografi kullanarak veri güvenliği sağlama.Kaynak Kitaplar ve Çevirimiçi Materyaller
14Kuantum Programlama Dilleri ve Kuantum Bilgisayarlar: Kuantum bilgisayarların temel prensipleri ve özellikleri, Kuantum programlama dilleri ve algoritmaları, Kuantum süperpozisyonu, örtüşme ve kuantum hesaplamalarının geleceği.Kaynak Kitaplar ve Çevirimiçi Materyaller
15Konu Tekrarı ve Uygulamaları
16Final

Değerlendirme Sistemi

EtkinliklerSayıKatkı Payı
Devam/Katılım110
Laboratuar
Uygulama
Arazi Çalışması
Derse Özgü Staj
Küçük Sınavlar/Stüdyo Kritiği
Ödev
Sunum/Jüri
Projeler120
Seminer/Workshop
Ara Sınavlar130
Final140
Dönem İçi Çalışmaların Başarı Notuna Katkısı
Final Sınavının Başarı Notuna Katkısı
TOPLAM100

AKTS İşyükü Tablosu

EtkinliklerSayıSüresi (Saat)Toplam İşyükü
Ders Saati133
Laboratuar
Uygulama
Arazi Çalışması
Sınıf Dışı Ders Çalışması136
Derse Özgü Staj
Ödev
Küçük Sınavlar/Stüdyo Kritiği
Projeler120
Sunum / Seminer
Ara Sınavlar (Sınav Süresi + Sınav Hazırlık Süresi)115
Final (Sınav Süresi + Sınav Hazırlık Süresi)120
Toplam İşyükü :
Toplam İşyükü / 30(s) :
AKTS Kredisi :
Diğer NotlarYok