Ders AdıKodu Yerel KrediAKTS Ders (saat/hafta)Uygulama (saat/hafta)Laboratuar (saat/hafta)
Bilgisayar Programlama 2MAT456035300
ÖnkoşullarYok
YarıyılGüz, Bahar
Dersin Diliİngilizce, Türkçe
Dersin SeviyesiLisans
Dersin TürüSeçmeli @ Matematik Lisans Programı
Seçmeli @ Fen Bilgisi Eğitimi Lisans Programı
Ders KategorisiTemel Meslek Dersleri
Dersin Veriliş ŞekliYüz yüze
Dersi Sunan Akademik BirimMatematik 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ğiEle 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
  • Ders Kitabı-[1] Çobanoğlu, Bülent. Herkes için Python. Pusula Yayınevi, 2022.
  • Ders Kitabı-[2] Hunt, John. A Beginners Guide to Python3 Programming. Springer, 2020.
  • Ders Kitabı-[3] McKinney, Wes. Python for Data Analysis. O'Reilly Media, Inc., 2022.
  • Ders Kitabı-[4] Padmanabhan T. R. Programming with Python. Springer, 2016.
  • Zorunlu Kaynak- https://www.anaconda.com/download
  • Önerilen Kaynak: Hunt, John. Advanced Guide to Python 3 Programming. Springer, 2019.
  • Önerilen Kaynak: Shaw, Zed A., Learn Python the Hard Way. Addison-Wesley Professional, 2012.
Opsiyonel Program BileşenleriYok

Ders Öğrenim Çıktıları

  1. Bu dersi başarıyla tamamlayan öğrenciler, derleyici editörünü kullanabileceklerdir.
  2. Bu dersi başarıyla tamamlayan öğrenciler, programlama dilinin kurallarına bilerek komutlarını kullanabileceklerdir.
  3. Bu dersi başarıyla tamamlayan öğrenciler, bir problemin çözüm yöntemini belirleyerek kodlayabileceklerdir.
  4. Bu dersi başarıyla tamamlayan öğrenciler, hazırlanan programın hatalarını düzeltebileceklerdir.
  5. Bu dersi başarıyla tamamlayan öğrenciler, veri analizi ve veri görselleştirme uygulamaları yapabileceklerdir.
  6. 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ÖÇ-1DÖÇ-2DÖÇ-3DÖÇ-4DÖÇ-5DÖÇ-6

Haftalık Konular ve İlgili Ön Hazırlık Çalışmaları

HaftaKonularÖn Hazırlık
1Konu 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.
2Konu 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.
3Konu 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.
4Konu 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.
5Konu 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.
6Konu 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.
7Konu 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.
8Ara Sınav 1
9Konu 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ı.
10Konu 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.
11Konu 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.
12Konu 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.
13Konu 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.
14Konu 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ı.
16Final

Değerlendirme Sistemi

EtkinliklerSayıKatkı Payı
Devam/Katılım
Laboratuar
Uygulama
Arazi Çalışması
Derse Özgü Staj
Küçük Sınavlar/Stüdyo Kritiği315
Ödev15
Sunum/Jüri110
Projeler
Seminer/Workshop
Ara Sınavlar130
Final140
Dönem İçi Çalışmaların Başarı Notuna Katkısı
Final Sınavının Başarı Notuna Katkısı
TOPLAM100

AKTS İşyükü Tablosu

EtkinliklerSayıSüresi (Saat)Toplam İşyükü
Ders Saati143
Laboratuar
Uygulama
Arazi Çalışması
Sınıf Dışı Ders Çalışması143
Derse Özgü Staj0
Ödev115
Küçük Sınavlar/Stüdyo Kritiği32
Projeler
Sunum / Seminer15
Ara Sınavlar (Sınav Süresi + Sınav Hazırlık Süresi)120
Final (Sınav Süresi + Sınav Hazırlık Süresi)120
Toplam İşyükü :
Toplam İşyükü / 30(s) :
AKTS Kredisi :
Diğer NotlarYok