GERİ DÖN

Ders Öğretim Planı


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