| Dersin Kodu | Dersin Adı | Dersin Türü | Yıl | Yarıyıl | AKTS |
|---|---|---|---|---|---|
| BGT-203 | NESNE TABANLI PROGRAMLAMA II | Ders | 2 | 3 | 4,00 |
Önlisans
İleri düzey Nesne Tabanlı Programlama (OOP) kavramlarını (Kalıtım, Kapsülleme, Çok Biçimlilik vb.) Python dilinde uygulamalı olarak öğretmek ve öğrencileri veritabanı (SQLite/SQLAlchemy), API tasarımı (FastAPI), kimlik doğrulama (JWT) ve proje geliştirme süreçlerine hakim, modern backend geliştiricileri olarak hazırlamak.
Öğr. Gör. Süleyman Ezdemir
| 1 | Nesne Tabanlı Programlama'nın temel felsefesini ve mimarisini (Kapsülleme, Kalıtım, Çok Biçimlilik) Python üzerinde uygular. |
| 2 | Karmaşık verileri sınıflar (classes) ve nesneler (objects) aracılığıyla modelleyerek modüler ve okunabilir yazılımlar geliştirir. |
| 3 | Hata yönetimi (try-except) tekniklerini uygulayarak güvenli ve kesintisiz çalışan uygulamalar tasarlar. |
| 4 | FastAPI ve Pydantic kullanarak, veri doğrulama altyapısına sahip RESTful web servisleri (API) oluşturur. |
| 5 | İlişkisel veritabanlarını SQLAlchemy (ORM) yardımıyla yöneterek kalıcı veri kayıt, güncelleme ve silme (CRUD) operasyonlarını gerçekleştirir. |
| 6 | Web servislerine kimlik doğrulama (JWT) mekanizmaları entegre eder ve Postman gibi araçlarla servislerini test eder. |
Birinci Öğretim
NESNE TABANLI PROGRAMLAMA II
Programlama Temelleri veya NTP I derslerinin başarıyla tamamlanmış olması dersin anlaşılırlığını artırır. Bilgisayar laboratuvarında uygulamalı olarak yürütülür.
Nesne tabanlı programlamaya giriş, sınıflar (class) ve nesneler (object), kalıtım (inheritance), kapsülleme (encapsulation) ve çok biçimlilik (polymorphism), dunder metotlar, hata yönetimi (try-except), modüler proje yapısı, FastAPI ile web API tasarımı, Pydantic ile veri doğrulama, SQLite ve SQLAlchemy ile CRUD işlemleri, dış API entegrasyonu, basit kimlik doğrulama (JWT) ve Postman ile test süreçleri.
| Hafta | Teorik | Uygulama | Laboratuvar |
|---|---|---|---|
| 1 | Nesne Tabanlı Programlamaya Giriş ve Python Ekosistemi | Geliştirme ortamı kurulumu ve temel Python kodlama | |
| 2 | Veri Yapıları ve Manipülasyon | Liste, sözlük (dict) gibi yapıların pratikte kullanımı | |
| 3 | Sınıf (Class) ve Nesne (Object) Kavramları | Sınıf tanımlama, kurucu fonksiyon (__init__) yazma ve nesne türetme | |
| 4 | Nesne Tabanlı Programlamada Kalıtım (Inheritance) | Üst sınıf (super) ve alt sınıf yapılarının kodlanması | |
| 5 | Kapsülleme (Encapsulation) ve Çok Biçimlilik (Polymorphism) | Gizli değişkenler oluşturma ve metot overriding uygulamaları | |
| 6 | Dunder (Sihirli) Metotlar ve Hata Yönetimi (try-except) | Özel metot yazımı ve hata fırlatma senaryolarının kodlanması | |
| 7 | Nesne Tabanlı Programlamada Modüler Proje Yönetimi | Projeyi paketlere (package/module) bölme ve import etme | |
| 8 | Web Dünyasına Giriş ve FastAPI ile İlk Butonlu Web Servisi | FastAPI kurulumu, GET ve POST uç noktalarının kodlanması | |
| 9 | Pydantic ve Veri Doğrulama (Data Validation) | Pydantic modelleri oluşturarak API giriş verilerini denetleme | |
| 10 | Kalıcı Veritabanı: SQLite, SQLAlchemy ve CRUD Operasyonları | SQLAlchemy modelleri oluşturma, veritabanına kayıt ekleme ve sorgulama | |
| 11 | API'den API'ye İletişim (Dış Dünyadan Veri Çekme) | Requests kütüphanesi ile dış kaynaklardan JSON veri çekme | |
| 12 | API Güvenliği, Basit Kimlik Doğrulama ve Token (JWT) | JWT token üretme ve yetkilendirilmiş API uç noktası kodlama | |
| 13 | Postman ile Test ve Web Arayüzü ile API Entegrasyonu | Yazılan API'lerin Postman üzerinde test edilmesi | |
| 14 | Büyük Final: Proje Refactoring, Portföy Hazırlığı ve Kapanış | Öğrenci projelerinin incelenmesi ve kod iyileştirme (Refactoring) çalışmaları |
Ana Kaynaklar: Ders Notları ve Kod Deposu: github.com/ezfesoft Öğr. Gör. Süleyman Ezdemir tarafından paylaşılan haftalık sunumlar ve PDF materyalleri. Önerilen Ek Kaynaklar: Resmi Dokümantasyon: docs.python.org (Python 3.x Documentation) Kitap: `Learning Python` - Mark Lutz (O'Reilly Media) - Kapsamlı bir referans kitabı. Kitap: `Python Crash Course` - Eric Matthes - Pratik uygulamalar için. Çevrimiçi Platform: HackerRank ve LeetCode (Python algoritmaları ve veri yapıları pratikleri için). Çevrimiçi Kaynak: Real Python (realpython.com) - Derinlemesine tutorial ve makaleler.
Anlatım, Gösterip Yaptırma, Bilgisayar Başında Uygulama, Proje Geliştirme.
| 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 |
| Final Sınavı | 1 | 100 |
| 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) |
|---|---|---|---|
| Uygulama/Pratik | 10 | 4 | 40 |
| Laboratuvar | 14 | 4 | 56 |
| Problem Çözümü | 2 | 1 | 2 |
| Beyin Fırtınası | 2 | 2 | 4 |
| Proje Hazırlama | 2 | 2 | 4 |
| Proje Sunma | 2 | 2 | 4 |
| Proje Tasarımı /Yönetimi | 4 | 2 | 8 |
| Laboratuvar Ara Sınavı | 1 | 1 | 1 |
| Laboratuvar Sınavı | 1 | 1 | 1 |
| Toplam İş Yükü (saat) | 120 | ||
| 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 | PÇ 16 | PÇ 17 | PÇ 18 | PÇ 19 | PÇ 20 | PÇ 21 | PÇ 22 | PÇ 23 | PÇ 24 | |
| ÖÇ 1 | 4 | 5 | 5 | |||||||||||||||||||||
| ÖÇ 2 | 5 | 5 | ||||||||||||||||||||||
| ÖÇ 3 | 5 | 5 | 4 | |||||||||||||||||||||
| ÖÇ 4 | 5 | 5 | ||||||||||||||||||||||
| ÖÇ 5 | 5 | 5 | ||||||||||||||||||||||
| ÖÇ 6 | 4 | 5 | 5 |