Ders Adı Kodu Yarıyıl T+U Saat Kredi AKTS
Nesne Yönelimli Programlama SWE 104 2 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ü Dr.Öğr.Üyesi GÜLÜZAR ÇİT
Dersi Verenler Dr.Öğr.Üyesi GÜLÜZAR ÇİT,
Dersin Yardımcıları
Dersin Kategorisi Diğer
Dersin Amacı

Bu dersin amacı, Yazılım Mühendisliği öğrencilerine nesneye dayalı programlama yaklaşımının temel kavramlarını kazandırarak C# programlama dili ile yazılım geliştirme, tasarlama ve temel hata ayıklama becerisi edindirmektir.

Dersin İçeriği

Bu ders kapsamında nesneye dayalı programlama paradigmasının temel kavramları (sınıf, nesne, kapsülleme, kalıtım, çok biçimlilik) ele alınır. C# programlama dili kullanılarak temel nesneye dayalı uygulama geliştirme süreçleri öğretilir. Sınıf ve nesne yapıları, soyutlama ve arayüz kavramları ile esnek yazılım tasarımı ele alınır. Ayrıca koleksiyonlar, delegeler, indeksleme ve operatör aşırı yükleme gibi ileri düzey nesneye dayalı programlama konuları incelenir. İstisna yönetimi (exception handling) mekanizmaları ve temel hata ayıklama yaklaşımları uygulamalı olarak gösterilir. Dersin sonunda öğrenciler küçük ölçekli bir yazılım projesini nesneye dayalı yaklaşımla tasarlayıp geliştirebilirler.

# Ders Öğrenme Çıktıları Öğretim Yöntemleri Ölçme Yöntemleri
1 Nesneye dayalı programlama paradigmasının temel kavramlarını (sınıf, nesne, kapsülleme, kalıtım, çok biçimlilik) açıklar Gözlem, Problem Çözme, Gösterip Yaptırma, Anlatım, Yazılı Sınavlar (Kısa ve Uzun Yanıtlı), Performans Değerlendirme, Sözlü Sınavlar,
2 C# programlama dili ile nesneye dayalı temel uygulamalar geliştirir Gösterip Yaptırma, Proje, Ödev / Evde-Çöz Sınavlar, Performans Değerlendirme, Yazılı Sınavlar (Kısa ve Uzun Yanıtlı),
3 Sınıf ve nesne yapıları kullanarak program tasarlar ve geliştirir Anlatım, Soru-Cevap, Yazılı Sınavlar (Kısa ve Uzun Yanıtlı), Ödev / Evde-Çöz Sınavlar, Performans Değerlendirme,
4 Kapsülleme, kalıtım ve çok biçimlilik kavramlarını yazılım geliştirmede kullanır Anlatım, Soru-Cevap, Problem Çözme, Yazılı Sınavlar (Kısa ve Uzun Yanıtlı), Performans Değerlendirme,
5 Soyutlama ve arayüz kavramlarını kullanarak esnek ve sürdürülebilir yazılım tasarımları geliştirir Anlatım, Soru-Cevap, Proje, Yazılı Sınavlar (Kısa ve Uzun Yanıtlı), Performans Değerlendirme,
6 Temel hata ayıklama tekniklerini kullanarak program hatalarını tespit eder Soru-Cevap, Anlatım, Problem Çözme, Yazılı Sınavlar (Kısa ve Uzun Yanıtlı), Performans Değerlendirme,
7 Küçük ölçekli bir yazılım projesini nesneye dayalı yaklaşımla tasarlar ve gerçekleştirir Proje, Anlatım, Soru-Cevap, Ödev / Evde-Çöz Sınavlar, Yazılı Sınavlar (Kısa ve Uzun Yanıtlı),
Hafta Ders Konuları Ön Hazırlık
1 Ders Tanıtımı & Giriş
2 Nesneye Dayalı Programlama Kavramına Giriş
3 Nesneye Dayalı Programlama Kavramına Giriş
4 Kontrol İfadeleri, Döngüler ve Fonksiyonlar
5 Nesne ve Sınıf Kavramları, Sınıf Üyeleri (erişim denetleyicisi, alanlar, fonksiyonlar ve temel bileşenler))
6 Nesne ve Sınıf Kavramları, Sınıf Üyeleri (erişim denetleyicisi, alanlar, fonksiyonlar ve temel bileşenler))
7 Kalıtım
8 Çok Biçimlilik
9 Yıl içi Sınavı
10 Arayüzler ve Soyut Sınıflar
11 Indeksleme ve Operatör Aşırı Yükleme
12 Form Uygulamaları
13 Koleksiyonlar ve Jenerikler
14 Delegeler
Kaynaklar
Ders Notu
Ders Kaynakları

- Deitel, P., Deitel, H., Visual C# How to Program, Sixth Edition, Pearson, 2016.

- Price, M., J., C# 9 and .NET 5 - Modern Cross-Platform Development, Packt, Fifth Edition, 2020.

- Albahari, J., Albahari, B., C# 9.0 Pocket Reference, O'Reilly, 2021.

- Schildt, H., C# 4.0 - The Complete Reference Book, McGraw Hill,  2010.

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. X
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. X
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. X
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. X
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. X
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. X
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. X
# 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 Nesneye dayalı programlama paradigmasının temel kavramlarını (sınıf, nesne, kapsülleme, kalıtım, çok biçimlilik) açıklar 5 0 0 0 0 0 0 0 0 0 3
2 C# programlama dili ile nesneye dayalı temel uygulamalar geliştirir 4 0 5
3 Sınıf ve nesne yapıları kullanarak program tasarlar ve geliştirir 0 4 4
4 Kapsülleme, kalıtım ve çok biçimlilik kavramlarını yazılım geliştirmede kullanır 5 0 4
5 Soyutlama ve arayüz kavramlarını kullanarak esnek ve sürdürülebilir yazılım tasarımları geliştirir 3 5 0 3
6 Temel hata ayıklama tekniklerini kullanarak program hatalarını tespit eder 0 4 3
7 Küçük ölçekli bir yazılım projesini nesneye dayalı yaklaşımla tasarlar ve gerçekleştirir 0 0 4 0 3 4 2 2
Değerlendirme Sistemi
Yarıyıl Çalışmaları Katkı Oranı
1. Ara Sınav 50
1. Ödev 25
2. Ödev 25
Toplam 100
1. Final 55
1. Yıl İçinin Başarıya 45
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 3 3
Kısa Sınav 1 3 3
Ödev 2 10 20
Final 1 3 3
Toplam İş Yükü 125
Toplam İş Yükü / 25 (Saat) 5
dersAKTSKredisi 5