Algoritma nedir? Bir fikirden çalışan bir çözüme.
Koddan önce düşünce gelir. Girdileri gör, kuralları değiştir, döngüyü adım adım çalıştır. Algoritmik düşünmeye görsel ve etkileşimli bir başlangıç.

Oku. Gör. Dene.
Bu rehberde iki görsel harita, bir karar deneyi, adım adım sayı taraması ve kısa bir test var. Kod yazmadan, sonucu değiştirerek öğren.
Bir şeyleri programlamak için önce programlama dili bilmek gerekir mi? Hayır. Önce bir problemin nasıl çözüleceğini düşünmeyi öğrenebilirsin. Algoritma tam olarak bununla ilgilidir. Bu rehberde karmaşık formüller yerine örnekler, şekiller ve küçük deneyler kullanacağız.

1. Algoritma nedir?
Algoritma, bir işi ya da problemi çözmek için izlenen açık, sıralı ve sonuca götüren adımlar bütünüdür. Bilgisayara özgü değildir. Kahve hazırlamak, bir adres bulmak veya bir listeden isim seçmek de adım adım tarif edilebilir.
Örneğin birine «Mutfaktan bir bardak su getir» dersen, yapılacak işi kabaca anlatmış olursun. Ama sistemin hata yapmamasını istiyorsan daha açık olman gerekir: Bardağı bul, bardağın temiz olduğundan emin ol, suyla doldur ve getir. Bardak yoksa ne olacağını da belirt.
Bir problemi çözmek başka, o problemi her defasında çözecek güvenilir yöntemi tarif etmek başka bir beceridir.
2. Her algoritmanın bir girdisi, işlemi ve çıktısı vardır
- Girdi: İşlenecek bilgi. Örneğin bir kişinin yaşı veya bir sayı listesi.
- İşlem: Uygulanacak kurallar. Örneğin karşılaştırma, toplama veya seçim.
- Çıktı: Sonuç. Örneğin «giriş serbest» kararı ya da listedeki en büyük sayı.
Basit bir algoritmada bu üçlü kolay görülür. Daha gelişmiş programlarda ise araya çok sayıda kontrol, tekrar, hata yönetimi ve başka sistemlerle iletişim girer. Ama temel düşünce değişmez.
3. Sıra neden önemli?
Bir tarifte «fırından çıkar» adımını «fırına koy» adımından önce yazamazsın. Programlamada buna sıralama (sequence) denir. Komutların hangi sırayla uygulanacağı sonuç üzerinde doğrudan etkilidir.
Bu nedenle iyi bir algoritma yalnızca ne yapılacağını değil, ne zaman yapılacağını da belirler. Üstelik eksik bilgi varsa nasıl davranılacağını da tarif etmelidir.
4. Koşullar: Bilgisayar nasıl karar veriyor?
Bilgisayar bir insan gibi sezgisel karar vermek zorunda değildir. Ona bir kural yazarız: «EĞER şart doğruysa A işlemini, DEĞİLSE B işlemini yap.» Bu mantık yazılımlarda if / else olarak karşımıza çıkar.
Az önceki deneyde VE kelimesi belirleyiciydi. Yaş uygun olsa bile bilet yoksa sonuç olumsuzdur. VEYA kullansaydık iki şarttan yalnızca birinin gerçekleşmesi yeterli olabilirdi. Bu iki kelime, gerçek yazılımlarda çok büyük fark yaratır.
5. Döngüler: Aynı işlemi tekrar tekrar yapmanın yolu
Bir tablodaki beş kişinin kaydını elle kontrol edebilirsin. Peki ya elli bin kişi olsaydı? Bilgisayarların gücü, önceden belirlediğimiz işlemleri çok sayıda veri üzerinde tekrar tekrar uygulayabilmesidir.
Buna döngü (loop) denir. Bir döngünün hangi kayıt üzerinde başlayacağını, neyi tekrarlayacağını ve ne zaman duracağını tanımlamak gerekir.
Sayıların tamamını gördüğün hâlde, örnekte bilgisayarın izleyeceği sırayı özellikle adım adım ilerlettik. Böylece önemli bir fikri fark ettin: Her aşamada geçici bir sonuç saklayabilir ve yeni bilgi geldikçe güncelleyebiliriz.
6. Sözde kod: Henüz dil öğrenmeden program tasarlamak
Python, C# veya JavaScript bilmeden de bir programın çalışma mantığını yazabilirsin. İnsan tarafından okunabilir bu tür tariflere sözde kod (pseudocode) denir. Sözde kodun amacı bilgisayarın doğrudan çalıştırması değil, insanın çözümü açıkça görmesidir.
EN_BÜYÜK = listedeki ilk sayı
Listedeki sonraki her sayı için:
EĞER sayı > EN_BÜYÜK İSE
EN_BÜYÜK = sayı
EN_BÜYÜK değerini göster
Burada matematik açısından zor bir işlem yok. İlk sayı geçici olarak en büyük kabul ediliyor. Sonraki sayılarla karşılaştırılıyor. Gerekirse değer değişiyor. Liste bittiğinde algoritma da bitiyor.
7. Akış şeması: Adımları gözle görmek
Akış şeması, bir algoritmanın hangi koşulda hangi yöne ilerlediğini kutular ve oklarla gösterir. Oval veya yuvarlatılmış şekiller başlangıç/bitişi, dikdörtgenler işlemleri, eşkenar dörtgenler karar noktalarını temsil edebilir.

