| Dersin Kodu | Dersin Adı | Dersin Türü | Yıl | Yarıyıl | AKTS |
|---|---|---|---|---|---|
| 501002302023 | ADVANCED OBJECT ORIENTED PROGRAMMING | Ders | 2 | 4 | 5,00 |
Lisans
İngilizce
Bu dersin amacı, öğrencilerin kalıtım, çok-biçimlilik ve arayüzleri kullanarak etkili ve esnek nesne yönelimli yazılımlar geliştirebilmelerini, nesneye yönelik yazılımların birim testlerini gerçekleştirebilmelerini, eş-zamanlı çalışan programlar yazabilmelerini ve tasarım desenlerini nesneye yönelik çözümlerde kullanabilme yeteneğini kazanmalarını sağlamaktır.
Doç. Dr. Özgün YILMAZ
| 1 | Gerekli temel yapıları kullanarak problem çözümlerini nesneye yönelik olarak ifade edebilmek. |
| 2 | Nesneye yönelik çözümleri standart bir gösterim ile ifade edebilme. |
| 3 | Kalıtım ve çok-biçimlilik özellikleri ile arayüzleri etkin kullanarak, esnek nesneye yönelik çözümler üretebilme. |
| 4 | Eş-zamanlı çalışan programlar yazabilme. |
| 5 | Geliştirilen nesneye yönelik çözümlerin birim testlerini gerçekleştirebilme. |
| 6 | Nesneye yönelik çözümlerde tasarım desenlerini kullanabilme. |
| 7 | Nesneye yönelik çözümü ifade etmek için en uygun tasarım desenlerini seçebilme. |
| 8 | Öğrendiklerini, güncel (işe dönük) problemlerin çözümünde kullanabilme. |
| 9 | Problemlerin nesneye yönelik olarak çözümlenmesinden test edilmesine kadar tüm aşamaları kapsayan ayrıntılı teknik raporlar hazırlayabilme. |
Birinci Öğretim
Yok
Yok
Nesneye Yönelik Yazılım Geliştirmenin Temelleri. UML (Unified Modeling Language) Kullanarak Nesneye Yönelik Modelleme. Java Diline Genel Bakış. Kalıtım, Çok-biçimlilik (polymorphism) ve Arayüzler. Temel Yapılardan Bakımı Kolay Yazılımlara Geçiş. Birim Testlerin Gerçekleştirimi. Tasarım Desenleri. Eş-zamanlı Programlama.
| Hafta | Konular (Teorik) | Öğretim Yöntem ve Teknikleri | Ön Hazırlık |
|---|---|---|---|
| 1 | Nesneye Yönelik Yazılım Geliştirmenin Temelleri: Yazılım geliştirmenin sorunları. Nesneye yönelik çözümlerin yazılım geliştirmeye katkısı. Nesneye yönelik yazılım geliştirme sürecine genel bakış. | ||
| 2 | UML Kullanarak Nesneye Yönelik Modelleme: Nesneye yönelik modellemenin temel prensipleri, kavramları ve yapıları. UML’de en çok kullanılan gösterimler: kullanım durumu (use case), sınıf, nesne ve ardıl-etkileşim diyagramları. Nesneye yönelik modelleme ile ilgili bir durum çalışması. | ||
| 3 | Java Diline Genel Bakış: Akış kontrolü, sınıflar, nesneler, yapılandırıcı metotlar ve nesne oluşturma, diziler | ||
| 4 | Kalıtım, Çok-biçimlilik ve Arayüzler: Kalıtım, soyut sınıflar, alt-tip üst-tip ilişkileri ve çok-biçimlilik, çok-biçimli atamalar, arayüzler. | ||
| 5 | Java koleksiyonları ve "Map" arayüzü. Temel Yapılardan Bakımı Kolay Yazılımlara Geçiş: Nesneye yönelik kodlama ve belgeleme standartları. | ||
| 6 | Birim Testlerin Gerçekleştirimi: Aykırı durumların nesneye dayalı olarak ele alınması. Birim testler ve JUNIT aracının gerçekleştirimi. | ||
| 7 | Tasarım Desenleri: Tasarım desenlerine giriş. Tasarın desenlerinin sınıflandırılması. “Abstract Factory”, “Factory Method” ve “Singleton” desenlerinin örneklenerek tanıtılması. | ||
| 8 | Ara sınav | ||
| 9 | Tasarım Desenleri: “Prototype”, “Builder” ve “Observer” desenlerinin örneklenerek tanıtılması. | ||
| 10 | Tasarım Desenleri: “Command”, “Adapter” ve “Composite” desenlerinin örneklenerek tanıtılması. | ||
| 11 | Tasarım Desenleri: Yeniden-yapılandırma (refactoring) kavramı ve “Template Method” desenine geçiş. “Strategy” deseninin örneklenerek tanıtılması. Soyut bağlama (abstract coupling) ve “Iterator” desenine geçiş. | ||
| 12 | Tasarım deseni kataloğundaki diğer desenlere genel bakış ve önceki haftalarda incelenen tasarım desenlerinin tekrar gözden geçirilmesi | ||
| 13 | Eş-zamanlı Programlama: İş-parçası (thread) kavramı. Java dilinde iş-parçaları tanımlama ve çoklu iş-parçaları (multi-threaded) ile programlama. | ||
| 14 | Eş-zamanlı Programlama: İş-parçası senkronizasyonu ve kilitler. | ||
| 15 | Bilgisayar başında proje kontrolü | ||
| 16 | Final Sınavı |
Ders Kitabı: 1. Xiaoping Jia, Object-Oriented Software Development in Java – Principles, Patterns, and Frameworks, 2/ed. Addison-Wesley, 2003. Yardımcı Kitaplar: 1. Deitel and Deitel, Java How to Program, Deitel, 11/ed., Pearson, 2017. 2. Dathan, B. and Ramnath, S., Object Oriented Analysis, Design, and Implementation, Springer, 2015. 3. Eckel, B, Thinking in Java, 2/ed., 3/ed., 4/ed., Prentice Hall, 2001, 2002, 2006. 4 Arnold, K. And Gosling, J., The JavaTM Programming Language, 2/ed., Addison Wesley, 1998. 5 .Altıntaş, A., B. Java Yazılım Tasarımı, Papatya Yayınları, 7. Baskı, 2016. 6 Acar, Ö., Java Tasarım Şablonları, Pusula Yayıncılık, 2008. 7, Gamma, E., Helm, R., Johnson, R., and Vlissides, J., Design Patterns - Elements of Reusable Object-Oriented Software, Addison-Wesley, 1995. 8. Eckel, B., Thinking in Patterns, 2003.
| Yarıyıl (Yıl) İçi Etkinlikleri | Adet | Değer |
|---|---|---|
| Ara Sınav | 1 | 60 |
| Ev Ödevi | 1 | 40 |
| 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 | |
Yok
| Etkinlikler | Sayısı | Süresi (saat) | Toplam İş Yükü (saat) |
|---|---|---|---|
| Ara Sınav | 1 | 2 | 2 |
| Final Sınavı | 1 | 2 | 2 |
| Derse Katılım | 14 | 3 | 42 |
| Proje Hazırlama | 1 | 60 | 60 |
| Ara Sınav İçin Bireysel Çalışma | 1 | 20 | 20 |
| Final Sınavı içiin Bireysel Çalışma | 1 | 24 | 24 |
| Toplam İş Yükü (saat) | 150 | ||
| PÇ 1 | |
| ÖÇ 1 | |
| ÖÇ 2 | |
| ÖÇ 3 | |
| ÖÇ 4 | |
| ÖÇ 5 | |
| ÖÇ 6 | |
| ÖÇ 7 | |
| ÖÇ 8 | |
| ÖÇ 9 |