Ders Detayı
Ders Detayı
Ders Tanımı
| Ders | Kodu | Yarıyıl | T+U Saat | Kredi | AKTS |
|---|---|---|---|---|---|
| TASARIM KALIPLARINA GİRİŞ | COE4215966 | Bahar Dönemi | 3+0 | 3 | 6 |
| Ders Programı |
| Ön Koşul Dersleri | |
| Önerilen Seçmeli Dersler |
| Dersin Dili | İngilizce |
| Dersin Seviyesi | Lisans |
| Dersin Türü | Programa Bağlı Seçmeli |
| Dersin Koordinatörü | Dr.Öğr.Üye. İbrahim KARLIAĞA |
| Dersi Verenler | Dr.Öğr.Üye. İbrahim KARLIAĞA |
| Dersin Yardımcıları | |
| Dersin Amacı | Bu ders, öğrencilere yazılım tasarım kalıplarının temel prensiplerini öğretmeyi amaçlamaktadır. Öğrenciler, yazılım mimarisi geliştirmek, kod tekrar-kullanımını artırmak ve sürdürülebilirliği sağlamak için yaygın tasarım desenlerini tanımlama, uygulama ve kullanma becerilerini kazanacaklardır. Yaratımsal, yapısal ve davranışsal tasarım desenlerini kapsayan bu ders, ölçeklenebilir ve verimli yazılım çözümleri geliştirme konusunda uygulamalı deneyim sunmaktadır. Uygulamalı örnekler ve analizler aracılığıyla, öğrenciler yazılım tasarım kararlarını eleştirel bir şekilde değerlendirme ve nesne yönelimli programlamada en iyi uygulamaları hayata geçirme becerilerini geliştireceklerdir. |
| Dersin İçeriği | Bu ders; Yazılım Tasarım Kalıplarına Giriş ,Nesne Yönelimli Tasarım İlkeleri,Tasarım Kalıplarınin Sınıflandırılması,Singleton ve Fabrika (Factory) Kalıpları,Soyut Fabrika (Abstract Factory) ve Kurucu (Builder) Kalıpları ,Prototip (Prototype) Kalıbı,Adaptör (Adapter) ve Köprü (Bridge) Kalıpları,Bileşik (Composite) ve Dekoratör (Decorator) Kalıpları,Cephe (Facade) ve Vekil (Proxy) Kalıpları ,Strateji (Strategy) ve Gözlemci (Observer) Kalıpları,Komut (Command) ve Durum (State) Kalıpları ,Şablon Yöntemi (Template Method) ve Yineleyici (Iterator) Kalıpları,Sorumluluk Zinciri (Chain of Responsibility) ve Arabulucu (Mediator) Kalıpları ,Memento ve Ziyaretçi (Visitor) Kalıpları; konularını içermektedir. |
| Dersin Öğrenme Kazanımları | Öğretim Yöntemleri | Ölçme Yöntemleri |
| Yazılım Tasarım Kalıplarını Anlama | 12, 2, 9 | A, E, F |
| Uygun Tasarım Kalıplarını Belirleme | 12, 2, 9 | A, E, F |
| Tasarım Kalıplarını Uygulama | 12, 2, 9 | A, E, F |
| Yazılım Sürdürülebilirliği ve Tekrar Kullanılabilirliğini Artırma | 12, 2, 9 | A, E, F |
| Yazılım Tasarım Kararlarını Değerlendirme | 12, 2, 9 | A, E, F |
| Pratik Problem Çözme Becerileri Geliştirme | 12, 2, 9 | A, E, F |
| Öğretim Yöntemleri: | 12: Problem Çözme Yöntemi, 2: Proje Temelli Öğrenme Modeli, 9: Anlatım Yöntemi |
| Ölçme Yöntemleri: | A: Klasik Yazılı Sınav, E: Ödev, F: Proje Görevi |
Ders Akışı
| Sıra | Konular | Ön Hazırlık |
|---|---|---|
| 1 | Yazılım Tasarım Kalıplarına Giriş | |
| 2 | Nesne Yönelimli Tasarım İlkeleri | |
| 3 | Tasarım Kalıplarınin Sınıflandırılması | |
| 4 | Singleton ve Fabrika (Factory) Kalıpları | |
| 5 | Soyut Fabrika (Abstract Factory) ve Kurucu (Builder) Kalıpları | |
| 6 | Prototip (Prototype) Kalıbı | |
| 7 | Adaptör (Adapter) ve Köprü (Bridge) Kalıpları | |
| 8 | Bileşik (Composite) ve Dekoratör (Decorator) Kalıpları | |
| 9 | Cephe (Facade) ve Vekil (Proxy) Kalıpları | |
| 10 | Strateji (Strategy) ve Gözlemci (Observer) Kalıpları | |
| 11 | Komut (Command) ve Durum (State) Kalıpları | |
| 12 | Şablon Yöntemi (Template Method) ve Yineleyici (Iterator) Kalıpları | |
| 13 | Sorumluluk Zinciri (Chain of Responsibility) ve Arabulucu (Mediator) Kalıpları | |
| 14 | Memento ve Ziyaretçi (Visitor) Kalıpları |
| Kaynak |
| Design Patterns: Elements of Reusable Object-Oriented Software, Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, 1995; Head First Design Patterns, 2nd Edition, Eric Freeman, Elisabeth Robson, Kathy Sierra, and Bert Bates, 2021 |
Dersin Program Yeterliliklerine Katkısı
| Dersin Program Yeterliliklerine Katkısı | |||||||
| No | Program Yeterliliği | Katkı Düzeyi | |||||
| 1 | 2 | 3 | 4 | 5 | |||
| 1 | 1. Matematik, fen bilimleri ve ilgili mühendislik disiplinine özgü konularda yeterli bilgi birikimi; bu alanlardaki kuramsal ve uygulamalı bilgileri, karmaşık mühendislik problemlerinde kullanabilme becerisi | ||||||
| 2 | 2. Karmaşık mühendislik problemlerini saptama, tanımlama, formüle etme ve çözme becerisi; bu amaçla uygun analiz ve modelleme yöntemlerini seçme ve uygulama becerisi | ||||||
| 3 | 3. Karmaşık bir sistemi, süreci, cihazı veya ürünü gerçekçi kısıtlar ve koşullar altında, belirli gereksinimleri karşılayacak şekilde tasarlama becerisi; bu amaçla modern tasarım yöntemlerini uygulama becerisi | ||||||
| 4 | 4. Mühendislik uygulamalarında karşılaşılan karmaşık problemlerin analizi ve çözümü için gerekli olan modern teknik ve araçları geliştirme, seçme ve kullanma becerisi; bilişim teknolojilerini etkin bir şekilde kullanma becerisi | ||||||
| 5 | 5. Karmaşık mühendislik problemlerinin veya disipline özgü araştırma konularının incelenmesi için deney tasarlama, deney yapma, veri toplama, sonuçları analiz etme ve yorumlama becerisi | ||||||
| 6 | 6. Disiplin içi ve çok disiplinli takımlarda etkin biçimde çalışabilme becerisi; bireysel çalışma becerisi | ||||||
| 7 | 7. Sözlü ve yazılı etkin iletişim kurma becerisi; en az bir yabancı dil bilgisi; etkin rapor yazma ve yazılı raporları anlama, tasarım ve üretim raporları hazırlayabilme, etkin sunum yapabilme, açık ve anlaşılır talimat verme ve alma becerisi | ||||||
| 8 | 8. Yaşam boyu öğrenmenin gerekliliği bilinci; bilgiye erişebilme, bilim ve teknolojideki gelişmeleri izleme ve kendini sürekli yenileme becerisi | ||||||
| 9 | 9. Etik ilkelerine uygun davranma, mesleki ve etik sorumluluk bilinci; mühendislik uygulamalarında kullanılan standartlar hakkında bilgi | ||||||
| 10 | 10. Proje yönetimi, risk yönetimi ve değişiklik yönetimi gibi, iş hayatındaki uygulamalar hakkında bilgi; girişimcilik, yenilikçilik hakkında farkındalık; sürdürülebilir kalkınma hakkında bilgi | ||||||
| 11 | 11. Mühendislik uygulamalarının evrensel ve toplumsal boyutlarda sağlık, çevre ve güvenlik üzerindeki etkileri ve çağın mühendislik alanına yansıyan sorunları hakkında bilgi; mühendislik çözümlerinin hukuksal sonuçları konusunda farkındalık | ||||||
Değerlendirme Sistemi
| Katkı Düzeyi | Mutlak Değerlendirme | |
| Ara Sınavın Başarıya Oranı | 30 | |
| Genel Sınavın Başarıya Oranı | 70 | |
| Toplam | 100 | |
| AKTS / İşyükü Tablosu | ||||||
| Etkinlik | Sayı | Süresi (Saat) | Toplam İş Yükü (Saat) | |||
| Ders Saati | 0 | 0 | 0 | |||
| Rehberli Problem Çözme | 0 | 0 | 0 | |||
| Problem Çözümü / Ödev / Proje / Rapor Tanzimi | 0 | 0 | 0 | |||
| Okul Dışı Diğer Faaliyetler | 0 | 0 | 0 | |||
| Proje Sunumu / Seminer | 0 | 0 | 0 | |||
| Kısa Sınav (QUİZ) ve Hazırlığı | 0 | 0 | 0 | |||
| Ara Sınav ve Hazırlığı | 0 | 0 | 0 | |||
| Genel Sınav ve Hazırlığı | 0 | 0 | 0 | |||
| Performans Görevi, Bakım Planı | 0 | 0 | 0 | |||
| Toplam İş Yükü (Saat) | 0 | |||||
| Dersin AKTS Kredisi = Toplam İş Yükü (Saat)/30*=(0/30) | 0 | |||||
| Dersin AKTS Kredisi: *30 saatlik çalışma 1 AKTS kredisi sayılmaktadır. | ||||||
Dersin Detaylı Bilgileri
Ders Tanımı
| Ders | Kodu | Yarıyıl | T+U Saat | Kredi | AKTS |
|---|---|---|---|---|---|
| TASARIM KALIPLARINA GİRİŞ | COE4215966 | Bahar Dönemi | 3+0 | 3 | 6 |
| Ders Programı |
| Ön Koşul Dersleri | |
| Önerilen Seçmeli Dersler |
| Dersin Dili | İngilizce |
| Dersin Seviyesi | Lisans |
| Dersin Türü | Programa Bağlı Seçmeli |
| Dersin Koordinatörü | Dr.Öğr.Üye. İbrahim KARLIAĞA |
| Dersi Verenler | Dr.Öğr.Üye. İbrahim KARLIAĞA |
| Dersin Yardımcıları | |
| Dersin Amacı | Bu ders, öğrencilere yazılım tasarım kalıplarının temel prensiplerini öğretmeyi amaçlamaktadır. Öğrenciler, yazılım mimarisi geliştirmek, kod tekrar-kullanımını artırmak ve sürdürülebilirliği sağlamak için yaygın tasarım desenlerini tanımlama, uygulama ve kullanma becerilerini kazanacaklardır. Yaratımsal, yapısal ve davranışsal tasarım desenlerini kapsayan bu ders, ölçeklenebilir ve verimli yazılım çözümleri geliştirme konusunda uygulamalı deneyim sunmaktadır. Uygulamalı örnekler ve analizler aracılığıyla, öğrenciler yazılım tasarım kararlarını eleştirel bir şekilde değerlendirme ve nesne yönelimli programlamada en iyi uygulamaları hayata geçirme becerilerini geliştireceklerdir. |
| Dersin İçeriği | Bu ders; Yazılım Tasarım Kalıplarına Giriş ,Nesne Yönelimli Tasarım İlkeleri,Tasarım Kalıplarınin Sınıflandırılması,Singleton ve Fabrika (Factory) Kalıpları,Soyut Fabrika (Abstract Factory) ve Kurucu (Builder) Kalıpları ,Prototip (Prototype) Kalıbı,Adaptör (Adapter) ve Köprü (Bridge) Kalıpları,Bileşik (Composite) ve Dekoratör (Decorator) Kalıpları,Cephe (Facade) ve Vekil (Proxy) Kalıpları ,Strateji (Strategy) ve Gözlemci (Observer) Kalıpları,Komut (Command) ve Durum (State) Kalıpları ,Şablon Yöntemi (Template Method) ve Yineleyici (Iterator) Kalıpları,Sorumluluk Zinciri (Chain of Responsibility) ve Arabulucu (Mediator) Kalıpları ,Memento ve Ziyaretçi (Visitor) Kalıpları; konularını içermektedir. |
| Dersin Öğrenme Kazanımları | Öğretim Yöntemleri | Ölçme Yöntemleri |
| Yazılım Tasarım Kalıplarını Anlama | 12, 2, 9 | A, E, F |
| Uygun Tasarım Kalıplarını Belirleme | 12, 2, 9 | A, E, F |
| Tasarım Kalıplarını Uygulama | 12, 2, 9 | A, E, F |
| Yazılım Sürdürülebilirliği ve Tekrar Kullanılabilirliğini Artırma | 12, 2, 9 | A, E, F |
| Yazılım Tasarım Kararlarını Değerlendirme | 12, 2, 9 | A, E, F |
| Pratik Problem Çözme Becerileri Geliştirme | 12, 2, 9 | A, E, F |
| Öğretim Yöntemleri: | 12: Problem Çözme Yöntemi, 2: Proje Temelli Öğrenme Modeli, 9: Anlatım Yöntemi |
| Ölçme Yöntemleri: | A: Klasik Yazılı Sınav, E: Ödev, F: Proje Görevi |
Ders Akışı
| Sıra | Konular | Ön Hazırlık |
|---|---|---|
| 1 | Yazılım Tasarım Kalıplarına Giriş | |
| 2 | Nesne Yönelimli Tasarım İlkeleri | |
| 3 | Tasarım Kalıplarınin Sınıflandırılması | |
| 4 | Singleton ve Fabrika (Factory) Kalıpları | |
| 5 | Soyut Fabrika (Abstract Factory) ve Kurucu (Builder) Kalıpları | |
| 6 | Prototip (Prototype) Kalıbı | |
| 7 | Adaptör (Adapter) ve Köprü (Bridge) Kalıpları | |
| 8 | Bileşik (Composite) ve Dekoratör (Decorator) Kalıpları | |
| 9 | Cephe (Facade) ve Vekil (Proxy) Kalıpları | |
| 10 | Strateji (Strategy) ve Gözlemci (Observer) Kalıpları | |
| 11 | Komut (Command) ve Durum (State) Kalıpları | |
| 12 | Şablon Yöntemi (Template Method) ve Yineleyici (Iterator) Kalıpları | |
| 13 | Sorumluluk Zinciri (Chain of Responsibility) ve Arabulucu (Mediator) Kalıpları | |
| 14 | Memento ve Ziyaretçi (Visitor) Kalıpları |
| Kaynak |
| Design Patterns: Elements of Reusable Object-Oriented Software, Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, 1995; Head First Design Patterns, 2nd Edition, Eric Freeman, Elisabeth Robson, Kathy Sierra, and Bert Bates, 2021 |
Dersin Program Yeterliliklerine Katkısı
| Dersin Program Yeterliliklerine Katkısı | |||||||
| No | Program Yeterliliği | Katkı Düzeyi | |||||
| 1 | 2 | 3 | 4 | 5 | |||
| 1 | 1. Matematik, fen bilimleri ve ilgili mühendislik disiplinine özgü konularda yeterli bilgi birikimi; bu alanlardaki kuramsal ve uygulamalı bilgileri, karmaşık mühendislik problemlerinde kullanabilme becerisi | ||||||
| 2 | 2. Karmaşık mühendislik problemlerini saptama, tanımlama, formüle etme ve çözme becerisi; bu amaçla uygun analiz ve modelleme yöntemlerini seçme ve uygulama becerisi | ||||||
| 3 | 3. Karmaşık bir sistemi, süreci, cihazı veya ürünü gerçekçi kısıtlar ve koşullar altında, belirli gereksinimleri karşılayacak şekilde tasarlama becerisi; bu amaçla modern tasarım yöntemlerini uygulama becerisi | ||||||
| 4 | 4. Mühendislik uygulamalarında karşılaşılan karmaşık problemlerin analizi ve çözümü için gerekli olan modern teknik ve araçları geliştirme, seçme ve kullanma becerisi; bilişim teknolojilerini etkin bir şekilde kullanma becerisi | ||||||
| 5 | 5. Karmaşık mühendislik problemlerinin veya disipline özgü araştırma konularının incelenmesi için deney tasarlama, deney yapma, veri toplama, sonuçları analiz etme ve yorumlama becerisi | ||||||
| 6 | 6. Disiplin içi ve çok disiplinli takımlarda etkin biçimde çalışabilme becerisi; bireysel çalışma becerisi | ||||||
| 7 | 7. Sözlü ve yazılı etkin iletişim kurma becerisi; en az bir yabancı dil bilgisi; etkin rapor yazma ve yazılı raporları anlama, tasarım ve üretim raporları hazırlayabilme, etkin sunum yapabilme, açık ve anlaşılır talimat verme ve alma becerisi | ||||||
| 8 | 8. Yaşam boyu öğrenmenin gerekliliği bilinci; bilgiye erişebilme, bilim ve teknolojideki gelişmeleri izleme ve kendini sürekli yenileme becerisi | ||||||
| 9 | 9. Etik ilkelerine uygun davranma, mesleki ve etik sorumluluk bilinci; mühendislik uygulamalarında kullanılan standartlar hakkında bilgi | ||||||
| 10 | 10. Proje yönetimi, risk yönetimi ve değişiklik yönetimi gibi, iş hayatındaki uygulamalar hakkında bilgi; girişimcilik, yenilikçilik hakkında farkındalık; sürdürülebilir kalkınma hakkında bilgi | ||||||
| 11 | 11. Mühendislik uygulamalarının evrensel ve toplumsal boyutlarda sağlık, çevre ve güvenlik üzerindeki etkileri ve çağın mühendislik alanına yansıyan sorunları hakkında bilgi; mühendislik çözümlerinin hukuksal sonuçları konusunda farkındalık | ||||||
Değerlendirme Sistemi
| Katkı Düzeyi | Mutlak Değerlendirme | |
| Ara Sınavın Başarıya Oranı | 30 | |
| Genel Sınavın Başarıya Oranı | 70 | |
| Toplam | 100 | |