DERSİN GENEL BİLGİLERİ

Ders Kodu Ders Adı Yıl Yarıyıl Teorik Pratik Kredi AKTS
50612METOZ-BLP0112 Programlama Dilleri II 1 Bahar 2 1 3 6
Dersin Türü: Zorunlu
Dersin Düzeyi: Önlisans      TYYÇ:5. Düzey      QF-EHEA:Kısa Düzey      EQF-LLL:5. Düzey
Dersin Öğretim Dili: Turkish
Dersin Ön/Yan Koşulu: Yoktur
Dersin Veriliş Şekli: Yüz yüze
Dersin Koordinatörü: Öğretim Görevlisi İHSAN ARVAS
Dersin Öğretim Eleman(lar)ı:

Dersin Kategorisi:

BÖLÜM II: DERSİN TANITIMI

Dersin Amacı ve İçeriği

Dersin Amacı: Bu dersin amacı, temel Python bilgisine sahip öğrencilerin programlama becerilerini geliştirmek, Python'da veri yapıları, dosya işlemleri, hata yönetimi, nesne tabanlı programlama (OOP) ve ileri seviye Python kütüphanelerini kullanarak kapsamlı projeler geliştirmelerini sağlamaktır.
Dersin İçeriği: Bu ders, Python programlama dilini ileri düzeyde öğrenmek isteyen öğrenciler için tasarlanmıştır. Ders, temel Python bilgisine sahip olan öğrencilere, veri yapıları, fonksiyonlar, dosya işlemleri, hata yönetimi ve nesne tabanlı programlama (OOP) gibi konularda derinlemesine bilgi sunmayı amaçlamaktadır. İleri düzey veri yapılarıyla başlayarak, listeler, kümeler, demetler ve sözlükler üzerinde detaylı işlemler yapılacak ve veri yapılarının etkin kullanımı sağlanacaktır. Fonksiyonlar ve modüller bölümünde, lambda fonksiyonları, modül oluşturma ve modül kullanımı gibi konular ele alınacaktır. Dosya işlemleri kısmında ise metin dosyalarının yanı sıra CSV ve JSON dosyalarıyla çalışma üzerine odaklanılacak, bu sayede verilerin işlenmesi ve saklanması öğretilecektir.
Hata yönetimi bölümünde, öğrenciler try/except bloklarını kullanarak Python'da hata yakalama ve yönetme becerilerini geliştirecek, özel istisna sınıfları oluşturarak daha sağlam kodlar yazmayı öğrenecektir. Nesne tabanlı programlama (OOP) konusu, sınıflar, miras yapıları, kapsülleme ve polimorfizm gibi kavramlar üzerinden detaylı bir şekilde işlenecek, öğrencilere gerçek dünyada kullanılabilecek nesne tabanlı uygulamalar geliştirme becerisi kazandırılacaktır.
Veri analizi bölümünde ise NumPy ve pandas kütüphaneleri ile veri işleme ve analiz etme yöntemleri öğretilirken, matplotlib ile veri görselleştirme tekniklerine de değinilecektir. Ayrıca, RegEx (Regular Expressions), itertools, collections, ve datetime gibi ileri seviye Python kütüphaneleri ile daha karmaşık veri işlemleri gerçekleştirilecektir. Öğrenciler, ders boyunca edindikleri bilgileri, gerçek dünya problemlerine yönelik bir proje geliştirerek uygulama fırsatı bulacak ve bu süreçte hem teorik hem de pratik becerilerini pekiştirecektir.

Derse Özgü Kurallar

Yoktur.

Dersin Öğrenme Çıktıları (DÖÇ)

Ders Öğrenme Çıktıları (DÖÇ), dersi başarı ile tamamlayan öğrencilerin kendilerinden sahip olmaları beklenen bilgi, beceri ve yetkinlikleri ifade eder. Bu bağlamda, bu ders için tanımlanmış olan Ders Öğrenme Çıktıları aşağıda verilmektedir.
Bilgi (Kuramsal ve/veya olgusal bilgi olarak tanımlanmıştır.)
  1) Gelişmiş Veri Yapılarını Kullanabilme: Öğrenciler, Python'daki listeler, kümeler, demetler ve sözlükler gibi gelişmiş veri yapılarını etkili bir şekilde kullanarak karmaşık veri yönetimi yapabileceklerdir.
  2) Fonksiyon ve Modül Yazımı: Öğrenciler, kendi fonksiyonlarını yazarak ve modüller oluşturarak kodun yeniden kullanılabilirliğini artırma becerisi kazanacaklardır. Lambda ifadeleri ve yüksek düzeyli fonksiyonlar hakkında bilgi sahibi olacaklardır.
  3) Öğrenciler, Python'un standart kütüphanelerini (örneğin, math, datetime, random gibi) ve üçüncü taraf kütüphaneleri (örneğin, NumPy, pandas, matplotlib) etkin bir şekilde kullanarak, çeşitli programlama görevlerini yerine getirme yeteneği kazanacaklardır.
