FEF210 - Python ile Veri Analizi

Course Syllabus in English

Ders Duyuruları

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: Çarşamba günleri / 08:40-10:30
Ders Günleri ve Saatleri: Çarşamba günleri / 10:40 – 12: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: Özel düzenlemelere ihtiyaç duyan öğrenciler, herhangi bir nedenle en kısa sürede dersin eğitmeni ile iletişime geçmelidir.

Devam Politikası: Tüm öğrenciler, ders saatlerinin en az %70’ine katılmak zorundadır. Eğitmen 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 (25 EYLÜL 2024)
General Introduction

HAFTA 2 (2 EKİM 2024)
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 3 (9 EKİM 2024)
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 4 (16 EKİM 2024)
İş için şehir dışındayım.

HAFTA 5 (23 EKİM 2024)
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 (30 EKİM 2024)
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 (6 KASIM 2024)
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 (13 KASIM 2024)
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 (20 KASIM 2024)
ARASINAV

HAFTA 10 (27 KASIM 2024)
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 (4 ARALIK 2024)
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 ARALIK 2024)
11 Python’da Hatalar ve İstisnai Durumlar
12 Sanal Ortamlar
13 Bazit Dizgi Manipülasyonları

HAFTA 13 (18 ARALIK 2024)
14 NumPy Kütüphanesine Detaylı bir Bakış

HAFTA 14 (25 ARALIK 2024)
15 pandas Kütüphanesine Detaylı bir Bakış