BİL603 - PROGRAMLAMA DİLLERİ TEORİSİ

Dersin Adı Kodu Yarıyılı Teori
(saat/hafta)
Uygulama
(saat/hafta)
Yerel Kredi AKTS
PROGRAMLAMA DİLLERİ TEORİSİ BİL603 Herhangi Yarıyıl/Yıl 3 0 3 8
Önkoşul(lar)-var ise
Dersin DiliTürkçe
Dersin TürüSeçmeli 
Dersin verilme şekliYüz yüze 
Dersin öğrenme ve öğretme teknikleriAnlatım
Rapor Hazırlama ve/veya Sunma
Sorun/Problem Çözme
Proje Tasarımı/Yönetimi
 
Dersin sorumlusu(ları)Bölüm Sorumluları (bbm-bologna@cs.hacettepe.edu.tr) 
Dersin amacıÖğrenciler programlama dillerin sözdizimi ve anlamsallığı hakkındaki temel kavramları öğreneceklerdir. 
Dersin öğrenme çıktıları
  1. Programlama dillerinin sözdizimini ve anlamsallığını tanımlayan ana metotlarının öğrenilmesini odaklanır; özellikle bildirimsel ve gösterimsel anlamsallık aracılığı ile analiz edebilme yetisi kazandırılması amaçlanır.
Dersin içeriği? Programlama dillerinin sözdizimi, anlamsallığı ve uygulaması üzerine kavramsal çalışma,
? Lambda analizi ve işlevsel diller,
? gösterimsel anlamsallık temel kavramları ve dil özellikleri,
? özdevinimler kuramı,
? birinci sıra mantığı ve bildirimsel diller,
? anlamsal tanımların uyumluluğu. 
Kaynaklar? Bertrand Meyer, Introduction to the Theory of Programming Languages, Prentice Hall, 1990.
? Comparative Programmin Languages, Leslie B. Wilson ve Robert G. Clark, Addison-Wesley, 2001.
? Concepts in Programming Languages, John C. Mitchell, Cambridge University Press, 2002.
? Programming Languages: Principle and Practice Second Edition, Kennith C. Louden, PWS Publishing Company, 2004.
? Foundations for Programming Languages, John C. Mitchell, The MIT Press, 1996.
 

Haftalara Göre İşlenecek Konular

HaftalarKonular
1. HaftaDil Tasarım Kavramları
2. HaftaSözdizim
3. HaftaSözdizim
4. HaftaTemal anlamsal yapılar
5. HaftaVeri Türleri
6. Haftaİfadeler
7. HaftaYordamlar ve ortamlar
8. HaftaAra sınav
9. HaftaKavramsal Veri Türleri ve Modüller
10. HaftaNesneye dayalı programlama
11. HaftaFonksiyonal programlama
12. HaftaFormal anlamsal inceleme
13. HaftaFormal anlamsal inceleme
14. HaftaKoşut programlama
15. HaftaGenel Sınava Hazırlık
16. HaftaGenel Sınav

Değerlendirme Sistemi

Yarıyıl içi çalışmalarıSayısıKatkı Payı %
Devam (a)00
Laboratuar00
Uygulama00
Alan Çalışması00
Derse Özgü Staj (Varsa) 00
Ödevler315
Sunum00
Projeler00
Seminer00
Ara Sınavlar135
Genel sınav150
Toplam100
Yarıyıl İçi Çalışmalarının Başarı Notuna Katkısı450
Yarıyıl Sonu Sınavının Başarı Notuna Katkısı150
Toplam100

AKTS (Öğrenci İş Yükü) Tablosu

Etkinlikler Sayısı Süresi Toplam İş Yükü
Ders Süresi 14 3 42
Laboratuvar 0 0 0
Uygulama000
Derse özgü staj (varsa)000
Alan Çalışması000
Sınıf Dışı Ders Çalışma Süresi (Ön Çalışma, pekiştirme, vb)14570
Sunum / Seminer Hazırlama000
Proje000
Ödevler32060
Ara sınavlara hazırlanma süresi12020
Genel sınava hazırlanma süresi12525
Toplam İş Yükü3373217

Dersin Öğrenme Çıktılarının Program Yeterlilikleri İle İlişkilendirilmesi

