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