| 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 |