INTRODUCTION TO ALGORITHMS & STANDARD CONTAINERS EĞİTİMİ

STL algoritmaları ve konteynerleriyle verimli C++ yaz

Big-O analizinden vector, map ve unordered_map seçimine, sort, ranges ve paralel algoritmalara kadar C++ standart kütüphanesini uygulamalı öğrenin.

Introduction to Algorithms & Standard Containers eğitimi 2 gün sürer; odak: Algoritma analizi, STL konteynerleri, iterator'lar ve standart algoritmalar. Günlük başlıklar: Algoritma Temelleri ve STL Konteynerleri; Standart Algoritmalar ve Performans.

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

Eğitim Hakkında

Algoritma analizi, STL konteynerleri, iterator'lar ve standart algoritmalar

Bu eğitim C++ standart kütüphanesinin algoritma ve konteyner katmanını işler: Big-O analizi, vector, list, deque, map ve unordered_map davranışları, iterator kategorileri ve geçersizleşme kuralları. Ardından sort, find, transform, lower_bound gibi algoritmalar lambda ve C++20 ranges ile birleştirilir; paralel execution policy'ler, reserve/capacity yönetimi ve profilleme ile konteyner seçimi ölçüme dayandırılır.

Süre ve Format

2 Gün. Her gün dört modül; katılımcılar Algoritma Temelleri ve STL Konteynerleri, Standart Algoritmalar ve Performans başlıklarını sırayla uygular.

Seviye

Temel Seviye — Algoritma analizi, STL konteynerleri, iterator'lar ve standart algoritmalar.

Öğrenme Metodu

Katılımcılar derleyici ve profilleme araçlarıyla küçük programlar yazıp farklı konteynerlerin süre ve bellek davranışını karşılaştırarak öğrenir.

Neden Bu Eğitim?

⚙️Doğru Konteyner

Karmaşıklık ve bellek yerleşimine bakarak vector, map veya unordered_map seçimini gerekçelendirirsiniz.

🧮Algoritma Akıcılığı

Elle döngü yazmak yerine standart algoritma ve ranges ile daha kısa ve güvenli kod üretirsiniz.

⏱️Ölçerek Optimize

Benchmark ve profilleme araçlarıyla tahminleri veriye dönüştürürsünüz.

Anahtar Konular

C++ STLstd::vectorunordered_mapC++ algoritmalarC++20 rangesiteratorBig-O analiziC++ eğitimi
“İyi bir algoritma, doğru seçilmiş bir konteynerle birleştiğinde hızlanır.”

Ön Koşullar

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

1
Temel C++

Değişken, fonksiyon, sınıf ve işaretçi kavramlarına aşinalık beklenir.

2
Derleyici Kullanımı

g++/clang++ veya MSVC ile derleme yapabilmek gerekir.

3
Temel Algoritmalar

Döngü, dizi ve özyineleme mantığını bilmek faydalıdır.

4
Geliştirme Ortamı

C++17/20 destekli derleyici ve bir IDE veya editör gerekir.

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ı algoritma karmaşıklığını analiz eder ve temel STL konteynerlerini doğru senaryoda kullanır.
Modül 1
Algoritma Karmaşıklığı ve Problem Çözme
  • Big-O, Big-Theta notasyonları; zaman ve bellek karmaşıklığı analizi
  • Doğrusal arama, ikili arama ve böl-ve-yönet yaklaşımı
  • Sıralama algoritmaları: insertion, merge, quick ve heap sort karşılaştırması
  • Amortize analiz: vector büyüme stratejisi ve push_back maliyeti
  • Algoritma seçimi için veri büyüklüğü, bellek yerelliği (cache locality) ve kararlılık (stability) kriterleri
  • Mikro kıyaslama için Google Benchmark ve chrono ile süre ölçümü
Modül 2
C++ Şablon ve Bellek Temelleri
  • Template sözdizimi, fonksiyon ve sınıf şablonları
  • Akıllı işaretçiler: unique_ptr, shared_ptr, weak_ptr ve RAII
  • Allocator kavramı ve std::pmr ile bellek kaynakları
  • Özel tür için operator< ve hash özelleştirmesi
  • Hata ayıklama: gdb, AddressSanitizer ve iterator debug modu
  • CMake ile derleme, Catch2 / GoogleTest ile birim test
