Ders Adı Kodu Yarıyıl T+U Saat Kredi AKTS
Tasarım Desenleri SWE 303 5 3 + 0 3 5
Ön Koşul Dersleri
Önerilen Seçmeli Dersler
Dersin Dili İngilizce
Dersin Seviyesi Lisans
Dersin Türü Zorunlu
Dersin Koordinatörü Doç.Dr. VEYSEL HARUN ŞAHİN
Dersi Verenler Doç.Dr. VEYSEL HARUN ŞAHİN,
Dersin Yardımcıları
Dersin Kategorisi Diğer
Dersin Amacı

Yaygın yazılım tasarım problemlerininin çözümlerini anlamak.

Dersin İçeriği

Giriş, Tasarım Desenlerine Giriş, Observer Tasarım Deseni, Decorator Tasarım Deseni, Factory Tasarım Deseni, Singleton Tasarım Deseni, Command Tasarım Deseni, Adapter ve Facade Tasarım Desenleri, Template Method Tasarım Deseni, Iterator ve Composite Tasarım Deseni, State Tasarım Deseni, Proxy Tasarım Deseni, Bileşik Tasarım Desenleri, Gerçek Hayatta Tasarım Desenleri

Kalkınma Amaçları
# Ders Öğrenme Çıktıları Öğretim Yöntemleri Ölçme Yöntemleri
1 Yazılım tasarım problemlerini öğrenir Anlatım, Beyin Fırtınası,
2 Tasarım desenlerini öğrenir Beyin Fırtınası, Anlatım,
3 Tasarım desenlerini uygulamayı öğrenir Gözlem, Tartışma, Beyin Fırtınası, Anlatım,
Hafta Ders Konuları Ön Hazırlık
1 Tasarım Desenlerine Giriş
2 Tasarım Desenlerine Giriş
3 Yaratımsal Tasarım Desenleri
4 Yaratımsal Tasarım Desenleri
5 Yaratımsal Tasarım Desenleri
6 Yapısal Tasarım Desenleri
7 Yapısal Tasarım Desenleri
8 Yapısal Tasarım Desenleri
9 Davranışsal Tasarım Desenleri
10 Davranışsal Tasarım Desenleri
11 Davranışsal Tasarım Desenleri
12 Reaktif ve Eş Zamanlı Desenler
13 Reaktif ve Eş Zamanlı Desenler
14 Deyimler ve Anti Desenler
Kaynaklar
Ders Notu

Kotlin Design Patterns and Best Practices: Build scalable applications using traditional, reactive, and concurrent design patterns in Kotlin, 2nd Edition, Alexey Soshin, Packt Publishing

Ders Kaynakları

Kotlin Design Patterns and Best Practices: Build scalable applications using traditional, reactive, and concurrent design patterns in Kotlin, 2nd Edition, Alexey Soshin, Packt Publishing

