Ders Kodu: | SWE110 | ||||
Ders İsmi: | Nesne Yönelimli Programlama | ||||
Ders Yarıyılı: | Güz | ||||
Ders Kredileri: |
|
||||
Öğretim Dili: | İngilizce | ||||
Ders Koşulu: | |||||
Ders İş Deneyimini Gerektiriyor mu?: | Hayır | ||||
Dersin Türü: | Zorunlu | ||||
Dersin Seviyesi: |
|
||||
Dersin Veriliş Şekli: | Yüz yüze | ||||
Dersin Koordinatörü: | Dr. Öğr. Üy. MUHAMMED DAVUD | ||||
Dersi Veren(ler): | Dr. Öğr. Gürsan ÇOBAN | ||||
Dersin Yardımcıları: |
Dersin Amacı: | Öğrencilere nesneye yönelik programlama kavramlarını öğreterek, yazılım geliştirme sürecini daha etkin ve düzenli hale getirmelerini sağlamak ve OOP prensiplerini uygulayarak yazılım sistemleri tasarlamalarını sağlamaktır. |
Dersin İçeriği: | Sınıflar ve nesneler, sınıf üye değişkenler ve fonksiyonlar, erişim belirteçleri ve "scope" kavramı, fonksiyonların sınıfların ve operatörlerin aşırı yüklenmesi, veri soyutlama, kalıtım ve çok biçimlilik, soyutlanmış sınıf tanımlarının yaratılması, sınıf ve fonksiyon şablonları, dizayn örüntülerine giriş. |
Bu dersi başarıyla tamamlayabilen öğrenciler;
1) Nesne Yönelimli C++ yaklaşımları için kapsülleme (üye verileri/işlevleri) dahil olmak üzere sınıf tanımlarını ve standart prosedürleri analiz edebilir ve açıklayabilir. 2) Nesne yönelimli yaklaşımlarda operatörlerin/fonksiyonların aşırı yüklenmesine ilişkin bir programlama kodunu analiz edebilir. 3) Bir programlama kodundaki kalıtım hiyerarşisini analiz edebilir. 4) Nesneye yönelik problemler için polimorfizmin uygulama ayrıntılarını analiz edebilir. 5) Nesne yönelimli yaklaşımlarda sınıf veya işlev şablonlarının ilkelerine ilişkin bir programlama kodunu analiz edebilir. |
Hafta | Konu | Ön Hazırlık |
1) | Nesneye Yönelik Programlama: Sınıflara ve Nesnelere ve Katarlara Giriş, Sınıf tanımları, nesneler, veri üyeleri, üye işlevleri, yapıcılar, arayüzün ayrıştırılması. | CH3 |
2) | Sınıflar: Fonksiyonların gözden geçirilmesi ('scope' kavramı, işaretçiler, işaretçiler ve referanslar, depolama ve değişkenlerin yaşam süresi). İşaretçilerin gözden geçirilmesi, (::) çözümleme operatörü. | CH6,CH8 |
3) | Sınıflar: Sınıflarda scope (görü alanı) kavramı, yapıcı ve yıkıcıların kullanımı. arkadaş fonksiyonları ve arkadaş sınıfları, "this" işaretçisi, sınıf değişkenleri ve nesne (örnek) değişkenleri, Vaka Problemleri. | CH9 |
4) | Operatör Aşırı Yüklemesi; katar sınıfı: Aşırı yüklenmiş operatörlerin kullanılması, ikili ve tekli operatörlerin aşırı yüklenmesi, dinamik bellek yönetimi. | CH10 |
5) | Operatör Aşırı Yüklemesi; Standart sınıf şablonlarından dizi ve vektörlerin kullanılması, istisnaların yakalaması, vektörler ve dizilerle aşırı yüklemenin sınıf uygulamalarına yönelik örnekler. | CH7, CH10 |
6) | Nesneye Dayalı Programlama: Kalıtım kavramı, türetilmiş sınıflar, miras hiyerarşisi, türetilmiş sınıflarda yapıcıların yıkıcıları. | CH11 |
7) | Nesneye Dayalı Programlama: Kalıtımla Yazılım Mühendisliği, örnekler. | CH11 |
8) | Yarıyıl Sınavı Haftası | - |
9) | Nesneye Dayalı Programlama: Çok biçimlilik, soyut sınıflar ve sanal işlevler, sanal yıkıcılar | CH12 |
10) | Nesneye Yönelik Programlama: Çok Biçimlilik Uygulamaları | Ch12 |
11) | Standart Kütüphane Konteynerleri ve Yineleyiciler: konteynerler, yineleyiciler, standart kütüphane algoritmaları | CH15 |
12) | Özel Şablonlara Giriş: sınıf şablonları, işlev şablonlarının aşırı yüklenemsi | CH18-CH19 |
13) | Şablonlaştırılmış Özel Veri Yapıları: kendine referanslı yapılar. | CH19 |
14) | *Nesne Tabanlı Programlamada Diğer Konular: değişken sınıf üyeleri, çoklu miras, çoklu miras ve sanal temel sınıflar. C++'da Yapısal Tasarım Desenleri (Design Patterns). Örnek: “dekoratör” deseni. | CH23 and Slides |
Ders Notları / Kitaplar: | C++ How to Program, 10/E, Paul Deitel, Harvey Deitel, ISBN-13: 9780134448237, Pearson. |
Diğer Kaynaklar: | Bjarne Stroustrup, “Programming: Principles and Practice Using C++”, 2nd Edition, Pearson online sources: https://cplusplus.com/doc/tutorial/ o https://cplusplus.com/ o https://github.com/pdeitel o https://github.com/pdeitel/CPlusPlusHowToProgram10e |
Course Learning Outcomes | 1 |
2 |
3 |
4 |
5 |
---|---|---|---|---|---|
Program Kazanımları |
Etkisi Yok | 1 En Düşük | 2 Orta | 3 En Yüksek |
Dersin Program Kazanımlarına Etkisi | Katkı Payı |
Yarıyıl İçi Çalışmaları | Aktivite Sayısı | Katkı Payı |
Ara Sınavlar | 1 | % 40 |
Final | 1 | % 60 |
Toplam | % 100 | |
YARIYIL İÇİ ÇALIŞMALARININ BAŞARI NOTU KATKISI | % 40 | |
YARIYIL SONU ÇALIŞMALARININ BAŞARI NOTUNA KATKISI | % 60 | |
Toplam | % 100 |
Aktiviteler | Aktivite Sayısı | İş Yükü |
Ders Saati | 13 | 39 |
Laboratuvar | 13 | 26 |
Sınıf Dışı Ders Çalışması | 13 | 26 |
Ara Sınavlar | 3 | 22 |
Final | 4 | 27 |
Toplam İş Yükü | 140 |