DERSİN GENEL BİLGİLERİ

Ders Kodu Ders Adı Yıl Yarıyıl Teorik Pratik Kredi AKTS
50612METOZ-BLP0112 Programlama Dilleri II 0 Bahar 2 1 3 6
Dersin Türü:
Dersin Düzeyi: Önlisans      TYYÇ:5. Düzey      QF-EHEA:Kısa Düzey      EQF-LLL:5. Düzey
Dersin Öğretim Dili: Türkçe
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: Temel Alan

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) Problemleri analiz edebilme ve çözebilme yetkinliği kazanır.
1) Bilişim teknolojileri alanındaki temel kavramları bilir. 3
1) Bilgisayar programcılığı ile ilgili uygulamalar için gerekli teknik ve modern araçları bilir.
1) İş hayatındaki tüm süreçleri deneyimler.
1) Bilgisayar programcılığı alanı ile ilgili temel, kuramsal ve uygulamalı bilgileri açıklar.
1) Analitik düşünme yeteneği ile öğrendiği yazılım dillerini kullanarak programlar geliştirir. 5
2) Etik ve sosyal sorumluluk bilincine sahiptir.
2) Bilgisayar programcılığı alanında karşılaşabileceği problemleri tanımlar. 5
2) Program geliştirmede kullanılan editör, derleyicileri ve platformları bilir. 5
2) Bilgisayar ağlarının kurulumunu ve yönetimini gerçekleştirir.
2) Alanı ile ilgili uygulama geliştirmek için gerekli olan teknikleri, araçları ve bilişim teknolojilerini bilir.
2) Alanında faaliyet gösteren bir işletmede eğitim alanı ile ilgili faaliyetlerde yer alır.
3) Öğrendiği teorik bilgileri kullanarak çözümler üretir.
3) Oyun geliştirme platformlarını kullanarak kodlama yapar.
3) Bilgisayar programcılığının gerektirdiği analitik düşünme becerisine sahip olur. 4
3) Alanı ile ilgili iş ve işlemlerde ekip üyesi olarak sorumluluk alır.
3) Teorik bilgiler ile uygulamayı karşılaştırır.
3) Web sayfasının görselliğini düzenlemek ve web sayfası geliştirmek için gerekli program bilgisine sahip olur.
4) Programlama temellerini ve algoritma bilgisini tanımlar. 5
4) Alanında edindiği bilgi ve tecrübeleri derler.
4) Bir yarı yıl boyunca iş hayatının içinde bulunarak öğrendiği teorik bilgilerini uygular.
4) Veri tabanı tasarımı ve yönetimi için kullanılan araçlar hakkında bilgi sahibi olur.
4) Yazılı, sözlü iletişim ve etkileşimin farkındadır.
4) Bilgi sistem analizi ve tasarımı yeteneği kazanır.
5) Grafik tasarımı ve animasyon uygulamaları yapar.
5) İş dünyasının ve toplumun beklentileri doğrultusunda gelişen ve üniversitemizin kurumsal çıktıları olarak tanımlamış olduğu yetkinlikleri alanı ile ilişkili olarak temel düzeyde kazanır.
5) İleri teknolojileri ve dijital dönüşüm ile ilgili gelişmeleri takip eder.
5) Oyun ve mobil uygulama geliştirme platformlarını bilir.
5) Web tasarımının temellerini tanımlar.
6) Yaşamboyu öğrenme bilinci kazanır.
6) Web tasarımını, yazılımını ve programlamasını gerçekleştirir.
6) Yazılım ve donanım konusundaki teknolojik yenilikleri takip eder.
6) Bilgisayar ağlarının temel kavramları ve yönetimi hakkında bilgi sahibi olur.
7) Yurttaşlık yeterliliği konusunda bilinç sahibidir.
7) İşletim sistemlerini kurar ve yönetir.
8) Alanıyla ilgili gelişmeleri girişimci anlayışla değerlendirir.
8) Veri tabanı uygulamaları geliştirir.
9) Avrupa Dil Portfolyosunun en az A2 düzeyinde tanımlanan Yabancı Dilde (İngilizce) iletişim kurma yetkinliği kazanır. (Öğretim dili İngilizce olan programlar için B1 düzeyinde).
9) Görsel ve nesne tabanlı programlamayı öğrenir. 3
10) Bilgisayar programcılığında karşılaşılan problemlere çözümler üretir ve karşılaştığı problemleri çözebileceği yöntemler 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