DATA STRUCTURES & ALGORITHMS IN PYTHON: IMPLEMENTING DATA STRUCTURES EĞİTİMİ

Veri yapılarını kendiniz yazın

Node sınıfı, tekli-çift yönlü bağlı liste, stack-queue sınıfları, hash tablo, ikili heap ve birim testler

Python'da bağlı liste, stack, queue, hash tablo ve ikili heap yapılarını sıfırdan yazma; pytest ile test-önce geliştirme ve performans karşılaştırması eğitimi.

2 gün Orta Seviye Online / Yüz Yüze / Hibrit Sertifikalı

Eğitim Hakkında

Veri yapılarını sıfırdan uygulama

Eğitim, veri yapılarını hazır kütüphaneye başvurmadan yazma becerisi kazandırır: Node sınıfı ile tekli ve çift yönlü bağlı liste, dairesel liste, __len__ ve __iter__ ile Stack ve Queue sınıfları, zincirleme çakışma çözümlü hash tablo, ikili heap ve heapq, öncelik kuyruğu, dinamik dizi büyütme mantığı ve pytest ile birim test.

Süre ve Format

2 Gün. Her gün dört modül; 1. gün Bağlı Liste ve Dizi Tabanlı Yapılar; 2. gün Stack, Queue, Hash Tablo ve Heap. Her modül uygulamalı alıştırmalarla pekiştirilir.

Seviye

Orta Seviye — Bağlı liste, stack, queue, hash tablo ve heap yapılarını Python'da sıfırdan yazıp test etmeyi kapsar.

Öğrenme Metodu

Her yapı arayüz tanımı, test yazımı ve ardından implementasyon sırasıyla geliştirilir (test-önce yaklaşım).

Neden Bu Eğitim?

🎯Kodlayarak öğrenme

Yapıların iç işleyişini yazarak kavrar, hazır kütüphanelerin sınırlarını anlarsınız.

🛠️Test-önce disiplin

pytest ile veri yapılarınızı doğrulayarak güvenilir kod yazarsınız.

📈Performans bilinci

Kendi yapınızla heapq ve dict gibi yerleşik çözümleri ölçerek karşılaştırırsınız.

Anahtar Konular

python veri yapıları uygulamabağlı liste pythonstack queue pythonhash tablo pythonheap pythonöncelik kuyruğupytest veri yapısıalgoritmapython sınıfnode sınıfı
“Bir yapıyı yazmadan, anlamış olmazsınız.”

Ön Koşullar

Eğitimden verim almak için faydalı olacak bilgi ve ortam gereksinimleri

1
Temel Python

Değişken, fonksiyon, liste ve sözlük kullanımına dair başlangıç düzeyinde Python bilgisi beklenir.

2
Geliştirme ortamı

Python 3.10+ ve VS Code ya da Jupyter Notebook kurulu bir bilgisayar gereklidir.

3
Komut satırı

pip ile paket kurma ve sanal ortam (venv) oluşturma konusunda temel rahatlık faydalıdır.

4
Ağ bağlantısı

Örnek veri setleri ve paket kurulumları için internet erişimi olan bir ortam önerilir.

Eğitim İçeriği

Programın gün gün akışı aşağıdadır. Bir güne tıklayarak o günün modüllerini ve içeriklerini görebilirsiniz.

Günün hedefiKatılımcı bağlı liste ve dizi tabanlı yapıları sıfırdan uygular.
Modül 1
Veri Yapılarını Sıfırdan Yazma
  • Node sınıfı ile tekli bağlı liste: ekleme, silme, arama
  • Çift yönlü bağlı liste ve dairesel yapı
  • Stack ve Queue sınıflarını __len__, __iter__ ile tamamlama
  • Hash tablo uygulaması: hash fonksiyonu ve zincirleme çakışma çözümü
  • Öncelik kuyruğu: heapq ve ikili yığın (binary heap) uygulaması
  • Birim testlerle veri yapısı doğrulama
Modül 2
Temel Veri Yapıları
  • Python yerleşik yapıları: list, dict, set ve karmaşıklıkları
  • Yığın (stack) ve LIFO; liste ile yığın uygulaması
  • Kuyruk (queue) ve FIFO; collections.deque kullanımı
  • Bağlı liste (linked list) kavramı ve düğüm yapısı
  • Big-O notasyonu: O(1), O(log n), O(n), O(n log n), O(n²)
  • Dizi ve bağlı liste karşılaştırması: erişim, ekleme, bellek
