Ders Bilgileri
| Ders Kodu | YPZ209 |
| Program | Yapay Zeka Mühendisliği |
| Dil | Türkçe |
| Düzey | Lisans |
| Türü | Zorunlu |
| Ön Koşul | Yok |
| Teori | 3 Saat |
| Uygulama | 1 Saat |
| Laboratuvar | — |
| Kredi | 3.50 |
| AKTS | 4.00 |
| Veriliş | Yüz yüze |
| Öğretim Üyesi | Dr. Öğr. Üyesi Ramazan Özgür Doğan |
Dersin Amacı
Bu dersin amacı öğrencilere nesne yönelimli programlama (OOP) prensiplerini derinlemesine öğretmek, algoritma tasarımı ve yüksek seviyeli programlama dilleri üzerinde ileri düzey beceriler kazandırmaktır. Öğrenciler soyut veri türleri, kalıtım, polimorfizm, çoklu iş parçacığı (thread) tabanlı programlama, hata ayıklama, test etme ve düzenli ifadeler (regular expressions) ile metin işleme konularını uygulamalı olarak öğreneceklerdir. Ayrıca öğrenciler, yapay zekâ bilimi kapsamında kullanılan veri bilimi ve yapay zekâ kütüphanelerinin (ör. NumPy, Pandas, PyTorch) hesaplama performansları hakkında bilgi sahibi olacak ve modern yazılım geliştirme araçları (ör. Docker) ile uygulama geliştirme pratiği kazanacaklardır.
Ders İçeriği
Nesne yönelimli programlama; kalıtım, polimorfizm ve soyut sınıflar; hata ayıklama ve istisna yönetimi; düzenli ifadeler ile metin işleme; çoklu iş parçacığı programlama; GitHub ile proje yönetimi; Docker ile uygulama konteynerleştirme; PyTorch üzerinde OOP ve yapay zekâ bilimi uygulamaları; tasarım desenleri.
Haftalık Program
| Hafta | Konu |
|---|---|
| 1 | Nesne Yönelimli Programlamaya Giriş |
| 2 | Kalıtım (Inheritance) I — Temel Kavramlar & GitHub Üzerinde Proje Paylaşımı ve Yönetimi |
| 3 | Kalıtım (Inheritance) II — Çoklu Kalıtım ve super() Kullanımı |
| 4 | Polimorfizm (Çok Biçimlilik) |
| 5 | Metot Örtme (Overriding) ve Metot Aşırı Yükleme (Overloading) |
| 6 | Soyut Sınıflar ve Arayüzler (Abstract Base Classes) |
| 7 | İstisna Yönetimi ve Hata Ayıklama |
| 8 | Düzenli İfadeler (Regular Expressions) — Metin İşleme ve Veri Temizleme |
| 9 | Ara Sınav |
| 10 | Thread Tabanlı Programlama — Çoklu İş Parçacığı Yönetimi |
| 11 | Docker ile Python Uygulamalarını Konteynerleştirme |
| 12 | PyTorch Üzerinde OOP İncelemesi I — Model Sınıfları ve Module Mirası |
| 13 | PyTorch Üzerinde OOP İncelemesi II — İleri Seviye Yapılar ve Yapay Zekâ Bilimi Uygulamaları |
| 14 | Tasarım Desenleri (Design Patterns) — Singleton, Factory, Observer Örnekleri |
| 15 | Dönem Projesi Teslimi ve Değerlendirme |
| 16 | Dönem Sonu Sınavı |
Değerlendirme
| Bileşen | Ağırlık |
|---|---|
| Dönem Sonu Sınavı | %50 |
| Ara Sınav | %25 |
| Proje | %25 |
Dersin Öğrenme Çıktıları
Bu dersi başarıyla tamamlayan öğrenciler:
- Düzenli ifadeler (regular expressions) ile metin işleme ve veri temizleme becerisi kazanır.
- Programda hata ayıklama ve istisna yönetimini gerçekleştirebilir.
- Nesne yönelimli programlamanın temel prensiplerini (sınıflar, kapsülleme) ve ileri kavramlarını (kalıtım, polimorfizm, soyut sınıflar) uygulayabilir.
- Çoklu iş parçacığı (thread) tabanlı programlama ve asenkron programlamayı uygulayabilir.
- Modern yazılım geliştirme araçlarını (ör. Docker) kullanarak uygulamaları paketleyip çalıştırabilir.
- Yapay zekâ bilimi kapsamında PyTorch üzerinde nesne yönelimli programlama yaklaşımını kavrayarak model sınıflarını geliştirebilir.
- Tasarım desenlerini (design patterns) uygulayarak yeniden kullanılabilir ve sürdürülebilir yazılım geliştirebilir.
- Uygulamalarla pratik yaparak geliştirme sürecini daha iyi kavrar.
Önerilen Ders Kitapları
- Ceder, N. (2025). The Quick Python Book (4th ed.). Manning.
- Gaddis, T. (2021). Starting Out with Python (5th ed.). Pearson.
- Liang, Y. D. (2013). Introduction to Programming Using Python. Pearson.
- Sweigart, A. (2019). Automate the Boring Stuff with Python. No Starch Press.