GERİ DÖN

Ders Öğretim Planı


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
* Katkı Düzeyi : 1 Çok düşük 2 Düşük 3 Orta 4 Yüksek 5 Çok yüksek