Ders AdıKodu Yerel KrediAKTS Ders (saat/hafta)Uygulama (saat/hafta)Laboratuar (saat/hafta)
Nesneye Yönelik ProgramlamaMTM366235300
ÖnkoşullarYok
YarıyılBahar
Dersin Diliİngilizce, Türkçe
Dersin SeviyesiLisans
Dersin TürüSeçmeli @ Matematik Mühendisliği Lisans Programı (%30 İngilizce)
Seçmeli @ Matematik 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üNilgün Güler Bayazıt
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
  • Python Object-Oriented Programming: Build robust and maintainable object-oriented Python applications and libraries, Fourth Edition Steven F. Lott Dusty Phillips
  • Python Tasarım Modellerinde Ustalaşma: Temel tasarım prensiplerini izleyerek temel Python modellerini tasarlayın , Üçüncü Baskı Kamon Ayeva Kasampalis
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
5Davranışsal UML Diyagramaları: Use case, Ardışıl ve State diyagramlarıKaynak Kitaplar ve Çevirimiçi Materyaller
6Arayüzler, çok biçimlilik ve SOLID prensipleriKaynak Kitaplar ve Çevirimiçi Materyaller
7 Kalıtım, soyut sınıflar ve bileşimKaynak Kitaplar ve Çevirimiçi Materyaller
8Ara Sınav 1
9Arayüzler, çok biçimlilik ve SOLID prensipleriKaynak Kitaplar ve Çevirimiçi Materyaller
10OOP'de istisna yönetimi ve hata yönetimiKaynak Kitaplar ve Çevirimiçi Materyaller
11Nesne Serileştirme, JSON, XML ve veritabanları ile çalışmaKaynak 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
14Proje sunumlarıKaynak Kitaplar ve Çevirimiçi Materyaller
15Proje SunumlarıKaynaklardaki ilgili bölüm
16Final

Değerlendirme Sistemi

EtkinliklerSayıKatkı Payı
Devam/Katılım00
Laboratuar
Uygulama
Arazi Çalışması
Derse Özgü Staj
Küçük Sınavlar/Stüdyo Kritiği
Ödev
Sunum/Jüri
Projeler130
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 Saati143
Laboratuar
Uygulama
Arazi Çalışması
Sınıf Dışı Ders Çalışması144
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)110
Final (Sınav Süresi + Sınav Hazırlık Süresi)110
Toplam İşyükü :
Toplam İşyükü / 30(s) :
AKTS Kredisi :
Diğer NotlarYok