COE203 Advanced Programming with Pythonİstinye ÜniversitesiAkademik Programlar Yazılım Mühendisliği(İngilizce)(Diğer Fakülteler İçin)YandalÖğrenciler için Genel BilgiDiploma EkiErasmus BeyanıUlusal Yeterlilikler

Ders Genel Tanıtım Bilgileri

Ders Kodu: COE203
Ders İsmi: İleri Programlama Python
Ders Yarıyılı: Güz
Ders Kredileri:
AKTS
6
Öğretim Dili: İngilizce
Ders Koşulu:
Ders İş Deneyimini Gerektiriyor mu?: Hayır
Dersin Türü: Zorunlu
Dersin Seviyesi:
Lisans TYYÇ:6. Düzey QF-EHEA:1. Düzey EQF-LLL:6. Düzey
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 Amaç ve İçeriği

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

Öğrenme Kazanımları

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.

Ders Akış Planı

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ı

Kaynaklar

Ders Notları / Kitaplar: https://www.coursera.org/specializations/python
Diğer Kaynaklar: https://www.coursera.org/specializations/python

Ders - Program Öğrenme Kazanım İlişkisi

Ders Öğrenme Kazanımları

1

2

3

4

Program Kazanımları

Ders - Öğrenme Kazanımı İlişkisi

Etkisi Yok 1 En Düşük 2 Orta 3 En Yüksek
       
Dersin Program Kazanımlarına Etkisi Katkı Payı

Ölçme ve Değerlendirme

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

İş Yükü ve AKTS Kredisi Hesaplaması

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