GERİ DÖN

Ders Öğretim Planı


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
* Katkı Düzeyi : 1 Çok düşük 2 Düşük 3 Orta 4 Yüksek 5 Çok yüksek