| Ders Kodu: | COE203 | ||||
| Ders İsmi: | İleri Programlama Python | ||||
| Ders Yarıyılı: | Güz | ||||
| Ders Kredileri: | 
 | ||||
| Öğretim Dili: | İngilizce | ||||
| Ders Koşulu: | |||||
| Ders İş Deneyimini Gerektiriyor mu?: | Hayır | ||||
| Dersin Türü: | Zorunlu | ||||
| Dersin Seviyesi: | 
 | ||||
| Dersin Veriliş Şekli: | Yüz yüze | ||||
| Dersin Koordinatörü: | Dr. Öğr. Üy. YİĞİT BEKİR KAYA | ||||
| Dersi Veren(ler): | Dr. Öğr. Üyesi Yiğit Bekir Kaya | ||||
| Dersin Yardımcıları: | 
| Dersin Amacı: | Bu ders, programlama deneyimi olmayan öğrencilere Python'u, dosya sistemi otomasyonundan veri analizine kadar ilerleyen dört aşamalı proje aracılığıyla tanıtmaktadır. Ders, temel programlama yapılarını, dosya işlemlerini, API'ler ve kazıma yoluyla web etkileşimini, MySQL ile ilişkisel veritabanı yönetimini ve pandas ve matplotlib ile veri analizini kapsamaktadır. Problem karmaşıklığına, ölçeklenebilirlik gereksinimlerine ve kaynak kısıtlamalarına dayalı olarak farklı yaklaşımların ne zaman uygulanacağının anlaşılmasına özel önem verilecektir—depolama için dosyalardan veritabanlarına, veri toplama için API'lere karşı kazıma, ve basit betiklerden otomatik sistemlere. Öğrenciler sistematik problem çözme becerileri geliştirecek, sürdürülebilir ve iyi dokümante edilmiş kod yazmayı öğrenecek, güçlü hata yönetimi ve girdi doğrulama uygulayacak, ve gerçek dünya görevlerini otomatikleştiren, kalıcı veriyi yöneten ve veri kümelerinden içgörüler çıkaran eksiksiz uygulamalar geliştirerek uygulamalı deneyim kazanacaklardır. | 
| Dersin İçeriği: | Değişkenler ve veri tipleri, koşullu ifadeler, döngüler, listeler ve koleksiyonlar, fonksiyonlar ve modüler tasarım, dosya G/Ç işlemleri, dosya sistemi manipülasyonu, try-except ile hata yönetimi, HTTP istekleri ve API entegrasyonu, JSON ayrıştırma, BeautifulSoup ile web kazıma, düzenli ifadeler, görev zamanlama ve otomasyon, ilişkisel veritabanları ve SQL, Python-MySQL entegrasyonu, CRUD işlemleri, veritabanı şema tasarımı, komut satırı arayüzleri, NumPy dizileri, pandas DataFrame'leri, veri temizleme ve ön işleme, matplotlib görselleştirme, gruplama ve birleştirme, istatistiksel analiz | 
| Bu dersi başarıyla tamamlayabilen öğrenciler; 1) Veri yapıları, kontrol akışı, fonksiyonlar ve algoritmalar dahil olmak üzere temel programlama ilkelerini uygulayarak hesaplamalı problemleri tanımlamak, formüle etmek ve çözmek, gerçek dünya görevlerini otomatikleştirmek ve modern geliştirme araçları ile programlama tekniklerini etkin bir şekilde kullanma becerisini göstermek. 2) API'ler ve web kazıma yoluyla harici veri kaynaklarıyla etkileşime giren, otomatik izleme için durum bilgisini ve zamanlamayı yöneten, ve ağ güvenilirliği, hız sınırları ve hata yönetimi gibi gerçekçi kısıtlamalar altında çalışırken belirlenen fonksiyonel gereksinimleri karşılayan yazılım sistemleri tasarlamak ve geliştirmek. 3) İlişkisel veritabanı tasarım ilkeleri ve güvenli CRUD işlemleri kullanarak veritabanı destekli uygulamalar geliştirmek için çok disiplinli ekiplerde etkin çalışmak, aynı zamanda iş dağılımını koordine etmek, son teslim tarihlerini karşılamak, riskleri yönetmek ve üç haftalık geliştirme döngüleri içinde profesyonel dokümantasyon ve sürüm kontrolü ile fonksiyonel sistemler teslim etmek için proje yönetimi becerilerini uygulamak. 4) Birden fazla kaynaktan veri toplayarak, gerçek dünya veri kümelerini temizleyip ön işleyerek, modern analitik araçları kullanarak istatistiksel analizler gerçekleştirerek ve bulgularını profesyonel görselleştirmeler, yazılı raporlar ve teknik ve teknik olmayan kitlelere açık, kanıta dayalı sonuçlar sunan sözlü sunumlar aracılığıyla etkin bir şekilde ileterek veri analizi deneyleri planlamak ve yürütmek. | 
| Hafta | Konu | Ön Hazırlık | 
| 1) | Python Temellerine Giriş | |
| 2) | Listeler, Döngüler ve Dosya İşlemleri | |
| 3) | Fonksiyonlar ve İleri Dosya İşlemleri | |
| 4) | Proje 1 Sunumları | |
| 5) | Web Kazıma, Veri Çıkarma | |
| 6) | Otomasyon, Görev Zamanlama, Bildirimler | |
| 7) | Proje 2 Sunumları | |
| 8) | Veritabanı Uygulamaları | |
| 9) | İş Mantığı ve Kullanıcı Arayüzleri | |
| 10) | Proje 3 Sunumları | |
| 11) | Veri Temizleme ve Görselleştirme | |
| 12) | Veri Analizi | |
| 13) | Proje 4 Sunumları | 
| Ders Notları / Kitaplar: | https://www.coursera.org/specializations/python | 
| Diğer Kaynaklar: | https://www.coursera.org/specializations/python | 
| Ders Öğrenme Kazanımları | 1 | 2 | 3 | 4 | 
|---|---|---|---|---|
| Program Kazanımları | 
| Etkisi Yok | 1 En Düşük | 2 Orta | 3 En Yüksek | 
| Dersin Program Kazanımlarına Etkisi | Katkı Payı | 
| Yarıyıl İçi Çalışmaları | Aktivite Sayısı | Katkı Payı | 
| Laboratuvar | 13 | % 30 | 
| Projeler | 4 | % 30 | 
| Final | 1 | % 40 | 
| Toplam | % 100 | |
| YARIYIL İÇİ ÇALIŞMALARININ BAŞARI NOTU KATKISI | % 60 | |
| YARIYIL SONU ÇALIŞMALARININ BAŞARI NOTUNA KATKISI | % 40 | |
| Toplam | % 100 | |
| Aktiviteler | Aktivite Sayısı | İş Yükü | 
| Ders Saati | 13 | 39 | 
| Laboratuvar | 13 | 26 | 
| Sınıf Dışı Ders Çalışması | 14 | 28 | 
| Proje | 4 | 20 | 
| Final | 1 | 20 | 
| Toplam İş Yükü | 133 | |