Algoritma Kavramı, Sözde Kod ve Akış Şemaları
Öğretim Görevlisi: Güvenç Usanmaz
E-posta: guvencu@anadolu.edu.tr
Oda: 115
Bir algoritma (algorithm), belirli bir problemi çözmek için tanımlanmış sonlu, sıralı ve açık adımlar bütünüdür.
"Algoritma" kelimesi, 9. yüzyılda yaşamış Fars bilim insanı El-Harezmi (Al-Khwarizmi)'den gelir. Onun "Hisab al-jabr w'al-muqabala" adlı eseri cebir ve ondalık sistemin temelidir.
El-Harezmi'nin Latince ismi "Algoritmi" olarak yazılmış ve zamanla "algorithm" kelimesine dönüşmüştür.
Bilgisayar çok hızlıdır ama nasıl yapacağını bilmez; bunu algoritma belirler. Verimli algoritma, aynı problemi milyarlarca kat daha hızlı çözebilir!
| Problem | Yavaş Yöntem | Hızlı Yöntem | Fark |
|---|---|---|---|
| 1'den n'e toplama | Döngü ile: n adım | Formül: n·(n+1)/2 (3 adım) | Dev fark! |
| Arama | O(n) - linear | O(log n) - binary search | 1.000.000 → 20 adım |
| Matris çarpımı | O(n³) | O(n².³⁷) | AI ve GPU temeli |
Sözde kod, gerçek programlama diline yakın ama herhangi bir programlama diline bağımlı olmayan, insanların kolayca anlayabileceği adımlardır. Kodlamadan önce algoritmayı tasarlamak için kullanılır.
Akış şeması, algoritmanın grafiksel gösterimidir. Her şekil farklı bir işlevi temsil eder ve oklar ile bağlanarak akışın yönü gösterilir.
Başla / Bitir
İşlem / Hesaplama
Karar (Evet/Hayır)
Giriş / Çıkış
Akış Yönü
Bağlantı Noktası
Bu derste Python programlama dilini kullanacağız. İşte bazı temel kavramlar:
# Değişken tanımlama (variable)
x = 10
isim = "Ahmet"
pi = 3.14
# Girdi (input)
sayi = float(input("Bir sayı giriniz: "))
# Çıktı (output)
print("Girilen sayı:", sayi)
# Aritmetik işlemler (arithmetic operators)
a, b = 5, 2
print(a + b) # Toplama: 7
print(a - b) # Çıkarma: 3
print(a * b) # Çarpma: 10
print(a / b) # Bölme: 2.5
print(a // b) # Tam bölme: 2
print(a % b) # Kalan (mod): 1
print(a ** b) # Üs alma: 25
// → Tam bölme (ondalık kısmı atar)% → Mod - Bölmeden kalan** → Üs alma (örn: 2**3 = 8)Programlama öğrenirken yapay zeka araçlarından yardım alabilirsiniz:
ChatGPT
Claude AI
Grok AI
Gemini AI
IDE (Integrated Development Environment) = Tümleşik Geliştirme Ortamı
Kod yazma, çalıştırma, hata ayıklama (debugging) ve proje yönetimini tek bir programda birleştiren yazılımlardır.
Kodunuzda hataları bulma ve düzeltme sürecidir. "Bug" (böcek) terimi, 1947'de Grace Hopper'ın bilgisayarda gerçek bir böcek bulmasından gelir!
İç içe döngülerde kafanız karıştığında, bir breakpoint koyup her adımda i ve j değişkenlerinin nasıl değiştiğini izleyin. Bu, trace table yapmaktan çok daha hızlı ve etkilidir!
Programlama pratik yaparak öğrenilir! Kod yazmadan, sadece izleyerek veya okuyarak programcı olunmaz.