| Dersin Kodu | Dersin Adı | Dersin Türü | Yıl | Yarıyıl | AKTS |
|---|---|---|---|---|---|
| MYBPR2003 | Nesne Tabanlı Programlama I | Ders | 2 | 3 | 5,00 |
Önlisans
Türkçe
Bu dersin amacı, Python programlama dili kullanılarak nesne tabanlı programlama yaklaşımının temel kavramlarının öğrencilere kazandırılması ve bu yaklaşım doğrultusunda modüler, okunabilir ve sürdürülebilir yazılımlar geliştirebilme becerisinin oluşturulmasıdır. Ders kapsamında öğrencilerin sınıf ve nesne temelli düşünme yetkinliklerinin geliştirilmesi hedeflenmektedir.
Öğr. Gör. Erhan AKAGÜNDÜZ
| 1 | Prosedürel programlama ile Nesne Yönelimli Programlama (NYP) arasındaki farkları analiz edebilecek ve Python syntax kullanarak class yapıları oluşturabilecektir. |
| 2 | Sınıf, Nesne, Metot ve Yapıcı Blok (__init__) kavramlarını kullanarak gerçek hayat problemlerini modelleyebilecek ve nesne örnekleri (instance) türetebilecektir. |
| 3 | Encapsulation prensibini uygulayarak veri gizliliğini sağlayabilecektir. Self parametresi ve erişim belirleyiciler ile sınıf üyelerini yönetebilecektir. |
| 4 | Inheritance ve Polymorphism mekanizmalarını kullanarak kod tekrarını önleyen, sürdürülebilir ve hiyerarşik yazılım mimarileri tasarlayabilecektir. |
| 5 | Exception Handling mekanizmalarını nesne tabanlı yaklaşımla yönetebilecektir. Kendi modüllerini ve paketlerini oluşturarak projeye entegre edebilecektir. |
Birinci Öğretim
Yok
Yok
Nesne tabanlı programlama yaklaşımına giriş, Python’da sınıf ve nesne kavramları, sınıf yapıları, yapıcı (constructor) metotlar, nesne metodları ve özellikleri, kapsülleme (encapsulation), veri gizleme ve soyutlama (abstraction), kalıtım (inheritance), çok biçimlilik (polymorphism), temel hata yönetimi yaklaşımları ve nesne tabanlı programlama prensiplerine uygun uygulama geliştirme.
| Hafta | Teorik | Uygulama | Laboratuvar |
|---|---|---|---|
| 1 | Python'da temel veri yapıları (liste, sözlük, demet) ve değişken kapsamı | ||
| 2 | Programlama paradigmaları: prosedürelden nesne yönelimliye geçiş | ||
| 3 | Sınıf ve nesne: __init__ yapıcı metodu ve self parametresi | ||
| 4 | Sınıf değişkenleri, örnek değişkenleri ve metot tanımlama | ||
| 5 | Kapsülleme: erişim belirleyiciler, getter/setter kullanımı | ||
| 6 | Özel (magic) metotlar ve operatör aşırı yükleme | ||
| 7 | Uygulamalı tekrar ve örnek soru çözümleri | ||
| 8 | Genel tekrar ve Ara Sınav | ||
| 9 | Kalıtım: üst/alt sınıf ilişkisi ve super() | ||
| 10 | Metot ezme ve çoklu kalıtım | ||
| 11 | Çok biçimlilik ve Duck Typing | ||
| 12 | Soyutlama: soyut sınıflar ve arayüz tasarımı | ||
| 13 | Nesne tabanlı hata yönetimi ve özel istisna sınıfları | ||
| 14 | Modüler programlama, paket yönetimi ve dönem projesi tasarımı | ||
| 15 | Final Sınavı |
Öğretim Üyesi Ders Notları / Lecturer Notes Phillips, D. (2018). Python 3 Object-Oriented Programming. Packt Publishing. Lutz, M. (2013). Learning Python. O'Reilly Media. Başer, M. (2020). Python: Sıfırdan İleri Seviyeye. Dikeyeksen Yayıncılık. Özgül, F. (2024). Python 3 (https://www.google.com/search?q=istihza.com - Açık Kaynak Belgelendirme). Resmi Python Dokümantasyonu (docs.python.org). https://docs.python.org/3/tutorial/classes.html
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 |
| Ara Sınav İçin Bireysel Çalışma | 20 | 1 | 20 |
| Final Sınavı içiin Bireysel Çalışma | 20 | 1 | 20 |
| Ev Ödevi | 14 | 2 | 28 |
| Toplam İş Yükü (saat) | 128 | ||
| 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 | 3 | 3 | 3 | 2 | 2 | 2 | 2 | 2 | 3 | 4 | 3 | 2 |
| ÖÇ 2 | 2 | 3 | 3 | 2 | 2 | 2 | 3 | 4 | 2 | 3 | 3 | 4 | 4 |
| ÖÇ 3 | 2 | 4 | 3 | 3 | 3 | 2 | 2 | 2 | 2 | 4 | 3 | 4 | 2 |
| ÖÇ 4 | 2 | 3 | 4 | 2 | 2 | 2 | 3 | 4 | 3 | 2 | 2 | 3 | 4 |
| ÖÇ 5 | 3 | 3 | 2 | 3 | 3 | 2 | 2 | 3 | 2 | 5 | 4 | 3 | 3 |