Modül 3
Atama, Referans ve Kimlik
  • Python'da değişkenin nesneye etiket olması (name binding)
  • id(), is ve == farkı
  • Mutable ve immutable nesnelerde atamanın sonuçları
  • Fonksiyon argümanlarının referansla geçmesi ve yan etkiler
  • Varsayılan argüman tuzağı: def f(x, lst=[])
  • Küçük tamsayı ve string interning davranışı
Modül 4
pytest Temelleri
  • Test keşfi, assert yeniden yazımı ve çıktıyı okuma
  • Fixture'lar, scope (function/module/session) ve conftest.py
  • parametrize ile veri güdümlü testler
  • pytest.raises ile istisna beklentisi
  • Marker'lar: skip, xfail, özel işaretler
  • tmp_path, monkeypatch ve capsys yerleşik fixture'ları
Günün hedefiKatılımcı stack, queue, hash tablo ve heap yapılarını yazar ve test eder.
Modül 1
Ağaç Yapıları
  • İkili ağaç ve ikili arama ağacı (BST): ekleme, arama, silme
  • Inorder, preorder, postorder ve level-order dolaşımları
  • Ağaç yüksekliği ve dengeli ağaç (AVL, kırmızı-siyah) kavramı
  • Heap (yığın) ağacı ve heapq ile en küçük K eleman
  • Trie ile ön ek araması
  • Ağaç problemlerini özyineleme ve yığın ile çözme
Modül 2
Arama ve Algoritma Analizi
  • Doğrusal arama ve ikili arama (binary search) uygulaması
  • bisect modülü ile sıralı listede ekleme ve arama
  • En iyi, ortalama ve en kötü durum analizi
  • Özyineleme (recursion), temel durum ve çağrı yığını
  • Dinamik programlamaya giriş: memoization (functools.lru_cache)
  • İki işaretçi (two pointers) ve kayan pencere teknikleri
Modül 3
Hash Mantığı ve Performans
  • hash() fonksiyonu ve __hash__/__eq__ sözleşmesi
  • Set ve dict üyelik testinin ortalama O(1) olması
  • Liste ile set üyelik testi süre karşılaştırması (timeit)
  • Hash çakışması ve dict açık adresleme mantığına genel bakış
  • Kendi sınıfımızı set içinde kullanmak: __eq__ ve __hash__ yazımı
  • İki büyük dosyanın satırlarını set farkıyla karşılaştırma
Modül 4
Liste ve Tuple Performansı
  • sys.getsizeof ile liste ve tuple bellek karşılaştırması
  • timeit ile append, insert(0) ve deque işlemlerinin süresi
  • collections.deque ile baştan/sondan O(1) ekleme-çıkarma
  • array modülü ve numpy dizisi ile homojen veri tutma
  • Liste içinde arama maliyeti O(n) ve bisect ile sıralı arama
  • Yaygın tuzaklar: [[0]*3]*3 çoğaltma hatası ve liste üzerinde dolaşırken silme

Eğitim Kazanımları

Program sonunda katılımcılar:

✅
Yapıları Yazma

Bağlı liste, hash tablo ve heap yapılarını sıfırdan uygulayıp test edebilirsiniz

🔧
Temel Yapılar

Stack, queue ve bağlı liste mantığını Big-O ile değerlendirebilirsiniz

📊
Referans Anlayışı

Atama, kimlik ve değişebilirlik kavramlarını ayırt ederek kaynaklı hataları önleyebilirsiniz

🧩
pytest Ustalığı

Fixture, parametrize ve marker ile bakımı kolay test paketleri yazabilirsiniz

🚀
Ağaç Yapıları

BST ve heap yapılarında ekleme, arama ve dolaşım problemlerini çözebilirsiniz

🔍
Arama ve Analiz

İkili arama, özyineleme ve memoization ile algoritma karmaşıklığını analiz edebilirsiniz

🛡️
Hash ve Hız

Hash mantığını anlayıp set ve dict aramalarının neden hızlı olduğunu ölçerek gösterebilirsiniz

📌
Yapı Performansı

Liste, tuple ve deque seçimini bellek ve süre ölçümleriyle gerekçelendirebilirsiniz

Kimler İçin Uygundur?

  • Veri yapılarını teorik olarak bilen ancak kodlama pratiği kazanmak isteyen öğrenci
  • geliştiriciler

Sıkça Sorulan Sorular

