| Dersin Amacı: |
Öğrencilerin Java’yı bir araç olarak kullanarak nesne yönelimli programlamanın (NYP/OOP) temel ilkelerini ve tasarım yaklaşımını kavramalarını; gerçekçi yazılım problemlerini analiz edip nesne yönelimli olarak modelleyerek (örn. UML ile) bakımı kolay, genişletilebilir ve yeniden kullanılabilir yazılımlar geliştirebilmelerini sağlamaktır. Ders kapsamında öğrenciler, temiz kod ve temel yazılım tasarım prensiplerini (örn. SOLID) uygulayacak, birim testleri ile çözümü doğrulayacak ve Git tabanlı sürüm kontrolü ile bireysel/ekip projesi geliştirerek modern yazılım geliştirme iş akışını (commit, branch, merge, pull request, code review) deneyimleyeceklerdir. |
| Dersin İçeriği: |
Bu derste, nesne tabanlı programlamanın (OOP) temel kavramları ve Java programlama dili ele alınmaktadır. Öğrenciler, sınıf ve nesne yapıları, kapsülleme, miras alma, çok biçimlilik ve soyutlama gibi kavramları öğrenerek nesne yönelimli yazılım geliştirme becerisi kazanırlar. Arayüzler ve soyut sınıflar kullanılarak kodun yeniden kullanılabilirliği artırılırken, istisna yönetimi ile hata kontrol mekanizmaları incelenir. Ayrıca, dosya işlemleri, giriş/çıkış (I/O) işlemleri ve Java koleksiyonları gibi konulara değinilerek veri yönetimi konusuna giriş yapılır. Ders kapsamında, OOP prensipleri doğrultusunda projeler geliştirilerek teorik bilgilerin uygulamaya dönüştürülmesi sağlanır. |
Ders Öğrenme Çıktıları (DÖÇ), dersi başarı ile tamamlayan öğrencilerin kendilerinden sahip olmaları beklenen bilgi, beceri ve yetkinlikleri ifade eder. Bu bağlamda, bu ders için tanımlanmış olan Ders Öğrenme Çıktıları aşağıda verilmektedir.
|
|
|
|
| Bilgi
(Kuramsal ve/veya olgusal bilgi olarak tanımlanmıştır.)
|
1) Nesne tabanlı programlamanın temel ilkelerini (sınıf, nesne, kapsülleme, kalıtım, çok biçimlilik) açıklar ve örnek programlarla uygular.
|
2) Kodun sürdürülebilirliğini artırmak için SOLID/temiz kod ilkelerini uygular, gerekli durumlarda refactoring yapar ve tasarım kararlarının etkisini değerlendirir.
|
| Beceriler
(Bilişsel ve/veya uygulama becerileri olarak tanımlanmıştır.)
|
1) Soyutlama, kapsülleme, kalıtım ve çok biçimlilik ilkelerini uygun yerlerde seçerek uygular; kalıtım–bileşim tercihlerini gerekçelendirir.
|
2) Java kullanarak nesne yönelimli tasarımı gerçekler; arayüz /soyut sınıf, erişim belirleyiciler, istisna yönetimi gibi mekanizmaları doğru biçimde kullanır ve çalışır bir program geliştirir.
|
| Yetkinlikler
("Bağımsız Çalışabilme", "Sorumluluk Alabilme", "Öğrenme", "İletişim ve Sosyal" ve "Alana Özgü" yetkinlikler olarak tanımlanmıştır.)
|
1) Geliştirdiği bileşenler için birim testleri yazar (örn. JUnit), hataları ayıkladıktan sonra düzeltir ve test sonuçlarına göre çözümü iyileştirir.
|
2) Proje geliştirme sürecinde Git kullanarak sürüm kontrolü yürütür: anlamlı commit’ler atar, branch/merge yönetir, pull request ve code review adımlarıyla değişiklikleri yönetir ve çatışmaları çözer.
|
3) Projesini ekip çalışmasına uygun biçimde dokümante eder ve sunar (README/JavaDoc/tasarım notları); takım içinde görev paylaşımı yaparak etkili iletişim ve iş birliği sergiler; temel profesyonel/etik kurallara (kaynak gösterme, lisans/fikri haklar, akademik dürüstlük) uyar.
|
| Hafta |
Konu |
Materyal Paylaşımı * |
|
Ön Hazırlık |
Pekiştirme |
| 1) |
Programlama paradigmalarına giriş: prosedürel programlama ve nesne tabanlı/nesne yönelimli programlama; temel kavramlar ve karşılaştırma. |
online.beykoz.edu.tr adresinde bulunan ders notları
Materyal
|
Materyal
|
| 2) |
Mesajlar ve metotlar; sınıf ve nesne oluşumu; veri tipleri; bileşim (composition) ve soyutlama (abstraction) mekanizmalarına giriş. |
online.beykoz.edu.tr adresinde bulunan ders notları
Materyal
|
Materyal
|
| 3) |
UML’ye giriş; kullanım durumu (Use Case) diyagramları; sınıf diyagramları; sıralama (Sequence) diyagramları; etkinlik (Activity) diyagramları ve örnek modelleme. |
online.beykoz.edu.tr adresinde bulunan ders notları
Materyal
|
Materyal
|
| 4) |
Sınıf katmanları ve sınıf hiyerarşileri; kalıtım; metot–sınıf bağlamı; metot yükleme (overloading) ve metodu yeniden tanımlama (overriding). |
online.beykoz.edu.tr adresinde bulunan ders notları
Materyal
|
Materyal
|
| 5) |
Sarmalama (encapsulation); arayüz (interface) kavramı ve arayüz gerçekleştirme; statik değişkenler ve statik metotlar. |
online.beykoz.edu.tr adresinde bulunan ders notları
Materyal
|
Materyal
|
| 6) |
Çoklu işlevler: çok biçimlilik (polymorphism) ve dinamik bağlama; soyutlama ile birlikte kullanım senaryoları. |
online.beykoz.edu.tr adresinde bulunan ders notları
Materyal
|
Materyal
|
| 7) |
Nesne tabanlı tasarım: sorumlulukların belirlenmesi; bileşenlerin tanımlanması; sınıf sorumluluklarının ayrıştırılması ve tasarımın olgunlaştırılması. |
online.beykoz.edu.tr adresinde bulunan ders notları
Materyal
|
Materyal
|
| 8) |
Ara Sınav. |
online.beykoz.edu.tr adresinde bulunan ders notları
Materyal
|
Materyal
|
| 8) |
Ara Sınav. |
online.beykoz.edu.tr adresinde bulunan ders notları
Materyal
|
Materyal
|
| 9) |
Dinamik bellek kullanımı; nesnelerin kopyalanması; kopyalama stratejileri ve klonlama (cloning) yaklaşımları. |
online.beykoz.edu.tr adresinde bulunan ders notları
Materyal
|
Materyal
|
| 10) |
Statik ve dinamik davranış; genel yapılar (generics) ve tür güvenliği; tasarıma etkileri ve kullanım örnekleri. |
online.beykoz.edu.tr adresinde bulunan ders notları
Materyal
|
Materyal
|
| 11) |
Nesne yaşam döngüsü: nesne oluşturma ve yok etme; kaynak yönetimi ve yaşam döngüsü yönetimi yaklaşımları. |
online.beykoz.edu.tr adresinde bulunan ders notları
Materyal
|
Materyal
|
| 12) |
Sınıf yansıması (reflection): çalışma zamanında tür bilgisi; sınıf/metot/alan erişimi; kullanım alanları ve riskler. |
online.beykoz.edu.tr adresinde bulunan ders notları
Materyal
|
Materyal
|
| 13) |
Sınıfların yüklenmesi: sınıf yükleyiciler (class loading); çalışma zamanı yükleme mantığı; modülerlik ve eklenti yaklaşımı. |
online.beykoz.edu.tr adresinde bulunan ders notları
Materyal
|
Materyal
|
| 14) |
Sınıfların nesne olarak ele alınması: Class nesnesi kavramı; meta-programlama yaklaşımı; dönem sonu uygulama/örnekler. |
online.beykoz.edu.tr adresinde bulunan ders notları
Materyal
|
Materyal
|
| |
Program Öğrenme Çıktıları |
Katkı Oranı (1-5) |
| 1) |
Matematik, fen bilimleri, temel mühendislik ve yazılım mühendisliği disiplinine özgü konularda bilgi; bu bilgileri, karmaşık mühendislik problemlerinin çözümünde kullanabilme becerisi. |
3 |
| 2) |
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. |
3 |
| 3) |
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. |
4 |
| 4) |
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. |
5 |
| 5) |
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. |
1 |
| 6) |
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 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. |
2 |
| 8) |
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. |
3 |
| 9) |
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. |
3 |
| 10) |
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. |
2 |
| 11) |
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. |
3 |
| ÖĞRENME VE ÖĞRETME ETKİNLİKLERİ İŞ YÜKÜ |
| Öğrenme ve Öğretme Etkinlikleri |
Etkinlik Sayısı/Yarıyıl |
Süresi (saat) |
Toplam İş Yükü |
| Ders |
14 |
1 |
14 |
| Laboratuvar |
14 |
2 |
28 |
| Uygulama |
5 |
4 |
20 |
| Derse Özgü Staj |
0 |
0 |
0 |
| Arazi Çalışması |
0 |
0 |
0 |
| Sınıf Dışı Ders Çalışması |
8 |
8 |
64 |
| Sunum / Seminer |
0 |
0 |
0 |
| Proje |
1 |
5 |
5 |
| Ödevler |
0 |
0 |
0 |
| Öğrenme ve Öğretme Etkinlikleri Toplam İş Yükü |
- |
- |
131 |
| ÖLÇME VE DEĞERLENDİRME ETKİNLİKLERİ İŞ YÜKÜ |
| Ölçme ve Değerlendirme Etkinlikleri |
Etkinlik Sayısı/Yarıyıl |
Süresi (saat) |
Toplam İş Yükü |
| Kısa Sınav |
0 |
0 |
0 |
| Ara Sınavlar |
1 |
10 |
10 |
| Yarıyıl Sonu Sınavı |
1 |
12 |
12 |
| Ölçme ve Değerlendirme Etkinlikleri Toplam İş Yükü |
- |
- |
22 |
| TOPLAM İŞ YÜKÜ (Öğrenme ve Öğretme + Ölçme ve Değerlendirme Etkinlikleri) |
153 |
| DERSİN AKTS KREDİSİ (Toplam İş Yükü/25.5 Saat) |
6 |