Mühendislik ve Doğa Bilimleri Fakültesi · Yazılım Mühendisliği (%30 İngilizce) · Lisans
Dersin Amacı
Bu dersin amacı, öğrencilere C++ programlama dili kullanılarak nesne yönelimli programlama (OOP) kavramları hakkında sağlam bir temel kazandırmaktır. Ders kapsamında öğrenciler; kapsülleme (encapsulation), kalıtım (inheritance), çok biçimlilik (polymorphism) ve soyutlama (abstraction) gibi temel OOP ilkelerini kullanarak yazılım tasarlamayı, geliştirmeyi, test etmeyi ve bakımını yapmayı öğreneceklerdir. Ayrıca ders, problem çözme becerilerinin, algoritmik düşünme yeteneğinin ve nesne yönelimli tasarım yaklaşımlarının geliştirilmesini hedeflemektedir. Dersin sonunda öğrenciler, orta ölçekli C++ uygulamaları geliştirebilecek ve nesne yönelimli programlama ilkelerini gerçek dünya yazılım problemlerine etkili bir şekilde uygulayabilecek bilgi ve beceriye sahip olacaklardır.
Ders İçeriği
Nesne yönelimli programlama ve C++ programlama diline giriş; sınıflar ve nesneler; veri kapsülleme ve soyutlama; yapıcı ve yıkıcı fonksiyonlar; kalıtım ve çok biçimlilik; fonksiyon ve operatör aşırı yükleme; sanal fonksiyonlar ve soyut sınıflar; şablonlar (templates); istisna (exception) yönetimi; dosya giriş/çıkış işlemleri; Standart Şablon Kütüphanesi (STL); dinamik bellek yönetimi; işaretçiler ve referanslar; nesne yönelimli analiz ve tasarım; laboratuvar uygulamaları ve programlama projeleri ile C++ uygulamalarının geliştirilmesi.
Dersin Öğrenme Çıktıları
- Sınıflar, nesneler ve uygun erişim denetimi kullanarak C++ programları geliştirir.
- C++ dilinde yapıcı (constructor) ve yıkıcı (destructor) fonksiyonları, işaretçileri (pointer) ve dinamik bellek yönetimini etkili bir şekilde uygular.
- Genişletilebilir ve yeniden kullanılabilir yazılım bileşenleri oluşturmak için kalıtım (inheritance) ve çok biçimliliği (polymorphism) kullanır.
- Programların esnekliğini ve sağlamlığını artırmak amacıyla operatör aşırı yükleme (operator overloading), şablonlar (templates) ve istisna yönetimini (exception handling) uygular.
- Yaygın veri yapıları ve algoritmalar için C++ Standart Şablon Kütüphanesini (STL) kullanır.
- Uygun araç ve teknikleri kullanarak C++ programlarını analiz eder ve hata ayıklar.
- Gerçek dünya problemlerini çözmek ve bakımı kolay yazılım çözümleri geliştirmek için nesne yönelimli tasarım ilkelerini uygular.