Bir şemayı değerlendirirken üç soru sor: Başlangıç nerede? Karar hangi bilgiye göre veriliyor? Her yolun sonunda ne oluyor? Bu sorulara net cevap alamıyorsan algoritmada eksik bir adım olabilir.
8. Algoritma kelimesi nereden geliyor?
Dokuzuncu yüzyılda yaşamış matematikçi Harezmi (el-Hârizmî), cebir problemlerini sistemli biçimde çözme yöntemleriyle tanınır. El-cebir, bir denklemi düzenleyip eksik veya negatif terimleri giderme; el-mukabele ise denklemin iki yanındaki benzer terimleri dengeleme yaklaşımıdır.
Harezmi'nin adının Latinceleşmiş biçimi, zaman içinde algorithm sözcüğünün gelişmesine kaynaklık etmiştir. Ancak ilk algoritmayı onun icat ettiğini söylemek doğru olmaz: adım adım hesaplama yöntemleri çok daha eskidir. Onun katkılarından biri, matematiksel çözüm yollarını sistematik biçimde açıklamasıdır.
Bu konunun tarihsel ayrıntılarını merak edenler için aşağıda St Andrews Üniversitesi'nin matematik tarihi arşivine bağlantı bıraktım. İlk aşamada önemli olan isim ve tarih ezberlemek değil, genel çözüm yöntemi fikrini kavramak.
9. Yapay zekâya daha iyi talimat vermek için neden yararlı?
Bir yapay zekâdan yazılım geliştirmesini istediğinde yalnızca sonucu söylersen, eksik kuralları kendisi tahmin etmek zorunda kalır. Oysa sınırları, istisnaları ve sonucu nasıl kontrol edeceğini söylersen hem geliştirme hem test süreci daha güvenilir ilerler.
Bu örnekte “geciken” sözcüğünü açık bir tarih karşılaştırmasına çevirdik. Gerçek bir uygulamada saat dilimi ve son teslim anı da tanımlanmalıdır. İyi talimat, belirsizliği azaltan talimattır.
10. Kendini dene
Aşağıdaki küçük sorunun cevabını ezberlemeye çalışmadan, nedenini düşün.
Peki şimdi hangi konuyu öğrenmelisin?
- Değişken: Bilgiyi geçici olarak sakladığımız isimlendirilmiş alan.
- Veri türü: Sayı, metin, tarih veya doğru/yanlış gibi farklı bilgi türleri.
- Koşul: Bir kararın hangi durumda verileceği.
- Döngü: Bir işlemin tekrar edilmesi ve nerede duracağı.
- Liste ve fonksiyon: Çoklu verileri tutmak ve tekrar kullanılabilir işlemleri düzenlemek.
Bu kavramları küçük örneklerle kavradığında bir programlama diline geçiş çok daha anlaşılır olacaktır. Türev, integral veya ileri düzey matematik öğrenmek zorunda değilsin; başlangıçta karşılaştırma, dört işlem ve mantık yeterli.
Kaynaklar ve ileri okuma
- St Andrews Üniversitesi — Al-Khwarizmi: Harezmi, cebir ve tarihsel bağlam.
- BBC — Algoritmaları adım adım öğretmek: Gündelik görevler üzerinden algoritmik düşünme örnekleri.
- MDN Web Docs — Reduced motion: Etkileşimli içeriklerin erişilebilirliğine dair teknik açıklama.
Kodu ezberlemeye başlamadan önce şu soruyu sormayı öğren: «Bir işi başka birine, yanlış anlamasına yer bırakmadan hangi adımlarla tarif ederim?»
Bu rehber, algoritmik düşünmeye başlangıç içindir. İçindeki örnekler eğitim amaçlıdır; gerçek uygulamalarda iş kuralları, erişim yetkileri, veri doğrulama ve testler ayrıca tasarlanır.