Modül 3
STL Konteynerleri
  • Sıralı konteynerler: std::vector, std::array, std::deque, std::list ve bellek yerleşimi
  • İlişkisel konteynerler: std::map, std::set ve karmaşıklık (O(log n))
  • Unordered konteynerler: std::unordered_map / unordered_set, hash fonksiyonu ve load factor
  • Konteyner adaptörleri: stack, queue, priority_queue
  • Iterator kategorileri, geçersizleşme (invalidation) kuralları ve range-for kullanımı
  • emplace_back, reserve, move semantiği ve performans etkileri
Modül 4
Metin İşleme ve Görünümler
  • std::string, small string optimization ve bellek davranışı
  • std::string_view ile kopyasız metin işleme ve yaşam süresi tuzakları
  • std::span ile dizi görünümleri ve sınır güvenliği
  • Düzenli ifadeler (std::regex) ve ayrıştırma örnekleri
  • std::format ile biçimlendirme ve akış (stream) kullanımı
  • Metin işleme algoritmaları: split, join, trim, KMP ile desen arama
Günün hedefiKatılımcı standart algoritmaları ranges ile birleştirir, iterator'ları kavrar ve performansı ölçer.
Modül 1
Standart Algoritmalar
  • <algorithm> başlığı: std::sort, stable_sort, partial_sort, nth_element
  • Arama: find, find_if, binary_search, lower_bound, upper_bound
  • Dönüştürme ve birleştirme: transform, accumulate, reduce, copy_if, remove-erase idiomu
  • Lambda ifadeleri ve predicate / comparator yazımı
  • C++20 ranges ve views ile boru hattı tarzı veri işleme
  • Algoritma karmaşıklığı, Big-O analizi ve profilleme ile ölçüm
Modül 2
Iterator'lar ve Özel Konteyner Tasarımı
  • Iterator kategorileri: input, forward, bidirectional, random access, contiguous
  • Kendi iterator sınıfını yazma: begin(), end(), operator++, operator*
  • Basit bir ring buffer / sabit kapasiteli vector konteyneri tasarımı
  • Iterator adaptörleri: back_inserter, reverse_iterator, move_iterator
  • C++20 concepts ile algoritma kısıtları (std::ranges::range, sortable)
  • Konteyner invariant'ları, istisna güvenliği ve birim testler
Modül 3
Paralel Algoritmalar
  • C++17 execution policy: seq, par, par_unseq
  • std::for_each, transform ve reduce'un paralel versiyonları
  • Veri yarışı (data race) ve thread güvenli konteyner kullanımı
  • std::mutex, lock_guard ve std::atomic temel kullanımı
  • oneTBB / OpenMP ile karşılaştırma ve ölçeklenebilirlik
  • Hız artışı ölçümü, Amdahl yasası ve ThreadSanitizer ile doğrulama
Modül 4
Performans ve Konteyner Seçimi
  • Bellek yerleşimi: vector ile list performans farkı ve cache etkisi
  • reserve, shrink_to_fit ve capacity yönetimi
  • flat_map / sorted vector ile map karşılaştırması
  • unordered_map için reserve, özel hash ve çakışma analizi
  • perf ve Valgrind (callgrind) ile profilleme
  • Gerçek veri seti üzerinde konteyner seçimi vaka çalışması

Eğitim Kazanımları

Program sonunda katılımcılar:

✅
Algoritma Analizi

Algoritmaların zaman ve bellek karmaşıklığını analiz edip doğru yaklaşımı seçebilirsiniz.

✅
Modern C++ Pratikleri

Şablon, akıllı işaretçi ve RAII ile güvenli C++ kodu geliştirebilirsiniz.

✅
STL Konteynerleri

Kullanım senaryosuna göre doğru STL konteynerini seçip karmaşıklığını gerekçelendirebilirsiniz.

✅
Metin İşleme

string, string_view ve span ile güvenli ve kopyasız metin işleme kodu yazabilirsiniz.

✅
STL Algoritmaları

Standart algoritmaları lambda ve ranges ile birleştirerek temiz ve verimli kod yazabilirsiniz.

✅
Özel Konteyner

