Ders AdıKodu Yerel KrediAKTS Ders (saat/hafta)Uygulama (saat/hafta)Laboratuar (saat/hafta)
Nesneye Yönelik ProgramlamaMTM452136300
ÖnkoşullarYok
YarıyılBahar
Dersin Diliİngilizce, Türkçe
Dersin SeviyesiLisans
Dersin TürüSeçmeli @ Matematik Mühendisliği Lisans Programı
Ders KategorisiTemel Meslek Dersleri
Dersin Veriliş ŞekliYüz yüze
Dersi Sunan Akademik BirimMatematik Mühendisliği Bölümü
Dersin KoordinatörüAydın Seçer
Dersi Veren(ler)Aydın Seçer, Nilgün Güler Bayazıt
Asistan(lar)ıHandenur Esen
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 güçlü ve ölçeklenebilir yazılım sistemleri tasarlamalarını sağlamaktır.
Dersin İçeriğiBu ders, nesne tabanlı programlamaya (OOP) giriş yaparak başlar ve nesne temelli düşünme, tasarım prensipleri ve OOP tarihini ele alır. Temel kavramlar, özellikler, yöntemler, olaylar, kontrol yapıları, döngüler ve diziler gibi OOP temelleri üzerinde durulur. İlkel ve referans tipler, veri yapıları ve algoritmalar incelenirken, listeler, yığınlar, kuyruklar ve sözlükler gibi yapıların OOP'deki uygulamalarına değinilir. Dersin ilerleyen kısımlarında, nesne ve sınıf tasarımı, Birleşik Modelleme Dili (UML) ve sınıf, nesne, aktivite diyagramları gibi çeşitli UML diyagramları üzerinde çalışılır. Kalıtım, soyut sınıflar, bileşim, arabirimler, çok biçimlilik ve SOLID prensipleri gibi kavramlar incelenir. Ayrıca OOP'de istisna ve hata yönetimi ele alınır. Ara sınavın ardından, bellek yönetimi, çöp toplama ve kaynak işleme gibi konulara odaklanılır. Nesne serileştirme, JSON, XML ve veritabanları ile çalışma incelenirken, eşzamanlılık, paralel programlama ve asenkron programlama gibi ileri düzey konulara geçilir. Diğer tasarım desenleri, mimari desenler (MVC, MVVM, vb.), mikroservisler ve API geliştirme üzerinde durulur. Son olarak, yazılım mühendisliği prensipleri, çevik metodolojiler, sürüm kontrol sistemleri, kod incelemeleri ve test etme gibi konular incelenir. Ders final sınavı ile sona erer.
Ders Kitabı / Malzemesi / Önerilen Kaynaklar
  • Kitap: "Clean Architecture: A Craftsman's Guide to Software Structure and Design" by Robert C. Martin - Bu kitap, mimari ve tasarım prensiplerine odaklanarak nesne yönelimli programlamaya güçlü bir temel sağlar.
  • Kitap: "Design Patterns and Best Practices: A comprehensive guide to building smart and reusable code" by Kamaljeet Singh and Adrian Ianculescu - Bu kitap, tasarım desenleri ve en iyi uygulamalar hakkında bilgi sunar.
  • Kitap: "Effective Object-Oriented Software Construction: Concepts, Practices, and Metrics" by Kayshav Dattatri - Bu kitap etkili nesne yönelimli yazılım geliştirme süreçlerine odaklanarak, OOP kavramlarını, uygulamalarını ve ölçümlerini kapsamlı bir şekilde ele almaktadır.
  • Online Kaynak: Coursera: https://www.coursera.org/
  • Online Kaynak: Pluralsight: https://www.pluralsight.com/browse?=&q=oop&type=all&sort=default
  • Online Kaynak: Udemy:https://www.udemy.com/courses/search/?src=ukw&q=oop
Opsiyonel Program BileşenleriYok