Dive into Design Patterns, Alexander Shvets (https://refactoring.guru)

Head First Design Patterns: Building Extensible and Maintainable Object-oriented Software, 2nd Ed., 2021, O'Reilly,  Eric Freeman, Elisabeth Robson

Design Patterns: Elements of Reusable Object-Oriented Software, 1st Ed., 1995, Addison Wesley, Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides

Sıra Program Çıktıları Katkı Düzeyi
1 2 3 4 5
1 Mühendislik Bilgisi: Matematik, fen bilimleri, temel mühendislik, bilgisayarla hesaplama ve ilgili mühendislik disiplinine özgü konularda bilgi; bu bilgileri, karmaşık mühendislik problemlerinin çözümünde kullanabilme becerisi.
2 Problem Analizi: Karmaşık mühendislik problemlerini, temel bilim, matematik ve mühendislik bilgilerini kullanarak ve ele alınan problemle ilgili BM Sürdürülebilir Kalkınma Amaçlarını gözeterek tanımlama, formüle etme ve analiz becerisi.
3 Mühendislik Tasarımı: Karmaşık mühendislik problemlerine yaratıcı çözümler tasarlama becerisi; karmaşık sistemleri, süreçleri, cihazları veya ürünleri gerçekçi kısıtları ve koşulları gözeterek, mevcut ve gelecekteki gereksinimleri karşılayacak biçimde tasarlama becerisi. X
4 Teknik ve Araçların Kullanımı: Karmaşık mühendislik problemlerinin analizi ve çözümüne yönelik, tahmin ve modelleme de dahil olmak üzere, uygun teknikleri, kaynakları ve modern mühendislik ve bilişim araçlarını, sınırlamalarının da farkında olarak seçme ve kullanma becerisi. X
5 Araştırma ve İnceleme: Karmaşık mühendislik problemlerinin incelenmesi için literatür araştırması, deney tasarlama, deney yapma, veri toplama, sonuçları analiz etme ve yorumlama dahil, araştırma yöntemlerini kullanma becerisi.
6 Mühendislik Uygulamalarının Küresel Etkisi: Mühendislik uygulamalarının BM Sürdürülebilir Kalkınma Amaçları* kapsamında, topluma, sağlık ve güvenliğe, ekonomiye, sürdürülebilirlik ve çevreye etkileri hakkında bilgi; mühendislik çözümlerinin hukuksal sonuçları konusunda farkındalık.
7 Mühendislik Etiği: Mühendislik meslek ilkelerine* uygun davranma, etik sorumluluk hakkında bilgi; hiçbir konuda ayrımcılık yapmadan, tarafsız davranma ve çeşitliliği kapsayıcı olma konularında farkındalık.
8 Bireysel ve Takım Çalışması: Bireysel olarak ve disiplin içi ve çok disiplinli takımlarda (yüz yüze, uzaktan veya karma) takım üyesi veya lideri olarak etkin biçimde çalışabilme becerisi. X
9 Sözlü ve Yazılı İletişim: Hedef kitlenin çeşitli farklılıklarını (eğitim, dil, meslek gibi) dikkate alarak, teknik konularda sözlü, yazılı etkin iletişim kurma becerisi.
10 Proje Yönetimi: Proje yönetimi ve ekonomik yapılabilirlik analizi gibi iş hayatındaki uygulamalar hakkında bilgi; girişimcilik ve yenilikçilik hakkında farkındalık.
11 Yaşam Boyu Öğrenme: Bağımsız ve sürekli öğrenebilme, yeni ve gelişmekte olan teknolojilere uyum sağlayabilme ve teknolojik değişimlerle ilgili sorgulayıcı düşünebilmeyi kapsayan yaşam boyu öğrenme becerisi.
# Ders Öğrenme Çıktılarının Program Çıktılarına Katkısı PÇ 1 PÇ 2 PÇ 3 PÇ 4 PÇ 5 PÇ 6 PÇ 7 PÇ 8 PÇ 9 PÇ 10 PÇ 11
1 Yazılım tasarım problemlerini öğrenir
2 Tasarım desenlerini öğrenir
3 Tasarım desenlerini uygulamayı öğrenir
Değerlendirme Sistemi
Yarıyıl Çalışmaları Katkı Oranı
1. Ara Sınav 50
1. Ödev 15
2. Ödev 15
1. Proje / Tasarım 20
Toplam 100
1. Yıl İçinin Başarıya 50
1. Final 50
Toplam 100
AKTS - İş Yükü Etkinlik Sayı Süre (Saat) Toplam İş Yükü (Saat)
Ders Süresi (Sınav haftası dahildir: 16x toplam ders saati) 16 3 48
Sınıf Dışı Ders Çalışma Süresi(Ön çalışma, pekiştirme) 16 3 48
Ara Sınav 1 8 8
Ödev 1 8 8
Final 1 12 12
Toplam İş Yükü 124
Toplam İş Yükü / 25 (Saat) 4,96
dersAKTSKredisi 5