Beceriler (Bilişsel ve/veya uygulama becerileri olarak tanımlanmıştır.)
  1) Nesne Tabanlı Programlama (OOP) Uygulamaları: Öğrenciler, sınıf ve nesne kavramlarını anlayarak, miras, kapsülleme ve polimorfizm gibi OOP prensiplerini uygulayarak nesne tabanlı projeler geliştirme yeteneğine sahip olacaklardır.
Yetkinlikler ("Bağımsız Çalışabilme", "Sorumluluk Alabilme", "Öğrenme", "İletişim ve Sosyal" ve "Alana Özgü" yetkinlikler olarak tanımlanmıştır.)
  1) Veri Analizi ve Görselleştirme: Öğrenciler, NumPy ve pandas kütüphanelerini kullanarak veri analizi yapabilecek, matplotlib ile bu verileri etkili bir şekilde görselleştirebileceklerdir.

Haftalık Ders Planı

Hafta Konu
Materyal Paylaşımı *
Ön Hazırlık Pekiştirme
1) Derse Giriş ve Python'un İleri Düzey Kullanımı: Temel tekrar ve ileri seviye veri yapıları Yoktur. Yoktur.
2) Fonksiyonlar ve Modüller: Fonksiyonlar, lambda ifadeleri, modül oluşturma ve kullanımı Yoktur Yoktur
3) Dosya İşlemleri: Metin dosyaları, CSV ve JSON dosyaları ile çalışma Yoktur. Yoktur.
4) Hata Yönetimi: Try/Except blokları ve özel istisna sınıfları oluşturma Yoktur. Yoktur.
5) Nesne Tabanlı Programlama (OOP): Sınıf oluşturma ve nesne yapısı Yoktur. Yoktur.
6) OOP: Miras ve kapsülleme teknikleri Yoktur. Yoktur.
7) Arasınav Yoktur Yoktur
8) OOP: Polimorfizm ve özel metodlar (Magic Methods) Yoktur. Yoktur.
9) Python'da Veri Analizi I: NumPy ve pandas ile veri işleme Yoktur Yoktur
10) Python'da Veri Analizi II: matplotlib ile veri görselleştirme Yoktur. Yoktur.
11) İleri Seviye Python Kütüphaneleri: itertools, collections ve datetime Yoktur. Yoktur.
12) RegEx ile Metin İşleme ve İleri Seviye Liste İşlemleri Yoktur. Yoktur.
13) Proje Çalışması ve Geri Bildirim Oturumu Yoktur. Yoktur.
14) Proje Çalışması ve Geri Bildirim Oturumu Yoktur. Yoktur
*Bu alan öğrencilerin ders öncesi hazırlık ve sonrası dersi pekiştirme için paylaşılan ders materyallerini içerir.

Ders İçin Zorunlu/Önerilen Kaynaklar

Ders Notları / Kitaplar: İlgili öğretim elemanının ders notları/Lecture notes of the relevant instructor Materyal
Diğer Kaynaklar: İşte Python ile ilgili ileri düzey konuları kapsayan beş referans kitap:

1. "Fluent Python"
*Yazar:* Luciano Ramalho
*Yayıncı:* O'Reilly Media
*Yayın Yılı:* 2015
2. "Python Cookbook"
*Yazarlar:* David Beazley, Brian K. Jones
*Yayıncı:* O'Reilly Media
*Yayın Yılı:* 2013
3. "Learning Python"
*Yazarlar:* Mark Lutz
*Yayıncı:* O'Reilly Media
*Yayın Yılı:* 2013
4. "Python for Data Analysis"
*Yazar:* Wes McKinney
*Yayıncı:* O'Reilly Media
*Yayın Yılı:* 2018
5. "Effective Python: 59 Specific Ways to Write Better Python"
*Yazar:* Brett Slatkin
*Yayıncı:* Addison-Wesley Professional
*Yayın Yılı:* 2015

Materyal

Dersin Program Öğrenme Çıktılarına Katkı Düzeyi

Etkisi Yok 1 En Düşük 2 Düşük 3 Orta 4 Yüksek 5 En Yüksek
           
Program Öğrenme Çıktıları Katkı Oranı (1-5)
1) Programlama dillerinin temel yapılarını ve algoritmaları kullanarak yazılım geliştirme becerisi kazanır.
2) Nesne yönelimli programlama ilkelerini kullanarak fonksiyonel ve sürdürülebilir yazılımlar geliştirir. 3
3) Veri tabanı tasarımı ve yönetimini etkin bir şekilde gerçekleştirir, SQL sorguları yazar ve uygular. 5
4) Web teknolojileri ve internet programlama araçları kullanarak dinamik ve kullanıcı dostu web uygulamaları tasarlar. 5
5) Veri tabanı tasarımı ve yönetimini etkin bir şekilde gerçekleştirir, SQL sorguları yazar ve uygular.
6) Mesleki etik ilkelere uygun olarak yazılım geliştirme süreçlerini yönetir.
7) Yapay zeka temelleri ve Python programlama bilgisiyle yazılım projelerinde basit yapay zeka uygulamaları geliştirir.
8) Veri güvenliği ilkelerine uygun olarak veritabanı koruma ve savunma yöntemleri uygular.
9) Mobil uygulama geliştirme süreçlerini kavrayarak temel düzeyde mobil uygulamalar geliştirir.
10) Kullanıcı ihtiyaçlarını analiz ederek uygun yazılım çözümleri tasarlar ve uygular.
11) Ağ yapıları ve protokollerini kullanarak temel ağ kurulum ve yönetim işlemlerini gerçekleştirir.
12) Görsel ve kullanıcı odaklı arayüz tasarım ilkelerini kullanarak işlevsel ve estetik yazılım uygulamaları geliştirir.

