{"course":{"updated_at":"2025-10-12T13:46:28.187158+00:00","title":{"tr":"Python Programlama"},"duration_hours":24,"available_as_corporate":true,"cover_image_url":"https://lively-leaf-6126.fly.storage.tigris.dev/c3646c8d-4a4d-4aef-b5dd-d224f69ae3ce.png","order":29,"deleted_at":null,"duration_days":null,"video_conference_link":null,"hidden":false,"category_id":null,"short_title":{"tr":null},"level":null,"bogazici_link":null,"cover_image_x":50,"suggested_next_course_id":null,"id":41,"slug":{"tr":"python-programlama"},"schedule_info":null,"available_as_personal":true,"cover_image_y":50,"summary":{"tr":"Günümüzün En Popüler Programlama Dili Python'ı Öğrenin"},"bogazici_collab":false,"is_workshop":false,"corporate_cover_image_url":null,"lesson_count":0,"sidebar_copy":{"tr":null},"price_try":null,"has_lessons":false,"corporate_cover_image_x":50,"created_at":"2025-08-29T08:31:15.859864+00:00","description":{"tr":[{"type":"text","title":"Kurs Açıklaması","content":"<p>Dijital dünyanın temel yapı taşı olan programlama, artık her sektörde kritik bir yetkinlik haline gelmiştir. Bu kapsamlı Python eğitimi, katılımcılara sıfırdan başlayarak python programlama dilinde yetkinlik kazandırmayı hedeflemektedir.<br><br>Python'un sade yapısı ve kapsamlı kütüphane ekosistemi sayesinde, katılımcılar ilk günden itibaren çalışan projeler geliştirebilir; veri analizi, web geliştirme, otomasyon ve yapay zeka gibi modern teknolojileri alanlarında Python’ı kullanmaya başlayabilirler. <br><br>Program sonunda katılımcılar, Python ekosisteminde özgüvenle hareket edebilir, karmaşık problemlere algoritmik çözümler üretebilir ve modern yazılım geliştirme pratiklerini uygulamaya başlayabilir hale gelirler.</p>"},{"type":"text","title":"Hedef Kitle","content":"<p>Bu eğitim, programlama dünyasına adım atmak isteyen veya Python dilini profesyonel seviyede öğrenmek isteyen herkes için tasarlanmıştır. <br><br>Yazılım geliştirmeye yeni başlayanlar, kariyerinde teknoloji odaklı dönüşüm yapmak isteyenler, veri analizi ve otomasyon süreçlerinde Python kullanmayı hedefleyen profesyoneller için idealdir. <br><br>Teknik altyapısı olmayan ama iş süreçlerinde veri analizi, görselleştirme gibi konularda programlama yaklaşımını kullanmak isteyen İK ve satış gibi departmanlar için de uygundur. <br><br>Mühendisler, analistler, araştırmacılar, proje yöneticileri ve dijital becerileriyle fark yaratmak isteyen tüm profesyoneller bu eğitimden faydalanabilir. <br><br>Özellikle veri ile çalışacaklar, analiz, görselleştirme, tahmin modelleri kuracaklar veya web geliştirme alanlarına yönelecekler için sağlam bir temel oluşturur.</p>"},{"type":"text","title":"Ön Koşul","content":"<ul class=\"tight\" data-tight=\"true\"><li><p>Herhangi bir programlama deneyimi gerekmemektedir </p></li><li><p>Temel bilgisayar kullanım becerileri yeterlidir </p></li><li><p>Mantıksal düşünme ve problem çözme ilgisi beklenmektedir </p></li><li><p>Öğrenmeye açık ve pratik yapmaya istekli olmak yeterlidir</p></li></ul><p></p>"},{"type":"text","title":"Kazanımlar","content":"<p>Bu kursu tamamlayan katılımcılar aşağıdaki konularda yetkin olacaklardır: </p><ul class=\"tight\" data-tight=\"true\"><li><p>Python'un temel yapılarını (değişkenler, veri tipleri, kontrol yapıları, döngüler) etkin bir şekilde kullanabilir ve algoritma mantığını kavrayabilir </p></li><li><p>Liste, dictionary, set gibi veri yapılarını doğru senaryolarda seçip, verimli bir şekilde manipüle edebilir </p></li><li><p>Fonksiyonel programlama paradigmasını anlayıp, modüler ve tekrar kullanılabilir kod yazabilir </p></li><li><p>Object Oriented Programming (OOP) prensiplerini uygulayarak, gerçek dünya problemlerini sınıf ve objelerle modelleyebilir </p></li><li><p>List comprehension, generator, decorator gibi Python'a özgü ileri düzey özellikleri kullanarak performanslı kod geliştirebilir </p></li><li><p>Hata yönetimi ve debugging teknikleriyle güvenilir ve sürdürülebilir uygulamalar oluşturabilir</p></li><li><p>pip ve conda gibi paket yöneticilerini kullanarak Python ekosisteminde özgürce hareket edebilir </p></li><li><p>Virtual environment'lar oluşturup, proje bağımlılıklarını profesyonel şekilde yönetebilir </p></li><li><p>Edindikleri pratik deneyim sayesinde iş süreçlerinde programlama gerektiren veya verim artışı yaratacak yerlerde Python kullanabilir</p></li></ul><p></p>"}]},"discount_try_percentage":null,"show_price":true,"corporate_cover_image_y":50,"sections":{"tr":[{"title":"Modül 1 - Ortam Kurulumu ve Giriş","summary":"<h2>Python Ekosistemi</h2><h3>Python Ekosistemi ve Kurulum</h3><ul class=\"tight\" data-tight=\"true\"><li><p>Veri bilimi, web geliştirme ve otomasyonda Python</p></li><li><p>Veri analizi ve görselleştirmede sağladığı avantajlar</p></li><li><p>Diğer programlama dilleri ile karşılaştırma</p></li><li><p>Python 3.x ve eski versiyonlar</p></li><li><p>Topluluk ve ekosistem genel bakışı</p></li></ul><h2>Geliştirme Ortamı Kurulumu</h2><h3>Kurulum Temelleri</h3><ul class=\"tight\" data-tight=\"true\"><li><p>IDE seçimi: VS Code, PyCharm, Jupyter</p></li><li><p>Bu kurs için(şirkette erişime açıksa): Google Colab</p></li><li><p>Virtual environment yönetimi (venv, conda)</p></li><li><p>pip ve conda ile paket yönetimi</p></li></ul><p></p>"},{"title":"Modül 2 - Yazım Kuralları ve Temel Veri Yapıları","summary":"<h2>Yazım Kuralları</h2><h3>Temel Sözdizimi(Syntax) ve Yapısı</h3><ul class=\"tight\" data-tight=\"true\"><li><p>Indentation ve kod blokları</p></li><li><p>Yorum satırları ve documentation string'leri</p></li><li><p>Değişken isimlendirme kuralları</p></li></ul><h2>Temel Veri Yapıları ve Stringler</h2><h3>Temel Veri Tipleri ve İşlemleri</h3><ul class=\"tight\" data-tight=\"true\"><li><p>Temel veri tipler: int, float, bool, str</p></li><li><p>Değişken kavramı ve değişken tanımlama</p></li><li><p>Type checking ve type hint</p></li><li><p>Dynamic Typing kavramı</p></li><li><p>Tip dönüşümleri</p></li><li><p>Operatörler ve ifadeler (toplama, çıkarma, mod...)</p></li><li><p>Sabitler ve immutability</p></li></ul><h3>String Temelleri</h3><ul class=\"tight\" data-tight=\"true\"><li><p>Alt elemanlardan oluşma mantığı</p></li><li><p>String tanımlama yöntemleri (tek tırnak, çift tırnak, triple quote)</p></li><li><p>String concatenation (+, join)</p></li><li><p>String repetition</p></li><li><p>Escape character'ler ve raw string'ler</p></li><li><p>Multiline string'ler ve docstring'ler</p></li></ul><h3>Indexing ve Slicing</h3><ul class=\"tight\" data-tight=\"true\"><li><p>Pozitif ve negatif indexing</p></li><li><p>String slicing teknikleri</p></li><li><p>Step parametresi kullanımı</p></li><li><p>String'lerde immutability</p></li><li><p>String kopyalama ve bellek yönetimi</p></li></ul><h3>String Metodları ve formatlama</h3><ul class=\"tight\" data-tight=\"true\"><li><p>find(), index(), rfind(), rindex()</p></li><li><p>startswith(), endswith()</p></li><li><p>upper(), lower(), capitalize(), title(), swapcase()</p></li><li><p>strip(), lstrip(), rstrip()</p></li><li><p>split() ve .join()</p></li><li><p>f-string'ler ve gelişmiş özellikleri</p></li><li><p>Regular Expression Temelleri</p></li></ul><p></p>"},{"title":"Modül 3 - Koleksiyon(Collection) Veri Tipleri","summary":"<h2>Dahili Koleksiyon Veri Tipleri</h2><h3>Sıralı Koleksiyon Veri Yapıları</h3><ul class=\"tight\" data-tight=\"true\"><li><p>List'ler: oluşturma, indexing, slicing</p></li><li><p>List metodları ve işlemleri</p></li><li><p>Elemanlara anında erişim mantığı</p></li><li><p>Tuple'lar ve immutability faydaları</p></li><li><p>List vs tuple ne zaman kullanılır</p></li><li><p>Performans değerlendirmeleri</p></li></ul><h3>Dictionary ve Set Veri Tipleri</h3><ul class=\"tight\" data-tight=\"true\"><li><p>Dictionary'ler: key-value çiftleri</p></li><li><p>Hangi yapılar key olabilir</p></li><li><p>Dictionary metodları ve iterasyon</p></li><li><p>Hash mantığı</p></li><li><p>Set ve frozen set'ler</p></li><li><p>Set işlemleri: union, intersection, difference</p></li><li><p>Doğru veri yapısını seçme</p></li><li><p>Dictionary ve Set veri yapılarında eleman aramanın neden hızlı olduğu</p></li></ul><p></p>"},{"title":"Modül 4 - Kontrol Yapıları ve Döngüler","summary":"<h2>Kontrol Yapıları</h2><h3>Elamanları Karşılaştırma</h3><ul class=\"tight\" data-tight=\"true\"><li><p>Büyüktür, küçüktür, büyük eşittir... kavramları</p></li><li><p>Logical Operator(mantıksal operatörler): and, or, not</p></li><li><p>Mantıksal operatörlerde short-circuit kavramı</p></li><li><p>Stringlerde karşılaştırma işlemleri</p></li></ul><h3>Kontrol Yapıları</h3><ul class=\"tight\" data-tight=\"true\"><li><p>if/elif/else ifadeleri</p></li><li><p>İç içe geçmiş(nested) yapılar</p></li><li><p>Ternary operator</p></li><li><p>Pattern matching</p></li></ul><h2>Döngüler(loop)</h2><h3>for Döngüsü</h3><ul class=\"tight\" data-tight=\"true\"><li><p>Koşul olmadan sınırlı sayıda döngü mantığı</p></li><li><p>range() fonksiyonu</p></li></ul><h3>While Döngüsü</h3><ul class=\"tight\" data-tight=\"true\"><li><p>Koşul bazlı döngüler</p></li><li><p>Sonsuz döngüler ve kullanım alanları</p></li><li><p>Döngü kontrol değişkenleri</p></li><li><p>while vs for ne zaman kullanılır</p></li></ul><h3>Döngüler ile Elemanlarda İterasyon</h3><ul class=\"tight\" data-tight=\"true\"><li><p>Sıralı veri yapılarının elemanları üzerinden iterasyon</p></li><li><p>Stringler üzerinde iterasyon</p></li><li><p>Dictionary key ve value’ları üzerinde döngü</p></li><li><p>Set elemanları üzerinde döngü</p></li><li><p>Döngü içinde dictionary/set güncelleme tehlikeleri</p></li></ul><h3>Döngü Kontrol İfadeleri</h3><ul class=\"tight\" data-tight=\"true\"><li><p>Continue/break kullanımı</p></li><li><p>else bloğu</p></li><li><p>Nested döngü çıkış stratejileri</p></li></ul><p></p>"},{"title":"Modül 5 - İleri Düzey İterasyon Teknikleri ve Manipülasyon","summary":"<h2>İleri Düzey İterasyon ve Manipülasyon</h2><h3>Dahili Fonksiyonlar İle</h3><ul class=\"tight\" data-tight=\"true\"><li><p>enumerate() ile index ve değer birlikte</p></li><li><p>zip() ile çoklu sequence iterasyonu</p></li><li><p>reversed() ile ters sırada iterasyon</p></li><li><p>sorted() ile sıralı iterasyon</p></li><li><p>iter() ve next() kullanımı</p></li></ul><h3>List Comprehension</h3><ul class=\"tight\" data-tight=\"true\"><li><p>List comprehension sözdizimi ve pattern'leri</p></li><li><p>Dictionary ve set comprehension'ları</p></li><li><p>Bellek verimliliğini nasıl etkilerler</p></li><li><p>Comprehension vs döngü ne zaman kullanılır</p></li><li><p>Performans optimizasyon teknikleri</p></li></ul><p></p>"},{"title":"Modül 6 - Fonksiyonlar","summary":"<h2>Fonksiyon Temelleri</h2><h3>Fonksiyon Nedir ve Neden Kullanılır?</h3><ul class=\"tight\" data-tight=\"true\"><li><p>Soyutlama(abstraction) kavramı</p></li><li><p>Kod tekrar kullanılabilirliği</p></li><li><p>DRY ilkesi</p></li><li><p>Kod organizasyonu ve okunabilirliğini artırma</p></li></ul><h3>Fonksiyon Tanımlama ve Çağırma</h3><ul class=\"tight\" data-tight=\"true\"><li><p>def ifadesi</p></li><li><p>return yapısı</p></li><li><p>void fonksiyonlar</p></li></ul><h3>Fonksiyon Parametreleri ve Argümanları</h3><ul class=\"tight\" data-tight=\"true\"><li><p>Pozisyon bazlı</p></li><li><p>Keyword bazlı</p></li><li><p>Default argument mantığı</p></li><li><p>Pozisyon bazlı ve keyword bazlı yapıları bir arada kullanmak</p></li><li><p>*args, **kwargs kullanımları</p></li></ul><h2>Return Değerleri ve Ölçek(Scope) Kavramı</h2><h3>Return Yapısı</h3><ul class=\"tight\" data-tight=\"true\"><li><p>Tekli değer döndürme</p></li><li><p>Tuple ile birden çok değer döndürme</p></li><li><p>None değer döndürme</p></li><li><p>Return vs print</p></li><li><p>Farklı veri tipleri döndürme</p></li><li><p>Kontrol yapıları ile çıktı ayarlama</p></li><li><p>Erör ile başa çıkma</p></li></ul><h3>Namespace ve Scope Mantığı</h3><ul class=\"tight\" data-tight=\"true\"><li><p>Local scope, global scope</p></li><li><p>Built-in scope</p></li><li><p>Değişkenlerin yaşam döngüsü ve garbage collection</p></li><li><p>İsimlendirme çakışmaları ve sonuçları</p></li><li><p>Python namespace’leri nasıl yönetir</p></li></ul><h2>İleri Düzey Function Kavramları</h2><h3>Lambda Fonksiyonlar</h3><ul class=\"tight\" data-tight=\"true\"><li><p>Anomim fonksiyonlar</p></li><li><p>Lambda fonksiyonlarının tanımlanması</p></li><li><p>Ne zaman normal fonksiyon ne zaman lambda fonksiyonları kullanılır</p></li><li><p>Dahili fonksiyonlarda lambda kullanımı (map, filter, sorted)</p></li><li><p>Veri işleme pipeline'larında lambda</p></li></ul><h3>Decorators ve Higher-Order Function Mantığı</h3><ul class=\"tight\" data-tight=\"true\"><li><p>First-class objeler olarak fonksiyonlar</p></li><li><p>Bir fonksiyonu başka bir fonksiyona argument olarak verme</p></li><li><p>Decorator kavramına giriş</p></li><li><p>Yaygın decorator paternleri</p></li></ul><h3>Recursion</h3><ul class=\"tight\" data-tight=\"true\"><li><p>Recursive düşünme</p></li><li><p>Base case ve recursive case</p></li><li><p>Recursion faydaları ve sınırları</p></li><li><p>Recursion vs iteration ne zaman kullanılır</p></li><li><p>Klasik recursion örnekleri</p></li></ul><h3>Generator</h3><ul class=\"tight\" data-tight=\"true\"><li><p>yield keyword ve generator fonksiyonları</p></li><li><p>Generator ve klasik fonksiyonların farkları</p></li><li><p>Lazy Evaluation ile hafıza verimi artışı</p></li><li><p>Generator state ve execution flow</p></li><li><p>Birden çok yield yapısının kullanımı</p></li><li><p>Sonsuz generator kavramı</p></li><li><p>Büyük veri setlerinde çalışırken generator'ların faydaları</p></li></ul><p></p>"},{"title":"Modül 7 - Object Oriented Programming (OOP)","summary":"<h2>OOP Temelleri</h2><h3>Sınıflar(Class) ve Objeler(Object)</h3><ul class=\"tight\" data-tight=\"true\"><li><p>OOP yaklaşımının faydaları neler</p></li><li><p>OOP vs fonksiyonel programlama</p></li><li><p>Sınıf ve obje kavramı</p></li><li><p>OOP'nin temel prensipleri (Encapsulation, Inheritance, Polymorphism, Abstraction)</p></li><li><p>Sınıf tanımlama</p></li><li><p>Tanımlanan sınıftan obje oluşturma</p></li><li><p>Variable → Attribute, Function → Method kavramları</p></li></ul><h2>Sınıfların Bileşenleri</h2><h3>Sınıf(Class) Kavramlarına Derin Bakış</h3><ul class=\"tight\" data-tight=\"true\"><li><p>Instance attribute vs class attribute</p></li><li><p>__init__ metodu</p></li><li><p>self parametresini</p></li><li><p>Instance metodlarının kullanımı</p></li><li><p>@classmethod, @staticmethod kavramları</p></li><li><p>Setter, deleter kavramları</p></li></ul><h2>İleri Düzey OOP Kavramları</h2><h3>Inheritance ve Polymorphism</h3><ul class=\"tight\" data-tight=\"true\"><li><p>Parent, child; Superclass, Subclass kavramları</p></li><li><p>Single ve Multiple inheritence tanımlama</p></li><li><p>Fonksiyonların etkin kullanımı</p></li><li><p>Methodların üzerine yazmak(overwrite)</p></li><li><p>Polymorphism</p></li></ul><h3>Special/Magic Metodlar</h3><ul class=\"tight\" data-tight=\"true\"><li><p>String temsili: __str__ ve __repr__</p></li><li><p>Karşılaştırma operatörleri: __eq__, __lt__</p></li><li><p>Aritmetik operatörler: __add__, __mul__</p></li><li><p>Diğer magic metodları</p></li></ul><p></p>"},{"title":"Modül 8 - Hata Yönetimi ve Dosya İşlemleri","summary":"<h2>Exception Handling</h2><h3>Hata Yönetimi</h3><ul class=\"tight\" data-tight=\"true\"><li><p>try/except/else/finally blokları</p></li><li><p>Yaygın exception tipleri</p></li><li><p>Custom exception'lar oluşturma</p></li><li><p>Exception hiyerarşileri</p></li><li><p>Hata yönetimi en iyi uygulamaları</p></li></ul><h3>Debug Teknikleri</h3><ul class=\"tight\" data-tight=\"true\"><li><p>Debugging nedir?</p></li><li><p>Debugger araçlarını kullanma</p></li><li><p>Logging modülü yapılandırması</p></li><li><p>Assertion ifadeleri</p></li><li><p>Unit testing temelleri</p></li><li><p>Profiling ve performans analizi</p></li></ul><h2>Dosya I/O</h2><h3>Dosya İşlemleri</h3><ul class=\"tight\" data-tight=\"true\"><li><p>Metin dosyalarını okuma ve yazma</p></li><li><p>Binary dosya işleme</p></li><li><p>CSV ve JSON işleme</p></li><li><p>Dosya işleme için context manager'lar</p></li><li><p>pathlib ile path manipülasyonu</p></li></ul><h3>Veri Serileştirme(Serialization)</h3><ul class=\"tight\" data-tight=\"true\"><li><p>JSON encoding/decoding</p></li><li><p>Python object'leri için pickle</p></li><li><p>Veritabanları ile çalışma (sqlite3)</p></li><li><p>Konfigürasyon dosyası işleme</p></li><li><p>Veri doğrulama stratejileri</p></li></ul><p></p>"},{"title":"Modül 9 - Kütüphaneler","summary":"<h2>Paket Yönetimi Temelleri</h2><h3>pip Kullanımı</h3><ul class=\"tight\" data-tight=\"true\"><li><p>pip nedir ve nasıl çalışır</p></li><li><p>pip install komutu ve parametreleri</p></li><li><p>pip list ve kurulu paketleri görüntüleme</p></li><li><p>pip show ile paket detaylarını inceleme</p></li><li><p>pip uninstall ile paket kaldırma</p></li><li><p>pip freeze ve requirements.txt oluşturma</p></li></ul><h3>conda Kullanımı</h3><ul class=\"tight\" data-tight=\"true\"><li><p>Anaconda/Miniconda kurulumu ve farkları</p></li><li><p>conda install komutu ve channel'lar</p></li><li><p>conda list ve paket listeleme</p></li><li><p>conda update ve paket güncelleme</p></li><li><p>conda remove ile paket kaldırma</p></li><li><p>conda vs pip ne zaman hangisi kullanılır</p></li></ul><h2>Sanal Ortam Kurmak(Virtual Environment)</h2><h3>Python venv ile Environment</h3><ul class=\"tight\" data-tight=\"true\"><li><p>Neden ortam kurmak gerekir, faydaları nelerdir?</p></li><li><p>python -m venv ile environment oluşturma</p></li><li><p>Virtual environment'ı aktif etme (Windows/Mac/Linux)</p></li><li><p>pip ile paket kurulumu</p></li><li><p>requirements.txt kullanımı</p></li><li><p>deactivate ile çıkış</p></li></ul><h3>Conda Environment Yönetimi</h3><ul class=\"tight\" data-tight=\"true\"><li><p>conda create ile environment oluşturma</p></li><li><p>conda activate/deactivate kullanımı</p></li><li><p>conda env list ile environment'ları listeleme</p></li><li><p>environment.yml dosyası oluşturma ve kullanma</p></li><li><p>conda env export ve import işlemleri</p></li><li><p>Base environment ve custom environment'lar</p></li></ul><h2>Uygulamalı Kütüphane Kullanım Örneği</h2><h3>Pandas Kütüphanesi ile Pratik Uygulama</h3><ul class=\"tight\" data-tight=\"true\"><li><p>pip install pandas</p></li><li><p>conda install pandas</p></li><li><p>İlgili bağımlılıkların otomatik kurulumu</p></li><li><p>Versiyon kontrolü ve güncelleme</p></li><li><p>DataFrame ve Series oluşturma</p></li><li><p>CSV dosyası okuma ve yazma</p></li><li><p>Basit veri filtreleme ve seçme</p></li><li><p>Eksik veri kontrolü</p></li><li><p>Gruplama ve agregasyon örneği</p></li><li><p>Excel'e export işlemi</p></li></ul><p></p>"}]},"published_at":"2025-08-29T09:03:28.842360+00:00","promotional_video_url":null,"units":[],"course_instructors":[],"category":null,"course_group":null,"instances":[],"future_instances":[]},"instance":null,"current_user":null,"corporate":false}