Bilgisayar Bilimi

Algoritmalar, Veri Yapıları ve Yazılım Geliştirme

Algoritmalar

Sıralama Algoritmaları

  • Bubble Sort: O(n²), basit ama yavaş
  • Quick Sort: O(n log n) ortalama, pivot seçimi
  • Merge Sort: O(n log n), kararlı sıralama
  • Heap Sort: O(n log n), heap veri yapısı

Arama Algoritmaları

  • Linear Search: O(n), sırasız veriler
  • Binary Search: O(log n), sıralı veriler
  • Depth-First Search (DFS): Graf gezinme
  • Breadth-First Search (BFS): Seviye seviye gezinme

Dinamik Programlama

  • Memoization: Top-down yaklaşım
  • Tabulation: Bottom-up yaklaşım
  • Fibonacci: Klasik örnek
  • Longest Common Subsequence: Dizi hizalama
  • Knapsack Problem: Optimizasyon

Graf Algoritmaları

  • Dijkstra: En kısa yol, pozitif ağırlıklar
  • Bellman-Ford: Negatif ağırlıklar
  • Floyd-Warshall: Tüm çiftler arası en kısa yol
  • Kruskal & Prim: Minimum spanning tree

Veri Yapıları

Temel Veri Yapıları

  • Array: Sabit boyut, O(1) erişim
  • Linked List: Dinamik boyut, O(n) erişim
  • Stack: LIFO (Last In First Out)
  • Queue: FIFO (First In First Out)

Ağaç Yapıları

  • Binary Tree: Her düğüm max 2 çocuk
  • Binary Search Tree: Sol < Kök < Sağ
  • AVL Tree: Dengeli BST
  • Red-Black Tree: Dengeli, renk özelliği
  • B-Tree: Veritabanları için

Hash Tabloları

  • Hash Function: Anahtar → İndeks
  • Collision Resolution: Chaining, Open Addressing
  • Load Factor: Performans göstergesi
  • Ortalama O(1): Ekleme, silme, arama

Programlama Dilleri ve Paradigmalar

Python

  • Özellikler: Yüksek seviye, yorumlanan, dinamik tip
  • Kullanım: Veri bilimi, ML, web, otomasyon
  • Kütüphaneler: NumPy, Pandas, scikit-learn

Programlama Paradigmaları

  • Prosedürel: Fonksiyon odaklı (C)
  • Nesne Yönelimli: Sınıf ve nesneler (Java, Python)
  • Fonksiyonel: Saf fonksiyonlar (Haskell, Lisp)
  • Deklaratif: Ne yapılacağı (SQL)

Yazılım Geliştirme

Versiyon Kontrolü

  • Git: Dağıtık versiyon kontrol
  • GitHub/GitLab: Kod barındırma
  • Komutlar: commit, push, pull, merge, branch

Test ve Debugging

  • Unit Testing: Birim testleri
  • Integration Testing: Entegrasyon testleri
  • Debugging Tools: pdb, IDE debuggers