GERİ DÖN

Ders Öğretim Planı


Dersin Kodu Dersin Adı Dersin Türü Yıl Yarıyıl AKTS
1910201122024 PROGRAMLAMA II Ders 1 2 5,00

Önlisans


Türkçe


Öğrencilere temel programlama becerilerini Nesneye Yönelimli Programlama (NYP) paradigmasıyla geliştirmeyi öğretmek; sınıf, nesne, kalıtım ve çok biçimlilik gibi kavramları oyun geliştirme odaklı örneklerle aktarmak ve SOLID prensipleri doğrultusunda sürdürülebilir kod yazma yetkinliği kazandırmaktır.


Öğr. Gör. Hasan Hüseyin CİHANGİR


1 Nesneye yönelimli programlamanın temel kavramlarını analiz eder ve oyun bileşenlerini sınıf yapılarına dönüştürür.
2 Kalıtım ve çok biçimlilik prensiplerini kullanarak esnek ve geliştirilebilir oyun mekanikleri tasarlar.
3 Kapsülleme yöntemlerini uygulayarak veri güvenliğini ve kodun modülerliğini sağlar.
4 Sınıflar arası hiyerarşik ilişkileri ve kompozisyon yapılarını oyun mimarisi içinde kurgular.
5 Yazılımın kalitesini artırmak için SOLID tasarım prensiplerini kod yapısına entegre eder.

Birinci Öğretim



[Yok]


Nesneye Yönelimli Programlamaya (NYP) giriş; Sınıflar ve Nesne yapısı; Örnek (Instance) ve Sınıf nitelikleri; Kapsülleme (Encapsulation); Kalıtım (Inheritance); Çok Biçimlilik (Polymorphism); Soyut Sınıflar; Metot Ezme (Overriding); Kompozisyon ve Agregasyon; Hata Yönetimi; SOLID tasarım prensipleri.


Hafta Konular (Teorik) Uygulama Öğretim Yöntem ve Teknikleri Ön Hazırlık
1 NYP Giriş: Sınıf ve Nesne İlk Sınıf Yapısının Oluşturulması Anlatım, Gösterip Yaptırma
2 Nitelikler (Attributes) ve Metotlar Oyun Karakteri Sınıfı Tasarımı Anlatım, Gösterip Yaptırma
3 init Metodu ve self Parametresi Nesne Başlatma ve Parametre Yönetimi Anlatım, Gösterip Yaptırma
4 Kapsülleme (Encapsulation Özel (Private) Niteliklerin Yönetimi Anlatım, Gösterip Yaptırma
5 Getters ve Setters (Properties) Veri Doğrulama ve Koruma Uygulamaları Anlatım, Gösterip Yaptırma
6 Kalıtım (Inheritance) Temelleri Karakter Sınıfları Arası Hiyerarşi Anlatım, Gösterip Yaptırma
7 Çoklu Kalıtım ve super() Kullanımı Karmaşık Nesne Hiyerarşiler Anlatım, Gösterip Yaptırma
8 Çok Biçimlilik (Polymorphism) Ortak Arayüz ile Farklı Davranışlar Anlatım, Gösterip Yaptırma
9 Soyut Sınıflar (Abstract Classes) Şablon Sınıflar ve Zorunlu Metotlar Anlatım, Problem Çözme
10 Magic (Dunder) Metotlar Nesne Karşılaştırma ve İşleç Aşırı Yükleme Anlatım, Uygulama
11 Kompozisyon vs Kalıtım Envanter Sistemi Tasarımı Anlatım, Proje Tabanlı Çalışma
12 Hata Yönetimi (Exception Handling) Özel Hata Sınıfları Oluşturma Anlatım, Uygulama
13 SOLID Prensipleri - 1 (S, O, L) Mevcut Kodun SOLID ile Refaktörü Anlatım, Kod İnceleme, Proje Tabanlı Çalışma
14 SOLID Prensipleri - 2 (I, D) Mevcut Kodun SOLID ile Refaktörü Anlatım, Kod İnceleme, Proje Tabanlı Çalışma

1. Python Object-Oriented Programming Tutorial (pythontutorial.net), 2. Clean Code (Robert C. Martin)


Anlatım ve Sunum, Gösterip Yaptırma, Problem Dayalı Öğrenme, Bireysel Çalışma, Ara Sınav, Yarıyıl Sonu (Final) Sınavı


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


Etkinlikler Sayısı Süresi (saat) Toplam İş Yükü (saat)
Ara Sınav 1 1 1
Final Sınavı 1 1 1
Derse Katılım 14 3 42
Uygulama/Pratik 14 2 28
Bireysel Çalışma 2 14 28
Ödev Problemleri için Bireysel Çalışma 3 4 12
Ara Sınav İçin Bireysel Çalışma 1 10 10
Final Sınavı içiin Bireysel Çalışma 1 16 16
Ev Ödevi 3 4 12
Toplam İş Yükü (saat) 150

PÇ 1 PÇ 2 PÇ 3 PÇ 4 PÇ 5
ÖÇ 1 5 4 5 2 4
ÖÇ 2 5 5 5 3 5
ÖÇ 3 5 3 5 2 3
ÖÇ 4 5 4 5 2 5
ÖÇ 5 5 4 5 2 5
* Katkı Düzeyi : 1 Çok düşük 2 Düşük 3 Orta 4 Yüksek 5 Çok yüksek