GERİ DÖN

Ders Öğretim Planı


Dersin Kodu Dersin Adı Dersin Türü Yıl Yarıyıl AKTS
MYBPR2004 Nesne Tabanlı Programlama II Ders 2 4 4,00

Önlisans


Türkçe


Bu dersin amacı, Nesne Tabanlı Programlama I dersinde edinilen temel bilgilerin üzerine inşa edilerek Python dili kullanımıyla ileri düzey nesne yönelimli tasarım ve uygulama geliştirme becerilerinin kazandırılmasıdır. Ders kapsamında öğrencilerin çok sınıflı sistemler tasarlayabilmesi, nesne yönelimli tasarım ilkelerini (SOLID prensiplerine giriş düzeyinde) uygulayabilmesi ve daha karmaşık yazılım problemlerini modüler ve sürdürülebilir biçimde çözebilmesi hedeflenmektedir.


Öğr. Gör. Erhan AKAGÜNDÜZ


1 Python’da ileri düzey soyutlama, kalıtım, çok biçimlilik kavramlarını açıklayabilecek ve örnekler üzerinde uygulayabilecektir.
2 Multi-class yazılım sistemleri tasarlayabilecek ve modüler, yeniden kullanılabilir kod yapıları geliştirebilecektir.
3 Python’da özel metotları kullanarak nesne davranışlarını özelleştirebilecektir.
4 Dosya işlemleri, veri saklama mekanizmaları ve hata yönetimi tekniklerini nesne yönelimli yaklaşımla entegre edebilecektir.
5 Temel tasarım prensiplerine uygun, sürdürülebilir ve test edilebilir yazılım bileşenleri geliştirebilecektir.
6 Python modül ve paket yapılarını kullanarak büyük ölçekli uygulamaları organize edebilecek ve yapılandırabilecektir.

Birinci Öğretim


Nesne Tabanlı Programlama I


Yok


İleri nesne yönelimli programlama kavramları, çok sınıflı uygulama tasarımı, kompozisyon ve ilişkilendirme (association), soyut sınıflar ve arayüz benzeri yapılar, özel metotlar ve operatör aşırı yükleme, dosya ve veri yönetimi, modül ve paket yapıları, temel tasarım prensipleri, hata yönetimi, test edilebilir kod geliştirme, üçüncü parti Python kütüphanelerinin nesne yönelimli kullanım örnekleri.


Hafta Teorik Uygulama Laboratuvar
1 İleri düzey sınıf yapıları: statik metotlar, property decorators
2 Tasarım Desenleri: Singleton ve Factory
3 Yapısal desenler: Adapter, Decorator ve functools
4 Davranışsal desenler: Observer ve Strategy
5 SOLID prensipleri
6 Soyut temel sınıflar (ABC) ve sözleşme tabanlı programlama
7 Tasarım desenlerinin uygulamalı tekrarı
8 Genel tekrar + Ara Sınav
9 sqlite3 ile veritabanı bağlantısı, Cursor yönetimi ve CRUD işlemleri
10 ORM kavramı: SQLAlchemy ile nesne tabanlı veritabanı yönetimi
11 GUI temelleri: PyQt/Tkinter ile pencere, layout ve widget yapıları
12 Olay güdümlü programlama ve Signal-Slot mekanizmaları
13 Bütünleşik mimari: GUI, OOP ve veritabanı katmanlarının MVC ile birleştirilmesi
14 Yazılım testi (unit test) ve uygulamanın paketlenmesi
15 Final Sınavı

Phillips, D. (2020). Python 3 Object-Oriented Programming (3rd Edition). Packt Publishing., Ramalho, L. (2022). Fluent Python (2nd Edition). O’Reilly Media., Downey, A. B. (2021). Think Python: How to Think Like a Computer Scientist (2nd Edition). O’Reilly Media., Beazley, D., & Jones, B. K. (2023). Python Cookbook (3rd Edition – Updated Digital Edition). O’Reilly Media.


Yok


Yarıyıl (Yıl) İçi Etkinlikleri Adet Değer
Ara Sınav 1 100
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
Derse Katılım 14 3 42
Uygulama/Pratik 14 1 14
Proje Hazırlama 4 1 4
Ara Sınav İçin Bireysel Çalışma 14 1 14
Final Sınavı içiin Bireysel Çalışma 14 1 14
Ev Ödevi 14 1 14
Toplam İş Yükü (saat) 106

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