D.9. Program YeterlilikleriKatkı Düzeyi*
12345
1. Mezunlar, Bilgi Yığını (Bilgisayar Bilimleri kapsamındaki tüm temel alanlar) ile tanımlanan Bilgisayar Bilimleri alanına hakim olmalıdır.    X
2. Mezunlar, soyutlama, karmaşıklık ve evrimsel değişim gibi sıkça adı geçen konular ve ortak kaynak, güvenlik ve paralellik gibi genel ilkeler hakkında bir anlayışa sahip olmalıdır. Mezunlar, bu konular ve ilkelerin bilgisayar bilimleri alanında geniş bir uygulama alanına sahip olduğunun farkında olmalı ve bunların sadece tanıtıldıkları alanlarla ilgili olmadığını da göz önünde bulundurmalıdır.    X
3. Bilgisayar Bilimlerindeki temel bir husus teori ve pratiğin karşılıklı etkileşimine dair anlayış ve onlar arasındaki esas bağlantılardır. Bilgisayar Bilimlerinden mezun olanlar teori ve pratiğin nasıl birbirini etkilediğini anlamak durumundadır.    X
4. Bilgisayar Bilimlerinden mezun olanlar detay ve soyutlamanın farklı düzeylerinde düşünmelidir. Bu anlayış, bilgisayar sistemlerinin yapısını ve onların kurulumunda ve analizinde izlenen süreçlerin değerini anlamak için çeşitli bileşenlerin detaylarının gerçekleştirilmesinde etkin olmalıdır. Mezunlar, bir bilgisayar sisteminin, insanlar ve fiziksel dünyayı da kapsayacak şekilde hangi ortamda işlevsel olabileceğinin farkında olmalıdır.   X 
5. Mezunlar, sadece kod yazma ve bitlerle oynama değil, aynı zamanda edindikleri bilgi birikimini araştırmalarındaki gerçek problemleri çözmede de kullanabilmelidir. Mezunlar herhangi bir teknik veya bilimsel problemleri kendi başlarına çözebilmeli ve her türlü problem için başka çözüm önerileri getirebilmelidir. Verilen bir problemin birden fazla çözümünün olduğunun ve bu çözümler arasından birini seçmenin yalnızca teknik bir eylem olmadığının, çünkü bu çözümlerin insanların hayatlarında gerçek bir   X 
6. Mezunların edindikleri bilgi birikimini başarılı bir şekilde uyguladıklarından emin olmak için, bütün mezunlar en az bir kapsamlı projede yer almalıdır. Çoğu durumda, bu deneyim bir yazılım geliştirme projesi olacaktır, ancak diğer deneyimler de özel durumlarda uygundur. Bunun gibi projeler öğrencileri birleştirici olmaya teşvik etmeli, potansiyel çözümlerin hesaplamalarını gerektirmeli ve tipik ders projelerine göre daha geniş ölçekli çalışmalar yapmalarını gerektirmelidir. Öğrenciler, proje de  X  
7. Bilgisayar Bilimleri mezunları, hesaplama alanının çok hızlı bir şekilde geliştiğinin farkında olmalıdır. Belirli diller ve teknoloji platformları zaman içinde değişebilir. Bu nedenle, mezunlar öğrenmeye devam etmeleri ve becerilerini de bu yönde geliştirmeleri gerektiğinin farkında olmalıdır. Bu beceriyi geliştirmek için, öğrenciler eğitimleri boyunca temel öncelikli ilkelerin yanında çeşitli programlama dillerine, araçlara ve teknolojilere maruz bırakılmalıdır. Mezunlar araştırmalarına devam e  X  
8. Mezunlar, bilgisayar teknolojisinin kurulumu ve kullanımında sosyal, yasal, etik ve kültürel hususların farkında olmalıdır. Bu hususlara kişisel ve profesyonel ilkelerle güdümlenmiş olarak bilinçli bir perspektiften yanıt vermelilerdir. Aynı zamanda sosyal, yasal ve etik standartların uluslar arası olarak değiştiğinin farkında olmalıdırlar.  X  
9. Mezunlar hem İngilizce hem de Türkçe dillerinde teknik terimlere vakıf olmalıdır. Teknik problemler ve çözümleri hakkında çeşitli dinleyici gruplarına kısa ve öz sunum yapma becerileri olmalıdır. Bu, yüz yüze, yazılı veya elektronik iletişimi içerebilir (Türkçe ve İngilizce'de). Takım üyeleri halinde etkili bir şekilde çalışmaya hazırlıklı olmalıdırlar. Mezunlar, tamamlama zamanını, öncelikleri ve ilerlemeyi de göz önünde bulundurarak kendi öğrenme ve gelişimlerini yönetebilmelidir.   X 
10. Platformlar, gömülü mikro-sensörlerden yüksek performanslı öbeklere ve dağıtık bulutlara kadar değişebilir. Bilgisayar uygulamaları modern yaşamın neredeyse bütün yönleri üzerinde etkilidir. Mezunlar hesaplamada var olan bütün imkanlar üzerinde bir anlayışa sahip olmalıdır.    X
11. Mezunlar, hesaplamanın birçok farklı alanla etkileşim içerisinde olduğunu anlamalıdır. Birçok problem için çözümler hem hesaplama becerileri hem de alan bilgisi gerektirir. Bu nedenle, mezunlar kariyerleri boyunca farklı alanlardaki uzmanlarla iletişim kurmalı ve onlardan öğrenmelidir.    X
12. Mezunlar, uzman düzeyinde gerekli olan bilgi birikimlerini geliştirmeli ve bilimsel yöntemleri bilimsel problemleri çözmek için kullanabilmelidir. Mezunlar özgün araştırma tanımlayabilmeli ve yürütebilmelidir.  X  

*1 En düşük, 2 Düşük, 3 Orta, 4 Yüksek, 5 Çok yüksek