| Dersin Kodu | Dersin Adı | Dersin Türü | Yıl | Yarıyıl | AKTS | Kredi |
|---|---|---|---|---|---|---|
| EBLG220 | Nesne Yönelimli Programlama | Ders | 2 | 4 | 5.00 | 3.00 |
Lisans
Türkçe
Bu dersin temel amacı, öğrencilerin nesne yönelimli programlama (NYP) yaklaşımını kavramsal ve uygulamalı olarak öğrenmelerini sağlamaktır. Öğrenciler, gerçek dünya problemlerini sınıf, nesne, kalıtım ve çok biçimlilik gibi kavramları kullanarak modellemeyi; sürdürülebilir, yeniden kullanılabilir ve bakımı kolay yazılım bileşenleri geliştirmeyi öğreneceklerdir.
Dr. Öğr. Üyesi Gülsüm ŞANAL
| 1 | Nesne yönelimli programlamanın temel kavramlarını (sınıf, nesne, kapsülleme, kalıtım, çok biçimlilik vb.) açıklar. |
| 2 | Verilen bir problem senaryosunu analiz ederek, sınıf ve nesne temelli bir model tasarlar. |
| 3 | Kapsülleme, kalıtım ve çok biçimlilik ilkelerini kullanarak yeniden kullanılabilir ve bakımı kolay kod yazar. |
| 4 | Soyut sınıflar ve arayüzler ile katmanlı ve genişletilebilir yazılım tasarımları oluşturur. |
| 5 | İstisna yönetimi ve koleksiyon sınıflarını kullanarak güvenilir ve hatalara dayanıklı uygulamalar geliştirir. |
| 6 | Bir tümleşik geliştirme ortamında (IDE) derleme, hata ayıklama ve temel test süreçlerini uygular. |
| 7 | Küçük ölçekli bir nesne yönelimli yazılım projesini bireysel veya takım hâlinde tasarlar, geliştirir ve dokümante eder. |
| 8 | Kod yazarken kodlama standartlarına, dokümantasyon ilkelerine ve akademik dürüstlük kurallarına uygun davranır. |
Birinci Öğretim
Bu ders, öğrencilerin temel programlama kavramlarına hâkim olduğunu varsayar. Ön koşul ders: Yapısal Programlama / Programlamaya Giriş (veya eşdeğeri). Öğrencilerin özellikle aşağıdaki konuları biliyor olması beklenir: • Temel veri türleri ve ifadeler • Seçim ve döngü yapıları • Diziler ve temel koleksiyonlar • Fonksiyonlar / metotlar ve temel hata ayıklama
• Öğrencilerin derse düzenli devam etmeleri ve her hafta verilen örnekleri geliştirme ortamında (IDE) birebir denemeleri beklenir. • Haftalık laboratuvar uygulamalarına aktif katılım, döneme yayılan öğrenme için kritik öneme sahiptir. • Öğrencilere, sürüm kontrol sistemleri (ör. Git) ve temel kod dokümantasyonu (yorum satırları, basit dokümanlar) kullanmaları tavsiye edilir. • Akademik dürüstlük ilkelerine kesinlikle uyulmalı; projelerde bireysel emek ve katkı açıkça belirtilmelidir. • Öğrencilerin, derste kullanılan programlama dilinin (ör. Java / C# / Python) resmî dokümantasyonuna düzenli olarak başvurmaları önerilir.
Ders kapsamında aşağıdaki konular ele alınır: • Nesne yönelimli programlamaya giriş, temel kavramlar • Sınıflar ve nesneler, özellikler (fields) ve metotlar (methods) • Kapsülleme (encapsulation) ve bilgi gizleme • Oluşturucular (constructors) ve nesne yaşam döngüsü • Statik üyeler ve yardımcı sınıflar • İlişkiler: birliktelik (association), bileşim (composition), kalıtım (inheritance) • Çok biçimlilik (polymorphism) ve geç bağlılık (late binding) • Arayüzler (interfaces) ve soyut sınıflar (abstract classes) • İstisna yönetimi (exception handling) • Temel koleksiyon sınıfları ve yineleyiciler • Nesne yönelimli tasarım ilkeleri (SOLID vb.) • Basit katmanlı mimari ve küçük ölçekli OOP proje geliştirme
| Hafta | Teorik | Uygulama | [OgretimYontemVeTeknikleri] | [OnHazirlik] |
|---|---|---|---|---|
| 1 | Nesneye yönelik programlama ile ilgili genel tanımlar. | |||
| 2 | Nesne yönelimli çözümleme ve tasarım | |||
| 3 | Veri tipleri, değişkenler, diziler | |||
| 4 | Operatörler | |||
| 5 | Döngüler | |||
| 6 | Sınıf kavramı | |||
| 7 | Nesne kavramı | |||
| 8 | Ara Sınav | |||
| 9 | Kurucu metotlar ve nesne referansları | |||
| 10 | Erişim seviyeleri (public, private, protected) | |||
| 11 | Kalıtım (Miras) ve super deyimi | |||
| 12 | Arayüzler | |||
| 13 | Soyut Sınıflar | |||
| 14 | Hata Yakalama | |||
| 15 | Final Sınavı |
• Bölüm tarafından belirlenen “Programlama Dilleri / Nesne Yönelimli Programlama” ders notları ve öğretim elemanı sunumları. • Ders boyunca sunulan örnek kodlar, laboratuvar yönergeleri ve proje dokümanları (LMS / Öğrenme Yönetim Sistemi üzerinden paylaşılacaktır). • Object-Oriented Programming in Java • Head First Object-Oriented Analysis and Design – Brett McLaughlin, Gary Pollice, David West.
Bu derste aşağıdaki etkinlik ve yöntemler planlanmaktadır: • Kuramsal ders anlatımı: Temel kavramlar ve kuramsal çerçeve, tahtada ve/veya sunum eşliğinde anlatılır. • Laboratuvar uygulamaları: Bilgisayar laboratuvarında, örnek programlar adım adım geliştirilir, hata ayıklama ve test çalışmaları yapılır. • Uygulamalı örnek çözümü: Gerçek hayattan senaryolar nesne yönelimli olarak modellenir, sınıf diyagramları ve kod örnekleri birlikte tartışılır. • Dönem projesi / mini projeler: Öğrenciler bireysel veya küçük gruplar hâlinde, nesne yönelimli prensipleri kullanarak küçük ölçekli bir yazılım projesi geliştirirler. • Sınıf içi tartışma ve geri bildirim: Tasarım tercihleri, kod kalitesi, yeniden kullanılabilirlik ve bakım kolaylığı üzerine kısa tartışmalar yürütülür; öğretim elemanı ve akran geribildirimi sağlanır.
| Yarıyıl (Yıl) İçi Etkinlikleri | Adet | Değer |
|---|---|---|
| Ara Sınav | 1 | 100 |
| Toplam | 100 | |
| Yarıyıl (Yıl) Sonu Etkinlikleri | Adet | Değer |
| Rapor Sunma | 1 | 30 |
| Proje Sunma | 1 | 30 |
| Proje Tasarımı/Yönetimi | 1 | 40 |
| 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 | 1 | 1 |
| Final Sınavı | 1 | 1 | 1 |
| Derse Katılım | 14 | 2 | 28 |
| Bireysel Çalışma | 14 | 2 | 28 |
| Ara Sınav İçin Bireysel Çalışma | 1 | 30 | 30 |
| Final Sınavı içiin Bireysel Çalışma | 1 | 38 | 38 |
| Toplam İş Yükü (saat) | 126 | ||
| PÇ 1 | PÇ 2 | PÇ 3 | PÇ 4 | PÇ 5 | PÇ 6 | PÇ 7 | PÇ 8 | PÇ 9 | PÇ 10 | PÇ 11 | PÇ 12 | PÇ 13 | PÇ 14 | PÇ 15 | |
| ÖÇ 1 | 5 | 3 | 4 | 3 | 3 | 5 | 5 | 4 | 3 | 3 | 4 | 4 | 4 | 3 | 4 |
| ÖÇ 2 | 1 | 5 | 2 | 1 | 1 | 4 | 4 | 3 | 3 | 2 | 3 | 3 | 3 | 2 | 4 |
| ÖÇ 3 | 1 | 2 | 3 | 3 | 4 | 4 | 4 | 3 | 4 | 5 | 5 | 4 | 4 | 3 | 4 |
| ÖÇ 4 | 1 | 3 | 1 | 1 | 1 | 2 | 2 | 1 | 2 | 2 | 3 | 5 | 5 | 1 | 3 |
| ÖÇ 5 | 1 | 1 | 2 | 2 | 3 | 2 | 2 | 1 | 2 | 2 | 2 | 2 | 2 | 5 | 3 |
| ÖÇ 6 | 1 | 1 | 3 | 3 | 4 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 4 | 3 |
| ÖÇ 7 | 1 | 2 | 2 | 1 | 2 | 3 | 3 | 2 | 3 | 3 | 3 | 3 | 3 | 3 | 3 |
| ÖÇ 8 | 2 | 1 | 1 | 1 | 1 | 2 | 2 | 2 | 2 | 4 | 2 | 2 | 2 | 3 | 3 |