| Dersin Kodu | Dersin Adı | Dersin Türü | Yıl | Yarıyıl | AKTS |
|---|---|---|---|---|---|
| SGM247 | NESNE TABANLI PROGRAMLAMA | Seçmeli Ders Grubu | 2 | 3 | 5,00 |
Önlisans
Türkçe
Nesne yönelimli programlama (OOP), veri ve davranışların birlikte yönetilebilecek şekilde kapsüllendiği popüler bir tasarım paradigmasıdır. Bu dersin amacı, bir OOP dili olarak C++’ı ortak ve gelişmiş tasarım modellerini ve uygulamalı veri manipülasyonunu ve daha karmaşık OOP sistemlerinin test edilmesini derinlemesine ele almak ve dersi alan öğrencilere öğretmektir. Bu dersi alan öğrenciler, C++ sözdizimini kullanarak nesne yönelimli ilkeleri nasıl düşünecekleri ve uygulayacakları konusunda kapsamlı bir anlayışa sahip olacak ve kendisinden emin bir şekilde sağlam ve güvenilir programlar oluşturabileceklerdir.
Öğr. Gör. Onat Tanrıöver
| 1 | C++ ekosisteminde göstericiler (pointers), referanslar ve dinamik bellek yönetimi ilkelerini bellek sızıntısına yol açmayacak şekilde uygulayabilme. |
| 2 | Veri gizleme ve kapsülleme (encapsulation) prensiplerini uygulayarak; kurucu (constructor), sonlandırıcı (destructor), üye fonksiyonlar ve aşırı yüklenmiş operatörler (operator overloading) içeren sağlam sınıf yapıları inşa edebilme. |
| 3 | Temel ve türetilmiş sınıflar arasındaki kalıtım (inheritance) ilişkilerini kurgulayabilme; sanal fonksiyonlar (virtual functions), soyut sınıflar ve dinamik bağlama mekanizmalarını kullanarak çokbiçimli (polymorphic) kod bloklarını analiz edebilme ve uygulayabilme. |
| 4 | Şablonlar (templates) aracılığıyla türden bağımsız yapılar geliştirebilme; belirli bir problemin veri saklama ve işleme gereksinimlerine en uygun Standart Şablon Kütüphanesi (STL) konteynerlerini, iteratörlerini ve algoritmalarını seçebilme. . |
| 5 | Çalışma zamanı istisnalarını (exception handling) ve RAII (Resource Acquisition Is Initialization) prensibini etkin biçimde kullanarak programın çalışma zamanı güvenilirliğini ve bellek bütünlüğünü değerlendirebilme. |
| 6 | Nesne yönelimli tasarım kalıplarını (design patterns) ve Modern C++ yeteneklerini (akıllı işaretçiler, lambda ifadeleri vb.) harmanlayarak modüler, yeniden kullanılabilir ve sürdürülebilir bir nesne tabanlı yazılım çözümü tasarlayabilme ve geliştirebilme. |
Birinci Öğretim
Yok
Yok
C++ ekosistemine giriş, Kontrol yapııarı, Döngü yapıları, Fonksiyonlara giriş , Bellek temelleri: Diziler ve göstericiler (pointer), Dinamik bellek ve referanslar, Sınıflar ve nesnelerin temelleri, Kurucu ve sonlandırıcı işlevler, Operatörlerin yüklenmesi (overloading), Arkadaş fonksiyonlar, Kalıtım, Çokbiçimlilik ve sanal fonksiyonlar, Şablonlar ve generic programlama, Standart şablon kütüphanesi (STL), Hataların işlenmesi ve kaynak yönetimi, İleri nesne yönelimli tasarım kalıpları, Modern C++: Dile yapılan eklentiler
| Hafta | Konular (Teorik) | Uygulama | Öğretim Yöntem ve Teknikleri | Ön Hazırlık |
|---|---|---|---|---|
| 1 | Ders işleme şekli ile ilgili bilgilendirme, C++ ekosistemine giriş | Haftanın konusuyla ilgili sınıf çalışması | Anlatım, Gösterme, Tartışma, Uygulama | https://gist.github.com/MangaD/65f7ac850d557668196d44eb543415c2 |
| 2 | Kontrol yapıları, Döngü yapıları, Fonksiyonlara giriş | Haftanın konularıyla ilgili programlama sorularının çözülmesi | Anlatım, Gösterme, Tartışma, Problem çözme | Deitel, Deitel (2017) Böl. 2 s. 44-72 | Deitel, Deitel (2017) Böl. 4-6 s. 103-282 |
| 3 | Bellek temelleri: Diziler ve göstericiler (pointer) | Haftanın konularıyla ilgili programlama sorularının çözülmesi | Anlatım, Gösterme, Tartışma, Problem çözme | Deitel, Deitel (2017) Böl. 8 s. 339-384 |
| 4 | Dinamik bellek ve referanslar | Haftanın konularıyla ilgili programlama sorularının çözülmesi | Anlatım, Gösterme, Tartışma, Problem çözme | https://www3.ntu.edu.sg/home/ehchua/programming/cpp/cp4_PointerReference.html |
| 5 | Sınıflar ve nesnelerin temelleri | Haftanın konularıyla ilgili programlama sorularının çözülmesi | Anlatım, Gösterme, Tartışma, Problem çözme | Deitel, Deitel (2017) Böl. 3 s. 73-102 |
| 6 | Kurucu ve sonlandırıcı işlevler | Haftanın konularıyla ilgili programlama sorularının çözülmesi | Anlatım, Gösterme, Tartışma, Problem çözme, Quiz | Deitel, Deitel (2017) Böl. 9 s. 385-446 |
| 7 | Operatörlerin yüklenmesi (overloading), Arkadaş fonksiyonlar | Haftanın konularıyla ilgili programlama sorularının çözülmesi | Anlatım, Gösterme, Tartışma, Problem çözme | Deitel, Deitel (2017) Böl. 10 s. 447-496 |
| 8 | Arasınav | İlk 7 haftanın konuları | ||
| 9 | Kalıtım | Haftanın konularıyla ilgili programlama sorularının çözülmesi | Anlatım, Gösterme, Tartışma, Problem çözme | Deitel, Deitel (2017) Böl. 11 s. 497-530 |
| 10 | Çokbiçimlilik ve sanal fonksiyonlar | Haftanın konularıyla ilgili programlama sorularının çözülmesi | Anlatım, Gösterme, Tartışma, Problem çözme | Deitel, Deitel (2017) Böl. 12 s. 531-576 |
| 11 | Şablonlar ve generic programlama | Haftanın konularıyla ilgili programlama sorularının çözülmesi | Anlatım, Gösterme, Tartışma, Problem çözme | Deitel, Deitel (2017) Böl. 18-19 s. 783-840 |
| 12 | Standart şablon kütüphanesi (STL) | Haftanın konularıyla ilgili programlama sorularının çözülmesi | Anlatım, Gösterme, Tartışma, Problem çözme, Quiz | Deitel, Deitel (2017) Böl. 15-16 s. 655-756 |
| 13 | Hataların işlenmesi ve kaynak yönetimi | Haftanın konularıyla ilgili programlama sorularının çözülmesi | Anlatım, Gösterme, Tartışma, Problem çözme | Deitel, Deitel (2017) Böl. 17 s. 757-782 |
| 14 | İleri nesne yönelimli tasarım kalıpları | Haftanın konularıyla ilgili programlama sorularının çözülmesi | Anlatım, Gösterme, Tartışma, Problem çözme | https://refactoring.guru/design-patterns/creational-patterns |
| 15 | Modern C++: Dile yapılan eklentiler | Haftanın konularıyla ilgili programlama sorularının çözülmesi | Anlatım, Gösterme, Tartışma, Problem çözme | Deitel, Deitel (2017) Böl. 24 (Online bölüm) |
| 16 | Final sınavı | Bütün dönemin konuları |
Paul Deitel, Harvey Deitel, C++ How to Program, 10th Edition, Pearson (2017)
Anlatım, Gösterme, Tartışma, Problem çözümü, Uygulama, Quiz
| Yarıyıl (Yıl) İçi Etkinlikleri | Adet | Değer |
|---|---|---|
| Ara Sınav | 1 | 60 |
| Quiz | 2 | 40 |
| Toplam | 100 | |
| Yarıyıl (Yıl) Sonu Etkinlikleri | Adet | Değer |
| Final Sınavı | 1 | 100 |
| Toplam | 100 | |
| Yarıyıl (Yıl) İçi Etkinlikleri | 40 | |
| Yarıyıl (Yıl) Sonu Etkinlikleri | 60 | |
Yok
| Etkinlikler | Sayısı | Süresi (saat) | Toplam İş Yükü (saat) |
|---|---|---|---|
| Ara Sınav | 1 | 2 | 2 |
| Final Sınavı | 1 | 2 | 2 |
| Quiz | 2 | 1 | 2 |
| Derse Katılım | 14 | 3 | 42 |
| Uygulama/Pratik | 14 | 2 | 28 |
| Bireysel Çalışma | 14 | 3 | 42 |
| Ara Sınav İçin Bireysel Çalışma | 1 | 8 | 8 |
| Final Sınavı içiin Bireysel Çalışma | 1 | 15 | 15 |
| Toplam İş Yükü (saat) | 141 | ||
| PÇ 1 | PÇ 2 | PÇ 3 | PÇ 4 | PÇ 5 | PÇ 6 | PÇ 7 | PÇ 8 | PÇ 9 | PÇ 10 | PÇ 11 | PÇ 12 | PÇ 13 | PÇ 14 | PÇ 15 | |
| ÖÇ 1 | 5 | 4 | 3 | 2 | |||||||||||
| ÖÇ 2 | 4 | 2 | 3 | ||||||||||||
| ÖÇ 3 | 4 | 2 | 3 | ||||||||||||
| ÖÇ 4 | 5 | 3 | 2 | ||||||||||||
| ÖÇ 5 | 3 | 4 | 5 | 2 | |||||||||||
| ÖÇ 6 | 4 | 3 | 4 | 2 |