Mühendislik ve Doğa Bilimleri Fakültesi · Bilgisayar Mühendisliği · Lisans
Dersin Amacı
Bu dersin amacı, öğrencilere nesne tabanlı programlama ve tasarım ilkelerini öğretmek; UML ve yazılım tasarım desenlerini kullanarak sürdürülebilir, esnek ve yeniden kullanılabilir yazılım çözümleri geliştirme becerisi kazandırmaktır.
Ders İçeriği
Nesne tabanlı tasarıma giriş ve SOLID tasarım ilkeleri
Nesne tabanlı programlama kavramları: sınıf, nesne ve erişim belirteçleri
Arayüzler (Interface) ve soyut sınıflar (Abstract Class)
UML modelleme ve sınıf şemalarının oluşturulması
UML sınıf şemalarına uygun kod geliştirme
Yaratıcı (Creational) tasarım desenleri ve uygulamaları
Yapısal (Structural) tasarım desenleri ve uygulamaları
Davranışsal (Behavioral) tasarım desenleri ve uygulamaları
Zorunlu Kaynaklar
-Ders Notları
-Software Architecture in Practice – Len Bass, Paul Clements, Rick Kazman (Carnegie Mellon / SEI)
Önerilen Kaynaklar
Fundamentals of Software Architecture – Mark Richards, Neal Ford
Açıklamalar
Ders kapsamında bir ara sınav bir final sınavı olmak üzere iki dönem içi sınav ve kapsamlı bir dönem sonu proje uygulaması olacaktır.
Laboratuvar uygulamaları derslerde değerlendirilecektir. Aksi belirtilmediği müddetçe ders sonrası uygulama toplanmayacaktır.
E-posta ile gönderilen uygulamalar değerlendirmeye alınmayacaktır.
Sınav tarihleri tabloda ilan edildiği gibidir. Sınavların konuları makul bir süre öncesinde ilan edilecektir. İZÜ yönetmeliklerine göre kabul edilen mazeretler çerçevesinde girilmeyen sınavlar için telafi sınavı verilecektir.
Ara sınav ve final sınav günü, saati ve yeri Dekanlık tarafından ilan edilecektir.
Sınavlar sırasında yapay zekadan destek almak, whatsapp, vs. kullanmak kesinlikle yasaktır. Tespit edildiği takdirde sınav geçersiz sayılacak ve “sıfır” - “0” puan verilecektir.
Kurallar
Devam: Yönetmeliğe göre bir öğrenci toplam ders saatinin % 30’na devam etmemesi halinde dersten devamsızlık alır (DZ) ve başarısız olur.
Geç Gelme: Sınıfa sadece gelmeniz değil vakitlice saatinde ders katılmanız beklenmektedir. Derse geç katılım gösterilmesi durumunda, dersin o saati devamsız kabul edilecektir.
Yardım Almak: Ders esnasında ya da görüşme saatlerinde dersle ilgili sorularınızı sorup konuyu vaktinde öğrenmeniz eğitiminiz için önemlidir.
Akademik dürüstlük: Dersin notuna konu olacak çalışmalarda tamamen kendi gayret ve eseriniz olması beklenmektedir. İntihal, kopyalama gibi gayri ahlaki durumlarda İZÜ’nün ilgili yönetmeliği gereği disiplin soruşturması açılıp gerekli cezai müeyyideler uygulanacaktır.
Bu izlencede belirtilen değerlendirmeler sabit olup, not yükseltme amaçlı herhangi bir ekstra telafi ölçme yapılmayacaktır.
Dersin Öğrenme Çıktıları
- Nesne tabanlı programlamanın temel kavramlarını ve SOLID tasarım ilkelerini açıklar.
- Sınıf, nesne, arayüz ve soyut sınıf yapılarını uygun senaryolarda kullanır.
- UML sınıf şemalarını yorumlar ve oluşturur.
- UML sınıf şemalarına uygun nesne tabanlı kod geliştirir.
- Yaratıcı (Creational) tasarım desenlerinin amaçlarını ve kullanım alanlarını ayırt eder.
- Yapısal (Structural) tasarım desenlerini problem gereksinimlerine uygun şekilde uygular.
- Davranışsal (Behavioral) tasarım desenlerini yazılım problemlerinde kullanır.
- Yazılım tasarımında uygun tasarım desenini seçerek esnek ve sürdürülebilir çözümler geliştirir.
- Nesne tabanlı tasarım prensiplerini kullanarak bakım ve genişletilebilirliği yüksek yazılımlar tasarlar.
Temel Alan Dağılımı
Öğretim Yöntem ve Teknikleri
Ölçme ve Değerlendirme
AKTS / İş Yükü
| Etkinlik | Sayı | Süre (saat) | Toplam İş Yükü |
|---|---|---|---|
| Ders Süresi (Sınav Haftası Dahil) | 16 | 3 | 48 |
| Sınıf Dışı Ders Çalışma Süresi | 14 | 1 | 14 |
| Ara Sınav | 1 | 2 | 2 |
| Kısa Sınav | 0 | 0 | 0 |
| Ödev | 0 | 0 | 0 |
| Uygulama | 14 | 2 | 28 |
| Final | 1 | 2 | 2 |
Ders Akışı
| Hafta | Konu | Ön Hazırlık |
|---|---|---|
| 1 | Nesne Tabanlı Tasarım İlkeleri-SOLID | Ders Notları |
| 2 | Nesne Tabanlı Programlama (Sınıf, Nesne, Erişim Belirteçleri) | Ders Notları |
| 3 | Nesne Tabanlı Programlama (Interface-Arayüz, Abstract Class-Soyut Sınıf) | Ders Notları |
| 4 | UML Tasarımı (Sınıf Şemaları) | Ders Notları |
| 5 | UML Uygulamaları (Sınıf Şemalarına göre kod yazılması) | Ders Notları |
| 6 | Yaratıcı Desenler (Yegane Tasarım Deseni (Singleton Pattern), Fabrika Tasarım Deseni (Factory Pattern) | Ders Notları |
| 7 | Yaratıcı Desenler (Fabrika Yöntemi, Soyut Fabrika Tasarım Desen) | Ders Notları |
| 8 | Vize Haftası | Ders Notları |
| 9 | Yaratıcı Desenler (Bina Tasarım Deseni, Prototip Tasarım Deseni, Nesne Havuzu Tasarım Deseni | Ders Notları |
| 10 | Yapısal Desenler (Cephe Tasarım Deseni, Adaptör Tasarım Deseni) | Ders Notları |
| 11 | Yapısal Desenler (Köprü Tasarım Deseni) | Ders Notları |
| 12 | Yapısal Desenler (Dekoratör Tasarım Deseni, Bileşik Tasarım Deseni) | Ders Notları |
| 13 | Yapısal Desenler (Sinek siklet Tasarım Deseni, Strateji Tasarım Deseni, Şablon Metod Tasarım Deseni) | Ders Notları |
| 14 | Davranışsal Desenler (Arabulucu Tasarım Deseni Gözlemci Tasarım Deseni) | Ders Notları |
| 15 | Davranışsal Desenler (Sorumluluk Zinciri Tasarım Deseni Ziyaretçi Tasarım Deseni) | Ders Notları |
| 16 | Final Haftası | Ders Notları |


