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. |
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.
|
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 |
|
Program Öğrenme Çıktıları |
Katkı Oranı (1-5) |
1) |
İş hayatındaki tüm süreçleri deneyimler. |
|
1) |
Bilgisayar programcılığı ile ilgili uygulamalar için gerekli teknik ve modern araçları bilir. |
|
1) |
Analitik düşünme yeteneği ile öğrendiği yazılım dillerini kullanarak programlar geliştirir. |
5 |
1) |
Problemleri analiz edebilme ve çözebilme yetkinliği kazanır. |
|
1) |
Bilgisayar programcılığı alanı ile ilgili temel, kuramsal ve uygulamalı bilgileri açıklar. |
|
1) |
Bilişim teknolojileri alanındaki temel kavramları bilir. |
3 |
2) |
Bilgisayar ağlarının kurulumunu ve yönetimini gerçekleştirir. |
|
2) |
Bilgisayar programcılığı alanında karşılaşabileceği problemleri tanımlar. |
5 |
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. |
|
2) |
Program geliştirmede kullanılan editör, derleyicileri ve platformları bilir. |
5 |
2) |
Etik ve sosyal sorumluluk bilincine sahiptir. |
|
3) |
Teorik bilgiler ile uygulamayı karşılaştırır. |
|
3) |
Alanı ile ilgili iş ve işlemlerde ekip üyesi olarak sorumluluk alır. |
|
3) |
Oyun geliştirme platformlarını kullanarak kodlama yapar. |
|
3) |
Web sayfasının görselliğini düzenlemek ve web sayfası geliştirmek için gerekli program bilgisine sahip olur. |
|
3) |
Öğrendiği teorik bilgileri kullanarak çözümler üretir. |
|
3) |
Bilgisayar programcılığının gerektirdiği analitik düşünme becerisine sahip olur. |
4 |
4) |
Bir yarı yıl boyunca iş hayatının içinde bulunarak öğrendiği teorik bilgilerini uygular. |
|
4) |
Programlama temellerini ve algoritma bilgisini tanımlar. |
5 |
4) |
Veri tabanı tasarımı ve yönetimi için kullanılan araçlar hakkında bilgi sahibi olur. |
|
4) |
Bilgi sistem analizi ve tasarımı yeteneği kazanır. |
|
4) |
Yazılı, sözlü iletişim ve etkileşimin farkındadır. |
|
4) |
Alanında edindiği bilgi ve tecrübeleri derler. |
|
5) |
Oyun ve mobil uygulama geliştirme platformlarını bilir. |
|
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) |
Grafik tasarımı ve animasyon uygulamaları yapar. |
|
5) |
Web tasarımının temellerini tanımlar. |
|
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. |
|
6) |
Yaşamboyu öğrenme bilinci kazanır. |
|
6) |
Web tasarımını, yazılımını ve programlamasını gerçekleştirir. |
|
7) |
İşletim sistemlerini kurar ve yönetir. |
|
7) |
Yurttaşlık yeterliliği konusunda bilinç sahibidir. |
|
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. |
|