Ders Öğrenim Çıktıları

  1. Nesne tabanlı düşünme becerisi kazandırır
  2. Yazılım geliştirme becerisini arttırır
  3. Yazılım hatalarını yönetme ve işleme yeteneğinin gelişmesini sağlar
  4. Veri işleme ve analiz yeteneklerini geliştirir
  5. Karmaşık yazılım projelerinde işlevsel ve ölçeklenebilir yazılım mimarileri oluşturmayı öğrenir

Ders Öğrenim Çıktısı & Program Çıktısı Matrisi

DÖÇ-1DÖÇ-2DÖÇ-3DÖÇ-4DÖÇ-5

Haftalık Konular ve İlgili Ön Hazırlık Çalışmaları

HaftaKonularÖn Hazırlık
1Nesne Tabanlı Programlamaya (OOP) Giriş: Nesne temelli düşünme, tarih ve tasarım prensipleriKaynak Kitaplar ve Çevirimiçi Materyaller
2OOP temelleri: Özellikler, metotlar, olaylar, kontrol yapıları, döngüler ve dizilerKaynak Kitaplar ve Çevirimiçi Materyaller
3Veri yapıları ve algoritmalar: İlkel ve referans tipler, listeler, yığınlar, kuyruklar, sözlükler ve OOP'deki uygulamalarıKaynak Kitaplar ve Çevirimiçi Materyaller
4Nesne ve sınıf tasarımı, Birleşik Modelleme Dili (UML): Sınıf diyagramları, nesne diyagramları ve aktivite diyagramlarıKaynak Kitaplar ve Çevirimiçi Materyaller
5Kalıtım, soyut sınıflar ve bileşimKaynak Kitaplar ve Çevirimiçi Materyaller
6Arayüzler, çok biçimlilik ve SOLID prensipleriKaynak Kitaplar ve Çevirimiçi Materyaller
7OOP'de istisna yönetimi ve hata yönetimiKaynak Kitaplar ve Çevirimiçi Materyaller
8Ara Sınav 1 / Uygulama veya Konu Tekrarı
9Bellek yönetimi, çöp toplama ve kaynak işlemeKaynak Kitaplar ve Çevirimiçi Materyaller
10Nesne Serileştirme, JSON, XML ve veritabanları ile çalışmaKaynak Kitaplar ve Çevirimiçi Materyaller
11Eşzamanlılık, paralel programlama ve asenkron programlamaKaynak Kitaplar ve Çevirimiçi Materyaller
12Diğer tasarım desenleri ve mimari desenler (MVC, MVVM, vb.), mikroservisler ve API geliştirmeKaynak Kitaplar ve Çevirimiçi Materyaller
13Yazılım mühendisliği prensipleri: Çevik metodolojiler, sürüm kontrol sistemleri, kod incelemeleri ve test etmeKaynak Kitaplar ve Çevirimiçi Materyaller
14Bulut bilişim ve sunucusuz mimariler: Modern yazılım geliştirmede dağıtım, ölçeklenebilirlik ve güvenlik konularıKaynak Kitaplar ve Çevirimiçi Materyaller
15Final

Değerlendirme Sistemi

EtkinliklerSayıKatkı Payı
Devam/Katılım110
Laboratuar
Uygulama
Arazi Çalışması
Derse Özgü Staj
Küçük Sınavlar/Stüdyo Kritiği
Ödev
Sunum/Jüri
Projeler120
Seminer/Workshop
Ara Sınavlar130
Final140
Dönem İçi Çalışmaların Başarı Notuna Katkısı
Final Sınavının Başarı Notuna Katkısı
TOPLAM100

AKTS İşyükü Tablosu

EtkinliklerSayıSüresi (Saat)Toplam İşyükü
Ders Saati133
Laboratuar
Uygulama
Arazi Çalışması
Sınıf Dışı Ders Çalışması136
Derse Özgü Staj
Ödev
Küçük Sınavlar/Stüdyo Kritiği
Projeler120
Sunum / Seminer
Ara Sınavlar (Sınav Süresi + Sınav Hazırlık Süresi)115
Final (Sınav Süresi + Sınav Hazırlık Süresi)120
Toplam İşyükü :
Toplam İşyükü / 30(s) :
AKTS Kredisi :
Diğer NotlarYok