Programlama Dilleri (COMPE 325) Ders Detayları Ders Adı Programlama Dilleri Ders Kodu COMPE 325 Dönemi Ders Saati Uygulama Saati Laboratuar Kredi AKTS Saati Güz 3 0 0 3 4.5 Ön Koşul Ders(ler)i Dersin Dili Dersin Türü Dersin Seviyesi Ders Verilme Şekli Dersin Öğrenme ve Öğretme Teknikleri İngilizce Diğer Bölümlerden Alınan Servis Dersleri Lisans Yüz Yüze Anlatım Dersin Koordinatörü
Dersin Öğretmen(ler)i Dersin Asistanı Dersin Amacı Dersin Eğitim Çıktıları Dersin İçeriği Farklı programlama dilleri kavram ve paradigmalarını (zorunlu, işlevsel ve nesne-yönelimli gibi) öğretmek. Farklı programlama kavramlarının farklı tip dillerde nasıl ele alındığını öğretmek. Öğrencilerin çeşitli programlama dilleri kullanarak geliştirecekleri ödev programlar yoluyla öğrendikleri bilgileri uygulamasına olanak tanımak. Bu dersi başarıyla tamamlayabilen öğrenciler; Öğrencilerin çağdaş programlama dillerinin temel yapılarını öğrenmesi Öğrencilerin farklı programlama dillerinin avantaj/dezavantajlarını değerlendirebilmesi için gereken bilgi birikimine sahip olması Derleyici tasarımı konusunda gereken altyapı bilgisini edinme Programlama dilleri kavramları: sözdizim ve anlamdizim, tip kavramı, değerler, deyimler ve cümleler. Program yapısı. Prosedürler ve fonksiyonlar. Yapılandırılımış veri. Soyutlama ve sarma. Kalıt. Dinamik bağlama. Sözkonusu programlama kavramları zorunlu, işlevsel ve nesne-yönelimli programlama dilleri vasıtasıyla öğretilecektir. Haftalık Konular ve İlgili Ön Hazırlık Çalışmaları HaftaKonular Ön Hazırlık 1 Ön bilgiler ve giriş Ana ders kitabı Bölüm 1
2 Sözdizim ve anlamdizim Ana ders kitabı Bölüm 3.1, 3.2, 3.3 3 Sözcük ve sözdizim analizi Ana ders kitabı Bölüm 4.1, 4.2, 4.3, 4.4 4 Adlar, Bağlamalar, Tip kontrolü, Kapsamlar 5 Adlar, Bağlamalar, Tip kontrolü, Kapsamlar Ana ders kitabı Bölüm 5 Ana ders kitabı Bölüm 5 6 Veri tipleri, Deyimler Ana ders kitabı Bölüm 6 7 Deyimler ve Atama cümleleri Ana ders kitabı Bölüm 7 8 Cümle düzeyinde kontrol yapıları Ana ders kitabı Bölüm 8 9 Altprogramlar Ana ders kitabı Bölüm 9 10 Altprogramlar Ana ders kitabı Bölüm 9 11 Altprogramların gerçekleştirimi Ana ders kitabı Bölüm 10 12 Soyut veri tipleri ve sarma Ana ders kitabı Bölüm 12 13 İşlevsel programlama Ana ders kitabı Bölüm 15 14 İşlevsel programlama Ana ders kitabı Bölüm 15 15 Gözden geçirme 16 Gözden geçirme Kaynaklar Ders Kitabı: 1. Robert W. Sebesta, Concepts of Programming Languages, 10th Edition, Pearson, 2012. ISBN #978-0-321-50968-0. Diğer 1. David A. Watt, Programming Language Design Concepts, Wiley, Kaynaklar: 2004. 2. http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html 3. http://www.python.org/
4. http://www.haskell.org/ 5. http://www.haskell.org/haskellwiki/definition Değerlendirme Sistemi Çalışmalar Sayı Katkı Payı Devam/Katılım - - Laboratuar - - Uygulama - - Alan Çalışması - - Derse Özgü Staj - - Küçük Sınavlar/Stüdyo Kritiği - - Ödevler 3 10 Sunum - - Projeler - - Seminer - - Ara Sınavlar/Ara Juri 2 55 Genel Sınav/Final Juri 1 35 Toplam 6 100 Yarıyıl İçi Çalışmalarının Başarı Notu Katkısı Yarıyıl Sonu Çalışmalarının Başarı Notuna Katkısı 65 35
Toplam 100 Ders Kategorisi Temel Meslek Dersleri Uzmanlık/Alan Dersleri Destek Dersleri İletişim ve Yönetim Becerileri Dersleri Aktarılabilir Beceri Dersleri Dersin Öğrenim Çıktılarının Program Yeterlilikleri ile İlişkisi # Program Yeterlilikleri / Çıktıları Katkı Düzeyi 1 2 3 4 5 1 Matematik, fen bilimleri ve hesaplama alanlarındaki bilgi birikimini yazılım mühendisliği problemlerinin çözümüne uygulama becerisi. 2 Alana özgü sorunları analiz etme ve modelleme, çözümleri için uygun yazılım gereksinimlerini belirleme ve tanımlama becerisi.
3 Belirlenen gereksinimleri karşılayacak bir yazılım sistemini, sistem parçasını, işlemi veya programı tasarlama, geliştirme ve değerlendirme becerisi. 4 Yazılım mühendislik uygulamaları için modern teknik ve mühendislik araçlarını kullanma becerisi. 5 Yazılım ihtiyaçlarını anlamak için veri toplama, analiz etme ve yorumlama becerisi. 6 Disiplin içi ve disiplinler arası takımlarda veya bireysel olarak etkin biçimde çalışabilmek için gerekli organizasyonel ve iş yeteneklerini ortaya koyabilme becerisi. 7 Türkçe ve İngilizce dillerinde etkin iletişim kurabilme becerisi. 8 Yaşam boyu öğrenmenin gerekliliği bilinci ve bilgiye erişebilme, bilim ve teknolojideki son gelişmeleri takip edebilme ve kendini sürekli yenileme becerisi. 9 Mesleki, hukuksal, etik ve sosyal sorunlar hakkında farkındalık ve sorumluluk bilinci. 10 Proje ve risk yönetim becerisi; girişimciliğin, yenilikçilik ve sürdürülebilir kalkınmanın önemi hakkında farkındalık; uluslararası standartların ve yöntemlerin bilinmesi. 11 Yazılım mühendisliği uygulamalarının evrensel, sosyal ve hukuksal sonuçları konusunda farkındalık. 12 Yazılım alternatiflerini irdeleyerek bilgisayar tabanlı sistemlerin modellenmesi ve tasarımında, algoritma prensiplerini, matematiksel temelleri ve bilgisayar bilimleri teorisini uygulama becerisi. 13 Yazılım sistemlerinin analiz, tasarım, uygulama, doğrulama, geçerleme ve bakım süreçlerini uygulayarak geliştirilmesinde mühendislik yaklaşımlarını uygulama becerisi.
ECTS/İş Yükü Tablosu Aktiviteler Sayı Süresi (Saat) Toplam İş Yükü Ders saati (Sınav haftası dahildir: 16 x toplam ders saati) Laboratuar Uygulama Derse Özgü Staj Alan Çalışması Sınıf Dışı Ders Çalışma Süresi Sunum/Seminer Hazırlama Projeler 16 3 48 14 2 28 Ödevler 3 8 24 Küçük Sınavlar/Stüdyo Kritiği Ara Sınavlara/Ara Juriye Hazırlanma Süresi Genel Sınava/Genel Juriye Hazırlanma Süresi 2 10 20 1 15 15 Toplam İş Yükü 135