Kendi iterator ve konteyner sınıflarınızı STL ile uyumlu biçimde tasarlayabilirsiniz.

✅
Paralel Algoritmalar

Paralel execution policy'lerle algoritmaları hızlandırıp veri yarışlarını tespit edebilirsiniz.

✅
Performans Optimizasyonu

Ölçüm ve profilleme verisine dayanarak konteyner seçimini optimize edebilirsiniz.

Kimler İçin Uygundur?

  • Temel C++ bilgisine sahip yazılım geliştiriciler
  • öğrenciler
  • performansa duyarlı kod yazmak isteyen mühendisler için uygundur

Sıkça Sorulan Sorular

Bu eğitim kimler için uygundur?
Temel C++ bilgisine sahip yazılım geliştiriciler, öğrenciler ve performansa duyarlı kod yazmak isteyen mühendisler için uygundur.
Eğitime katılmak için hangi ön bilgiler gerekir?
Değişken, fonksiyon, sınıf ve işaretçi kavramlarına aşinalık beklenir. g++/clang++ veya MSVC ile derleme yapabilmek gerekir. Döngü, dizi ve özyineleme mantığını bilmek faydalıdır.
Eğitimde hangi C++ standardı kullanılır?
Örnekler C++20 ağırlıklıdır; ranges ve concepts gibi özellikler gösterilirken C++17 karşılıkları da belirtilir.
Uygulamalı çalışmalar hangi ortamda yapılır?
Uygulamalar C++20 destekli derleyici ve profilleme araçlarıyla yerel geliştirme ortamında yapılır.
Eğitim sonunda belge verilir mi?
Programı tamamlayan katılımcılara Digital Vizyon Akademi Katılım ve Başarı Sertifikası verilir.

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. Introduction to Algorithms & Standard Containers Eğitimi Sertifika Kodu DV-2026XX00 Tarih 27.10.2026 Yetkili İmza DV AKADEMİ

Eğitim Bilgileri

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

Bu Eğitimle Birlikte Tercih Edilenler

Docker ve KonteynerleştirmeDeveloping Solutions for Microsoft Azure: Azure Container Registry Eğitimi
DevOps ve Konteyner Eğitimleri

Developing Solutions for Microsoft Azure: Azure Container Registry Eğitimi

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

Azure Container Registry eğitimi: ACR katmanları, imaj push/pull, ACR Tasks ile bulutta derleme, içerik güveni, replikasyon ve AKS entegrasyonu AZ-204 bağlamınd

Detayları Gör →
Docker ve KonteynerleştirmeDeveloping Solutions for Microsoft Azure: Container Instances Eğitimi
DevOps ve Konteyner Eğitimleri

Developing Solutions for Microsoft Azure: Container Instances Eğitimi

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

Azure Container Instances eğitimi: sunucusuz konteyner dağıtımı, container group, Azure Files bağlama, VNet entegrasyonu ve AKS virtual node AZ-204 bağlamında.

Detayları Gör →
Docker ve KonteynerleştirmeDeveloping Solutions for Microsoft Azure: Cosmos DB Containers Eğitimi
DevOps ve Konteyner Eğitimleri

Developing Solutions for Microsoft Azure: Cosmos DB Containers Eğitimi

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

Cosmos DB container eğitimi: bölümleme anahtarı, RU/s verim, autoscale ve serverless, tutarlılık düzeyleri, indeksleme ve SDK işlemleri AZ-204 bağlamında.

Detayları Gör →
Docker ve KonteynerleştirmeDevOps ve Konteynerizasyon Eğitimi
DevOps ve Konteyner Eğitimleri

DevOps ve Konteynerizasyon Eğitimi

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

DevOps ve konteynerizasyon eğitimi: Docker ile paketleme, Compose, konteyner tabanlı CI/CD, dağıtım stratejileri, güvenlik ve gözlemlenebilirlik uygulamalı.

Detayları Gör →
Docker ve KonteynerleştirmeDevOps with Docker: Container Management Eğitimi
DevOps ve Konteyner Eğitimleri

DevOps with Docker: Container Management Eğitimi

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

Docker container management eğitimi: konteyner yaşam döngüsü, ağ sürücüleri, volume ve bind mount, kaynak limitleri, log yönetimi ve sorun giderme uygulamalı.

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