FEF210 - Python ile Veri Analizi

Course Syllabus in English

Ders Müfredatı

Eğitmen: Dr. Mustafa Murat ARAT
E-posta: muratarat@hacettepe.edu.tr
Ofis: 12 numaralı oda, İstatistik Bölümü, Hacettepe Üniversitesi, Beytepe Kampüsü
Ofis Saatleri: Perşembe günleri / 10:40-11:40
Ders Günleri ve Saatleri: Salı günleri / 10:40 – 13:30
Ders Yeri: İstatistik Bölümü, LAB1, Hacettepe Üniversitesi, Beytepe Kampüsü
Ders Kredisi: 5 AKTS
Ders Web Sayfası: https://mmuratarat.github.io/turkish/fef210_2425fall/
Kullanılacak Yazılımlar: Python / Jupyter Ortamı / PyCharm / Visual Studio Code / Google Colab (https://colab.research.google.com), Amazon Sagemaker Studio Lab (https://studiolab.sagemaker.aws)

Dersin Amacı: Python programlama dilini ve kütüphanelerini kullanarak programlamanın temel kavramlarını ileri düzeyde öğretmek.

Ders Kaynakları:

Dersin Öğrenme Çıktıları:

Özel Düzenlemeler: Herhangi bir nedenle özel düzenlemelere ihtiyaç duyan öğrenciler, en kısa sürede dersin sorumlusu ile iletişime geçmelidir.

Devam Politikası: Tüm öğrenciler, ders saatlerinin en az %80’ine katılmak zorundadır. Ders sorumlusu geldikten sonra (kapı kapandıktan sonra) derse girerseniz veya ders esnasında 5 dakikadan fazla süreyle sınıftan ayrılırsanız, o ders için devamsız olarak işaretleneceksiniz. Tüm devamsızlıklar resmi devamsızlık olarak sayılacaktır. Eğer özel bir mazeretiniz varsa, lütfen bunu çok geç olmadan eğitmene yazılı olarak iletiniz.

Sınıf Politikası: Ders başlamadan önce sınıfta olmanız gerekmektedir. Derse zamanında katılmak için elinizden geleni yapmanız beklenmektedir. Ders başladıktan sonra sınıfa girişe izin verilmemektedir. Tüm cep telefonlarınızı kapatmanız zorunludur. Ders sırasında, başka yerlerde yapılması daha uygun olan tüm aktivitelerden kaçınmalısınız. Ayrıca, derslerle ilgili her türlü soruyu sormaktan çekinmeyiniz!

Genel Yorumlar: (1) Dersle ilgili bir sorun yaşıyorsanız, durumu en kısa sürede benimle görüşünüz. (2) Benimle ilgili bir sorun yaşıyorsanız, durumu en kısa sürede benimle görüşünüz. (3) Derslerin hızı sizin için çok hızlı ya da yavaşsa, bana bildiriniz. Size ne kadar bariz görünürse görünsün, her zaman bunun farkında olmayabilirim. (4) Bir kod satırını anlamıyorsanız, önce çalıştırınız, ardından küçük bir örnek oluşturarak ne yaptığını görünüz! (5) Bir sorunuz varsa, önce Google’ı kullanarak arayınız ve kendi başınıza anlamaya çalışınız. Eğer bu çözüm olmazsa, bana bildiriniz! (6) Programlama yaparken İngilizce önemlidir. Bu yabancı dili öğrenmeye çalışınız!

Kopya Çekme ve İntihal: Üniversitenin kopya çekme ve intihal ile ilgili politikalarını bilmek sizin sorumluluğunuzdadır. Bir kişinin entelektüel emeğine kredi vermemek ve bunu kendi çalışmanız gibi göstermek, hırsızlıktır. Davranışlarınızın intihal olarak yorumlanıp yorumlanmayacağı konusunda herhangi bir sorunuz veya endişeniz varsa, lütfen çalışmanızı teslim etmeden önce bana danışınız.

Ders İçeriği (geçici)

HAFTA 1
Genel Tanıtım

HAFTA 2
Programlama Paradigmaları

HAFTA 3
1 Python’un Temelleri
1.1. Neden Python?
1.2. Python’u Yükleme ve Kurulum
1.3. Python 2 ve Python 3
1.4. Hangi Python’u kullanıyorum?
1.5. JupyterLab, Anaconda, Pycharm ve Visual Studio Code Kurulumu
1.6. Python Paketlerini Yükleme veya Güncelleme
1.7. Python Toplulukları ve Sorunlarınıza Cevap Bulma: Stackoverflow.com ve Stackexchange.com
1.8. Temel Python Kütüphanelerinin Tanıtımı: Numpy, pandas, matplotlib, SciPy, scikit-learn ve statsmodels
1.9. Python’un Zen’i
1.10. PEP8 – Python Stillendirme Kılavuzu
1.11. Girintiler
1.12. Açıklamalar / Yorumlar
1.13. print fonksiyonu
1.14. f-dizgiler

HAFTA 4
2 İlkel Veri Tipleri
2.1. Nümerik Veri Tipi
2.2. Dizgi Veri Tipi
2.3. Boole Veri Tipi
2.4. Tip Çevirme
2.5. None Veri Tipi

HAFTA 5
3 Fonksiyonlar
3.1. Docstring
3.2. Return Deyimi
3.3. Fonksiyon Argümanları
3.3.1. Gerekli argümanlar
3.3.2. Konumsal argümanlar
3.3.3. Anahtar kelime argümanları
3.3.4. Varsayılan argümanlar
3.4. Anonim Fonksiyonlar (Lambda fonksiyonu)
3.5. args ve kwargs argümanları

HAFTA 6
4 Fonksiyonlara Devam
4.1. İsim Alanları
4.2. Değişkenlerin Kapsamı
4.2.1. Yerel Kapsam
4.2.2. Global Kapsam
4.2.3. Kapsayıcı Kapsam
4.2.4. Yerleşik Kapsam
4.2.5. LEGB Kuralı

HAFTA 7
5 Kontrol Akışı
5.1. if, elif ve else yapısı
5.1.1. Basit if
5.1.2. if-else
5.1.3. İç içe geçmiş if
5.1.4. if-elif-else
5.1.5. Üçlü operatör

6 Döngüler
6.1. for döngüleri
6.2.1. break ifadesi
6.2.2. continue ifadesi
6.2.3. pass ifadesi
6.2. while döngüleri

WEEK 8
7 İlkel ve İlkel Olmayan Veri Yapıları
7.1. İlkel Olmayan Veri Yapıları
7.1.1. Demetler ve Demet Metotları
7.1.2. Listeler ve Liste Metotları
7.1.3. Yerleşik Sekans Fonksiyonları (enumerate, sorted, zip, reversed, filter, map)
7.1.4. Sözlükler ve Sözlük Metotları
7.1.5. Kümeler ve Küme Metotları
7.2. List, Set, Dict Comprehensions

HAFTA 9
ARASINAV

HAFTA 10
9 Nesne Tabanlı Programlamlama
9.1. Prosedürel ve Modüler Programlama
9.2. Sınıf oluşturma
9.3. Bir nesne inşa etme
9.4. Nitelikler/ Metotlar
9.5. Sınıf Nitelikleri / Örnek Nitelikleri
9.6. Niteliklere Erişim: getattr(), hasattr(), setattr(), delattr()
9.7. Sınıf Metotları / Örnek Metotları / Statik Metotlar

HAFTA 11
10 Nesne Tabanlı Programlamlama’ya Devam
10.1. Kapsülleme
10.2. Polimorfizm
10.3. Genel Değişkenler / Özel Değişkenler / Korunan Değişkenler
10.4. Dunder Metotları (Özel Metotlar)
10.5. Metot Çözünürlük Emri (MRO)
10.6. Miras
10.7. super() fonksiyonu

HAFTA 12
11 Python’da Hatalar ve İstisnai Durumlar
12 Sanal Ortamlar
13 Bazit Dizgi Manipülasyonları

HAFTA 13
14 NumPy Kütüphanesine Detaylı bir Bakış

HAFTA 14
15 pandas Kütüphanesine Detaylı bir Bakış