BÖLÜM IV: DERSİN ÖĞRENME VE ÖĞRETME YÖNTEMLERİ İLE ÖLÇME VE DEĞERLENDİRME YÖNTEMLERİ

Dersin Öğrenme ve Öğretme Yöntemleri

(Üniversitemiz genelinde kullanılan tüm öğrenme ve öğretme yöntemleri sistematik olarak yönetilmektedir. Akademik birimlerden gelen talepler doğrultusunda bölüm/programların öğrenme ve öğretme yöntemleri ilgili kurullarımız tarafından değerlendirilmekte ve uygun bulunursa, üniversite havuzunda toplanmaktadır. Bölüm ve programlar, kendileri için program tasarımlarına uygun olan yöntemleri bu havuzdan seçebilmektedirler. Benzer şekilde, dersler için kullanılması uygun görülen yöntemler de programlar düzeyinde belirlenmiş olan yöntemler arasından seçilebilmektedir.)
Programa Genelinde Kullanılan Öğrenme ve Öğretme Yöntemleri
Ders İçin Kullanılan Öğrenme ve Öğretme Yöntemleri
Anlatım
Problem Çözme
Gösterip Yaptırma
Laboratuvar

Dersin Ölçme ve Değerlendirme Yöntemleri

(Üniversitemiz genelinde kullanılan tüm ölçme ve değerlendirme yöntemleri sistematik olarak yönetilmektedir. Akademik birimlerden gelen talepler doğrultusunda bölüm/programların ölçme ve değerlendirme yöntemleri ilgili kurullarımız tarafından değerlendirilmekte ve uygun bulunursa, üniversite havuzunda toplanmaktadır. Bölüm ve programlar, kendileri için program tasarımlarına uygun olan yöntemleri bu havuzdan seçebilmektedirler. Benzer şekilde, dersler için kullanılması uygun görülen yöntemler de programlar düzeyinde belirlenmiş olan yöntemler arasından seçilebilmektedir.)
Programa Genelinde Kullanılan Ölçme ve Değerlendirme Yöntemleri
Ders İçin Kullanılan Ölçme ve Değerlendirme Yöntemleri
Ara Sınav
Yarıyıl Sonu Sınavı
Kısa Sınav

Dersin Ölçme ve Değerlendirme Yöntemlerinin Başarı Notuna Katkısı

Ölçme ve Değerlendirme Yöntemleri Uygulama Sayısı / Yarıyıl Katkı Oranı
Kısa Sınavlar 2 % 20.00
Ara Sınavlar 1 % 30.00
Yarıyıl Sonu Sınavı 1 % 50.00
Toplam % 100
YARIYIL İÇİ ÖLÇME VE DEĞERLENDİRME YÖNTEMLERİNİN BAŞARI NOTUNA KATKI ORANI % 50
YARIYIL SONU SINAVININ BAŞARI NOTUNA KATKI ORANI % 50
Toplam % 100

BÖLÜM V: DERSİN İŞ YÜKÜ VE AKTS KREDİSİ

ÖĞRENME VE ÖĞRETME ETKİNLİKLERİ İŞ YÜKÜ
Öğrenme ve Öğretme Etkinlikleri Etkinlik Sayısı/Yarıyıl Süresi (saat) Toplam İş Yükü
Ders 14 1 14
Laboratuvar 14 2 28
Uygulama 0 0 0
Derse Özgü Staj 0 0 0
Arazi Çalışması 0 0 0
Sınıf Dışı Ders Çalışması 0 0 0
Sunum / Seminer 0 0 0
Proje 7 6 42
Ödevler 0 0 0
Öğrenme ve Öğretme Etkinlikleri Toplam İş Yükü - - 84
ÖLÇME VE DEĞERLENDİRME ETKİNLİKLERİ İŞ YÜKÜ
Ölçme ve Değerlendirme Etkinlikleri Etkinlik Sayısı/Yarıyıl Süresi (saat) Toplam İş Yükü
Kısa Sınav 2 20 40
Ara Sınavlar 1 15 15
Yarıyıl Sonu Sınavı 1 15 15
Ölçme ve Değerlendirme Etkinlikleri Toplam İş Yükü - - 70
TOPLAM İŞ YÜKÜ (Öğrenme ve Öğretme + Ölçme ve Değerlendirme Etkinlikleri) 154
DERSİN AKTS KREDİSİ (Toplam İş Yükü/25.5 Saat) 6