GERİ DÖN

Ders Öğretim Planı


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
* Katkı Düzeyi : 1 Çok düşük 2 Düşük 3 Orta 4 Yüksek 5 Çok yüksek