| Ders Adı | Kodu | Yerel Kredi | AKTS | Ders (saat/hafta) | Uygulama (saat/hafta) | Laboratuar (saat/hafta) |
|---|---|---|---|---|---|---|
| Bilgisayar Programlama 2 | MAT4560 | 3 | 5 | 3 | 0 | 0 |
| Önkoşullar | Yok |
|---|
| Yarıyıl | Güz, Bahar |
|---|
| Dersin Dili | İngilizce, Türkçe |
|---|---|
| Dersin Seviyesi | Lisans |
| Dersin Türü | Seçmeli @ Matematik Lisans Programı Seçmeli @ Fen Bilgisi Eğitimi Lisans Programı |
| Ders Kategorisi | Temel Meslek Dersleri |
| Dersin Veriliş Şekli | Yüz yüze |
| Dersi Sunan Akademik Birim | Matematik Bölümü |
|---|---|
| Dersin Koordinatörü | Sema AKIN BAŞ |
| Dersi Veren(ler) | Sema AKIN BAŞ |
| Asistan(lar)ı |
| Dersin Amacı | Bu dersin amacı, sıfırdan programlamaya başlanarak Python dilinde temelden ileri seviyeye gelinmesidir. Ders aynı zamanda, öğrencilerin verilen bir problemi anlayıp algoritmasını hazırlayabilme, hazırlanan algoritmayı Python programlama dilinde en uygun şekilde kodlayabilme, yazılan programın algoritmasında ve derleme esnasında oluşan hatalarından arındırabilme becerilerini kazandırmayı amaçlamaktadır. |
|---|---|
| Dersin İçeriği | Ele alınan programlama dilinin (Python) yazım kuralları, Python komutları, Python'da veri yapıları, değişkenler, operatörler ve temel kontrol yapıları (if, for, while), Python'da fonksiyon, modüler programlama prensipleri, Python'da veri analizi için Pandas ve NumPy, Python ile veri analizi uygulamaları, Python'da veri görselleştirmesi için Matplotlib. Ayrıca, öğrenciler ödev verilen bazı problemlerin veya yöntemlerin algoritmalarını anlayıp, kodlayarak ödevler hazırlar ve sunarlar. |
| Ders Kitabı / Malzemesi / Önerilen Kaynaklar |
|
| Opsiyonel Program Bileşenleri | Yok |
Ders Öğrenim Çıktıları
- Bu dersi başarıyla tamamlayan öğrenciler, derleyici editörünü kullanabileceklerdir.
- Bu dersi başarıyla tamamlayan öğrenciler, programlama dilinin kurallarına bilerek komutlarını kullanabileceklerdir.
- Bu dersi başarıyla tamamlayan öğrenciler, bir problemin çözüm yöntemini belirleyerek kodlayabileceklerdir.
- Bu dersi başarıyla tamamlayan öğrenciler, hazırlanan programın hatalarını düzeltebileceklerdir.
- Bu dersi başarıyla tamamlayan öğrenciler, veri analizi ve veri görselleştirme uygulamaları yapabileceklerdir.
- Bu dersi başarıyla tamamlayan öğrenciler, veri bilimi ve makine öğrenmesine zemin hazırlayacak temel Python programlamaları gerçekleştirebileceklerdir.
Ders Öğrenim Çıktısı & Program Çıktısı Matrisi
| DÖÇ-1 | DÖÇ-2 | DÖÇ-3 | DÖÇ-4 | DÖÇ-5 | DÖÇ-6 |
Haftalık Konular ve İlgili Ön Hazırlık Çalışmaları
| Hafta | Konular | Ön Hazırlık |
|---|---|---|
| 1 | Konu Anlatımı: Programlamaya ve Python'a giriş Sınıf-içi Uygulama (20 dk.): Basit bir “Merhaba Dünya” uygulaması ve temel aritmetik işlemler Sınıf-içi Tartışma (15 dk.): “Neden Python öğreniyoruz?”,“Günlük hayatta hangi alanlarda kullanabiliriz?” soruları üzerine tartışma | 1. Python için Anaconda kurulumu. Zorunlu Kaynak. 2. Python programlama hakkında ön bilgi ve program çalıştırma. Kaynak: Ders Kitabı [1], 1-11. Ders Kitabı [2], 1-10. |
| 2 | Konu Anlatımı: Python temelleri (syntax, değişkenler, girdi- çıktı) Sınıf-içi Uygulama (30 dk.): Kullanıcıdan alınan veriler ile bazı basit hesaplamalar yapan programı yazma Sınıf-içi Tartışma (10 dk.): “Farklı veri tiplerini neden tanımlamak zorundayız?” sorusu üzerine tartışma | 1. Temel Python değişkenleri, program içerisindeki kullanım durumlarını içeren bölümlerin okunması. Kaynak: Ders Kitabı [1], Bölüm 3, 23-38. Ders Kitabı [4], 7-17. |
| 3 | Konu Anlatımı: Akış kontrolü- karar verme mekanizmaları (operatörler, koşullu ifadeler), döngüler Sınıf-içi Uygulama (30 dk): Karar yapıları ve döngülerle günlük hayata dair küçük senaryoları çözme Sınıf-içi Tartışma (10 dk.): “Koşullu ifadeler ve döngüler günlük hayattaki hangi problemlerin çözümünde kullanılabilir?” sorusu üzerine tartışma | 1. Python’daki operatörler, koşullu ifadeler, mantık ifadelerini içeren bölümlerin okunması. Kaynak: Ders Kitabı [1], 39-86. Ders Kitabı [2], 65-73. |
| 4 | Konu Anlatımı: İleri seviye veri yapıları (list, tuple veri, dictionary veri) Sınıf-içi Uygulama (15 dk): Listeler ve sözlükler kullanarak küçük veri setleri üzerinde işlem yapma Sınıf-içi Tartışma (10 dk.): “Hangi durumda liste, hangi durumda sözlük kullanmalıyız?” sorusu üzerine tartışma Kısa Sınav 1 (25 dk.): Ders sonunda, derste işlenen konuları içeren bir kısa sınavın yapılması | 1. Veri yapıları: Liste, demet ve sözlük yapılarının incelenmesi. Kaynak: Ders Kitabı [2], 363-378; 389-398. |
| 5 | Konu Anlatımı: Modüler Python (fonksiyonlar), değişkenlerin kapsamı ve matematiksel işlemler Sınıf-içi Uygulama (20 dk.): Belirli problemleri çözmek için fonksiyonlar tasarlama Sınıf-içi Tartışma (10 dk.): “Fonksiyon kullanmak kodumuzu nasıl daha düzenli hale getirir?” sorusu üzerine tartışma | 1. Python’da fonksiyonları içeren bölümlerin okunması. Kaynak: Ders Kitabı [2], 117-148. |
| 6 | Konu Anlatımı: Nesneye yönelik programlama Sınıf-içi Uygulama (20 dk.): Gerçek hayattan nesneleri sınıflar ile modelleme Sınıf-içi Tartışma (10 dk.): “Gerçek hayattaki nesneleri Python’da nasıl modelliyoruz?” sorusu üzerine tartışma Kısa Sınav 2 (15 dk.): Ders sonunda, derste işlenen konuları içeren bir kısa sınavın yapılması | 1. Nesneye Yönelik Programlama sınıf yapısı ve kalıtım konularını içeren bölümlerin okunması. Kaynak: Ders Kitabı [2], 175-231. |
| 7 | Konu Anlatımı: Python'da hata ve hata yönetimi Sınıf-içi Uygulama (20 dk.): Hatalı kod parçalarını analiz edip düzeltme çalışmaları Sınıf-içi Tartışma (5 dk.): “Bir programın hatalara dayanıklı olması neden önemlidir?” sorusu üzerine tartışma | 1. Hata ve hata yönetimi konularını içeren bölümlerin okunması. Kaynak: Ders Kitabı [2], 263-279. |
| 8 | Ara Sınav 1 | |
| 9 | Konu Anlatımı: Python ile Neler Yapabilirim? Sınıf-içi Uygulama (20 dk.): Çalışan küçük bir otomasyon yazma Sınıf-içi Tartışma (15 dk.): “Python’ı kendi alanımızda hangi amaçlarla kullanabiliriz?” sorusu üzerine tartışma | 1. Python’un en çok kullanıldığı alanlarla ilgili araştırma yapılması. |
| 10 | Konu Anlatımı: Dizi tanımlama ve kullanımı- Numpy Sınıf-içi Uygulama (15 dk.): Diziler üzerinde matematiksel işlemler yapma Sınıf-içi Tartışma (5 dk.): “Listeler ile NumPy dizileri arasındaki fark nedir?” sorusu üzerine tartışma Kısa Sınav 3 (20 dk.): Ders sonunda, derste işlenen konuları içeren bir kısa sınavın yapılması | 1. Dizi ve vektör tanımlama, Numpy’ın temellerini içeren bölümlerin okunması. Kaynak: Ders Kitabı [3], 83-121. |
| 11 | Konu Anlatımı: Veri analizi- Pandas Sınıf-içi Uygulama (20 dk.): CSV dosyasından veri okuyup basit analiz yapma Sınıf-içi Tartışma (5 dk.): “Ham veriyi tabloya dönüştürmek neden önemlidir?” sorusu üzerine tartışma | 1. Veri analizi ve Pandas uygulamalarını içeren bölümlerin okunması. Kaynak: Ders Kitabı [3], 123-173. |
| 12 | Konu Anlatımı: Veri analizi- Pandas Sınıf-içi Uygulama (20 dk.): Bir veri seti üzerinde gruplama ve istatistiksel özet çıkarma Sınıf-içi Tartışma (5 dk.): “Veri temizleme neden en kritik aşamalardan biridir?” sorusu üzerine tartışma | 1. Veri analizi ve Pandas uygulamalarını içeren bölümlerin okunması. Kaynak: Ders Kitabı [3], 123-173. |
| 13 | Konu Anlatımı: Veri Görselleştirme- Grafik Çizimi- Matplotlib Sınıf-içi Uygulama: (20 dk.) Basit grafikler çizerek verileri görselleştirme Sınıf-içi Tartışma: (5 dk.) “Verileri grafiklerle sunmanın avantajları nelerdir?” sorusu üzerine tartışma | 1. Veriyi grafiğe aktarma, program üzerinde grafik çizimini içeren bölümlerin okunması. Kaynak: Ders Kitabı [3], 282-317. |
| 14 | Konu Anlatımı: Kapsamlı uygulamalar Sınıf-içi Uygulama: (45 dk) Mini veri analizi projesi: NumPy + Pandas + Matplotlib bir arada Sınıf-içi Tartışma: (5 dk.) “Gerçek hayatta bir veri analizi süreci hangi aşamalardan oluşur?” sorusu üzerine tartışma | 1. İlgilenilen bir alan ile ilgili küçük bir veri seti araştırılması. 2. Derste işlenilen konularla birlikte proje geliştirilip incelenmesi ve tekrardan geliştirilebilirliğine bakılması. |
| 15 | Öğrencilerin kendi mini projelerini sınıfta sunması Sınıf-içi Uygulama (15 dk.): Kod + çıktı + grafiklerle birlikte açıklama Sınıf-içi Tartışma (20 dk.): Projelerden elde edilen bulguların güçlü ve zayıf yönlerinin tartışılması | 1. Önceden verilen ödevin Python kodlarının hazırlanması, örneklendirilmesi ve raporunun hazırlanması. |
| 16 | Final |
Değerlendirme Sistemi
| Etkinlikler | Sayı | Katkı Payı |
|---|---|---|
| Devam/Katılım | ||
| Laboratuar | ||
| Uygulama | ||
| Arazi Çalışması | ||
| Derse Özgü Staj | ||
| Küçük Sınavlar/Stüdyo Kritiği | 3 | 15 |
| Ödev | 1 | 5 |
| Sunum/Jüri | 1 | 10 |
| Projeler | ||
| Seminer/Workshop | ||
| Ara Sınavlar | 1 | 30 |
| Final | 1 | 40 |
| Dönem İçi Çalışmaların Başarı Notuna Katkısı | ||
| Final Sınavının Başarı Notuna Katkısı | ||
| TOPLAM | 100 | |
AKTS İşyükü Tablosu
| Etkinlikler | Sayı | Süresi (Saat) | Toplam İşyükü |
|---|---|---|---|
| Ders Saati | 14 | 3 | |
| Laboratuar | |||
| Uygulama | |||
| Arazi Çalışması | |||
| Sınıf Dışı Ders Çalışması | 14 | 3 | |
| Derse Özgü Staj | 0 | ||
| Ödev | 1 | 15 | |
| Küçük Sınavlar/Stüdyo Kritiği | 3 | 2 | |
| Projeler | |||
| Sunum / Seminer | 1 | 5 | |
| Ara Sınavlar (Sınav Süresi + Sınav Hazırlık Süresi) | 1 | 20 | |
| Final (Sınav Süresi + Sınav Hazırlık Süresi) | 1 | 20 | |
| Toplam İşyükü : | |||
| Toplam İşyükü / 30(s) : | |||
| AKTS Kredisi : | |||
| Diğer Notlar | Yok |
|---|