Bu eğitim kimler için uygundur?
Veri yapılarını teorik olarak bilen ancak kodlama pratiği kazanmak isteyen öğrenci ve geliştiriciler.
Eğitim sonunda sertifika verilir mi?
Eğitimi tamamlayan katılımcılar Digital Vizyon Akademi Katılım ve Başarı Sertifikası almaya hak kazanır; sertifika DVA'nın kendi katılım ve başarı belgesidir.
Eğitim için hangi yazılımlar gereklidir?
Python 3.10 veya üzeri, bir kod editörü (VS Code ya da PyCharm) ve eğitimin konusuna göre listelenen paketler yeterlidir; kurulum adımları ilk oturumda birlikte kontrol edilir.
OOP bilgisi gerekli mi?
Sınıf, __init__ ve metot kullanımını bilmek gerekir; özel metotlar (__len__, __iter__) eğitimde anlatılır.
Yazılan yapılar performans açısından yerleşiklerle karşılaştırılıyor mu?
Evet, kendi implementasyonlar timeit ile list, deque ve heapq ile kıyaslanır.

Sertifikalandırma

Bu eğitim Digital Vizyon Akademi Başarı Sertifikası ile tamamlanır.

Eğitim başında “Ön Test”, bitiminde “Son Test” uygulanarak gelişim ölçümlenir. Değerlendirme formunu dolduran katılımcılar sertifikalarını alır. Sertifikanızın geçerliliğini Sertifika Sorgulama sayfasından doğrulayabilirsiniz.

Örnek Sertifika d Digital Vizyon AKADEMİ KATILIM SERTİFİKASI Bu sertifika [Katılımcı Adı Soyadı] adlı katılımcının aşağıdaki eğitim programını başarıyla tamamladığını belgeler. Data Structures & Algorithms in Python: Implementing Data St Sertifika Kodu DV-2026XX00 Tarih 27.10.2026 Yetkili İmza DV AKADEMİ

Eğitim Bilgileri

Süre2 gün
SeviyeOrta Seviye
FormatOnline / Yüz Yüze / Hibrit
KonuPython
Sertifika✓ Var
Hemen Bilgi Al
İlgili Eğitimler

Bu Eğitimle Birlikte Tercih Edilenler

PythonPython ile Büyük Veri ve İş Analitiği Eğitimi
Yazılım Geliştirme Eğitimleri

Python ile Büyük Veri ve İş Analitiği Eğitimi

3 günOrtaOnline / Yüz Yüze / Hibrit

Python ile büyük veri ve iş analitiği eğitimi: pandas, Dask, PySpark, DuckDB, KPI, kohort ve RFM analizi, tahmin ve Streamlit/Dash panelini 3 günde uygulayın.

Detayları Gör →
PythonPython ile Derin Ödüllendirme Öğrenimi Eğitimi
Yazılım Geliştirme Eğitimleri

Python ile Derin Ödüllendirme Öğrenimi Eğitimi

3 günUzmanOnline / Yüz Yüze / Hibrit

Python ile derin ödüllendirme öğrenimi eğitimi: MDP, Q-Learning, DQN, REINFORCE, A2C, PPO ve SAC algoritmalarını PyTorch ve Gymnasium ile 3 günde kodlayın.

Detayları Gör →
PythonPython ile Mobil Robotlar için ROS Eğitimi
Yazılım Geliştirme Eğitimleri

Python ile Mobil Robotlar için ROS Eğitimi

3 günİleriOnline / Yüz Yüze / Hibrit

Python ile mobil robot için ROS 2 eğitimi: rclpy, URDF, Gazebo, TF2, SLAM Toolbox ve Nav2 ile otonom navigasyon yapan robot yazılımını 3 günde geliştirin.

Detayları Gör →
PythonPython ile Plotly ve Dash Eğitimi
Yazılım Geliştirme Eğitimleri

Python ile Plotly ve Dash Eğitimi

3 günOrtaOnline / Yüz Yüze / Hibrit

Python ile Plotly ve Dash eğitimi: Plotly Express, Graph Objects, callback'ler, DataTable, çok sayfalı uygulama ve gunicorn ile dağıtımı 3 günde öğrenin.

Detayları Gör →
PythonPython ile Programlamaya Giriş Eğitimi
Yazılım Geliştirme Eğitimleri

Python ile Programlamaya Giriş Eğitimi

3 günBaşlangıçOnline / Yüz Yüze / Hibrit

Python ile programlamaya giriş eğitimi: algoritma mantığı, değişkenler, if ve döngüler, liste, sözlük, fonksiyonlar ve dosya işlemlerini 3 günde öğrenin.

Detayları Gör →
+90 (501) 369 40 14 WhatsApp [email protected] LinkedIn