Ana Sayfa · Akademi · Robotik ve Kodlama · Algoritmalar · Algoritma Nedir?

Algoritma Nedir?

Bir problemi bilgisayarın veya robotun uygulayabileceği açık adımlara dönüştürmeyi sıralama, koşul ve tekrar örnekleriyle öğren.

DERS PUSULASI

Bu sayfayı ne için kullanacaksın?

Ana fikir

Algoritma, bir görevi tamamlamak için hazırlanan açık adımlar bütünüdür. Sıralama, koşul ve tekrar en temel yapılardır. Sözde kod çözüm mantığını programlama dilinden bağımsız yazmayı sağlar. Akış şeması adımlar ve kararlar arasındaki ilişkiyi görselleştirir. Hata ayıklama, beklenen sonuçla gerçek sonucu karşılaştırarak sorunu bulma sürecidir. İyi bir…

Üretilecek kanıt

Algoritma Nedir? konusunu kalıcı hâle getirmenin en iyi yolu, kavramı küçük ve ölçülebilir bir göreve dönüştürmektir. Bu çalışmada Algoritma Nedir? ile 1. Açık olmalı arasındaki ilişkiyi kullanarak açık bir algoritma, sözde kod ve test tablosu hazırlayacaksın. Amaç yalnız sonucun çalışması değil; hangi kararı neden verdiğini, neyi test ettiğini ve hangi…

Kontrol tuzağı

Bir algoritmadaki veya koddaki hatayı bulup düzeltme işlemine hata ayıklama denir. İngilizcesi “debugging”dir. Hata ayıklarken şu sırayı kullanabilirsin: Beklenen sonucu açıkça yaz. Gerçekte ne olduğunu gözlemle. Algoritmayı küçük parçalara ayır. Her adımı tek tek test et. İlk farklı sonucun oluştuğu noktayı bul.…

Sonraki bağlantı

Scratch’te Sıralama, Koşul ve Döngü: Bir karakteri labirentten çıkaran ilk etkileşimli program.

Modül kaynakları: Python Tutorial · Arduino Learn

SeviyeBaşlangıç
Yaş10–15
Süre30–45 dk
Ön koşulYok
İçerikStandart ders · 1.618 kelime
Son güncelleme

Algoritma Nedir?

Bir arkadaşına evinden parka nasıl gideceğini anlattığını düşün. “Dışarı çık, biraz ilerle ve oradan dön” dersen arkadaşın hangi kapıdan çıkacağını, ne kadar ilerleyeceğini ve hangi yöne döneceğini bilemeyebilir. Talimatların doğru olsa bile yeterince açık değildir.

Şimdi aynı yolu şöyle anlatalım:

  1. Apartmanın ana kapısından çık.
  2. Sağa dön.
  3. İlk yaya geçidine kadar düz ilerle.
  4. Işık yeşil olduğunda karşıya geç.
  5. Soldaki park girişinden içeri gir.

Bu ikinci anlatım, uygulanabilir ve sıralı adımlardan oluşur. İşte belirli bir amacı gerçekleştirmek için hazırlanan açık ve sonlu adımlar dizisine algoritma denir.

Algoritmalar yalnız bilgisayar ve robotlarda kullanılmaz. Yemek tarifi, oyun kuralı, okul çantası kontrol listesi, bir deneyin aşamaları ve antrenman programı da birer algoritma örneğidir.

Kısa tanım: Algoritma, bir problemi çözmek veya bir görevi tamamlamak için izlenen açık adımlar bütünüdür.

İyi bir algoritmanın dört özelliği

1. Açık olmalı

“Biraz bekle” yerine “10 saniye bekle” demek daha açıktır. Bilgisayarlar ve robotlar belirsiz ifadeleri insanlar gibi yorumlayamaz.

2. Doğru sırada olmalı

Ayakkabıyı bağlamadan önce ayağına giymen gerekir. Doğru adımlar yanlış sıradaysa sonuç da yanlış olur.

3. Sonlu olmalı

Algoritmanın bir başlangıcı ve bitişi bulunmalıdır. Hiç durmadan devam eden bir talimat, amaç bu değilse iyi bir algoritma değildir.

4. Test edilebilir olmalı

Adımları uyguladığımızda beklediğimiz sonuca ulaşıp ulaşmadığımızı kontrol edebilmeliyiz.


Algoritmanın üç temel yapı taşı

Kodlama dillerinin görünüşü değişebilir; fakat çoğu program üç temel düşünceyi kullanır: sıralama, koşul ve tekrar.

1. Sıralama

Komutlar belirli bir sırayla çalışır.

Örnek: Bir karakteri ekranda hareket ettirmek.

Başla
2 adım sağa git
1 adım yukarı git
“Merhaba” de
Bitir

Komutların yerini değiştirirsek karakter farklı bir yere gider veya mesajı farklı zamanda söyler.

2. Koşul

Bazı adımlar yalnız belirli bir durum gerçekleşirse uygulanır.

Örnek:

Eğer yağmur yağıyorsa
  şemsiyeyi al
Değilse
  şemsiyeyi alma

Robotik örneği:

Eğer mesafe 10 santimetreden küçükse
  motorları durdur
  kırmızı LED'i yak

“Eğer” kelimesi, programın karar vermesini sağlayan koşulu gösterir.

3. Tekrar

Aynı adımları birçok kez yazmak yerine bir döngü içinde tekrarlarız.

4 kez tekrarla
  1 adım ilerle
  90 derece sağa dön

Bu algoritmayı uygulayan bir karakter kare çizer. Tekrar sayısını veya dönüş açısını değiştirirsek farklı şekiller oluşturabiliriz.


Günlük hayattan örnek: Okul çantası kontrolü

Amaç: Sabah evden çıkmadan önce gerekli eşyaların çantada olduğundan emin olmak.

Normal dilde

“Çantamı kontrol ederim.”

Bu cümle insan için anlaşılır görünse de bir program için çok belirsizdir. Neyi, hangi sırayla ve eksikse ne yapacağını söylemez.

Algoritma olarak

Başla
Ders programını aç
Her ders için gerekli kitabı kontrol et
Eğer kitap çantada değilse
  kitabı çantaya koy
Kalem kutusunu kontrol et
Eğer su şişesi boşsa
  su şişesini doldur
Çantanın fermuarını kapat
Bitir

Bu örnekte:


Sözde kod nedir?

Bir algoritmayı gerçek bir programlama diline çevirmeden önce günlük dile yakın, düzenli bir biçimde yazabiliriz. Buna sözde kod veya pseudocode denir.

Sözde kodun amacı bilgisayarın doğrudan çalıştırması değil, insanın çözüm mantığını kolayca görmesidir.

Örnek: Bir sayının tek mi çift mi olduğunu bulmak.

Başla
Bir sayı al
Eğer sayı 2'ye bölündüğünde kalan 0 ise
  “Çift sayı” yaz
Değilse
  “Tek sayı” yaz
Bitir

Python’da aynı fikir şöyle yazılabilir:

sayi = int(input("Bir sayı gir: "))

if sayi % 2 == 0:
    print("Çift sayı")
else:
    print("Tek sayı")

Kodun biçimi değişse de algoritmanın mantığı aynıdır.


Akış şeması nasıl düşünülür?

Akış şeması, algoritmanın adımlarını şekiller ve oklarla gösterir.

Temel semboller:

Örnek: “Yağmur yağıyor mu?”

[Başla]
    |
<Yağmur yağıyor mu?>
   /           \
 Evet          Hayır
  |              |
[Şemsiye al]  [Devam et]
   \           /
      [Bitir]

Akış şeması özellikle birden fazla koşul olduğunda çözümün tamamını görmeyi kolaylaştırır.


Mini görev: Robotu hedefe ulaştır

Bir robot başlangıç noktasından kırmızı kutuya ulaşacak. Önünde iki kare boş alan, sonra bir engel var. Engel sağ taraftan geçilebiliyor.

Aşağıdaki komutları kullanabilirsin:

Görev

Robotun hedefe ulaşması için adımları sırayla yaz.

Örnek cevap biçimi:

1. Bir kare ilerle
2. ...

Görev kontrol listesi

Bu görevde tek bir doğru yol olmak zorunda değildir. Önemli olan algoritmanın açık, güvenli ve uygulanabilir olmasıdır.


Hata ayıklama: Algoritma çalışmazsa ne yaparız?

Bir algoritmadaki veya koddaki hatayı bulup düzeltme işlemine hata ayıklama denir. İngilizcesi “debugging”dir.

Hata ayıklarken şu sırayı kullanabilirsin:

  1. Beklenen sonucu açıkça yaz.
  2. Gerçekte ne olduğunu gözlemle.
  3. Algoritmayı küçük parçalara ayır.
  4. Her adımı tek tek test et.
  5. İlk farklı sonucun oluştuğu noktayı bul.
  6. Yalnız o adımı değiştir ve yeniden dene.

Örnek:

Amaç: Karakterin kare çizmesi
Sorun: Karakter üç kenar çizip duruyor
Kontrol: Tekrar sayısı 3 yazılmış
Düzeltme: Tekrar sayısını 4 yap

Hata yapmak başarısızlık değildir. Hatanın nerede olduğunu anlayıp çözmek, programlama ve mühendisliğin temel parçasıdır.


Uygulama laboratuvarı: Algoritma Nedir?

Algoritma Nedir? konusunu kalıcı hâle getirmenin en iyi yolu, kavramı küçük ve ölçülebilir bir göreve dönüştürmektir. Bu çalışmada Algoritma Nedir? ile 1. Açık olmalı arasındaki ilişkiyi kullanarak açık bir algoritma, sözde kod ve test tablosu hazırlayacaksın. Amaç yalnız sonucun çalışması değil; hangi kararı neden verdiğini, neyi test ettiğini ve hangi durumda tasarımı değiştireceğini açıklayabilmektir.

Görev senaryosu

Şu senaryoyu ele al: yanlış girdiyi fark edip yeniden isteyen bir kontrol sistemi. Dersin ana hedefi “Bir problemi bilgisayarın veya robotun uygulayabileceği açık adımlara dönüştürmeyi sıralama, koşul ve tekrar örnekleriyle öğren” olduğuna göre önce problemi tek cümleyle tanımla. Ardından sistemin alacağı girdiyi, uygulayacağı işlemi ve üreteceği çıktıyı ayrı ayrı yaz. Bilmediğin bir ayrıntı varsa onu varsayım olarak işaretle; varsayımı gerçek bilgi gibi kullanma.

  1. Planla: Başlangıç durumunu, beklenen sonucu ve kullanacağın kavramları yaz.
  2. En küçük sürümü kur: Yalnız temel davranışı çalıştır; süsleme ve ek özellikleri sonraya bırak.
  3. Üç test hazırla: Normal bir durum, sınırda bir durum ve hatalı ya da beklenmeyen bir durum seç.
  4. Sonucu kaydet: Beklenen ile gerçekleşeni yan yana yaz; fark varsa olası nedeni belirt.
  5. Tek değişiklik yap: Aynı anda birçok şeyi değiştirmek yerine bir kararı düzeltip testi yeniden çalıştır.

Başarı ölçütleri

“Algoritma Nedir?” çalışmasını bitirdiğinde ürünü bir arkadaşına yalnız bölüm başlıklarıyla anlat. Arkadaşın yanlış girdiyi fark edip yeniden isteyen bir kontrol sistemi senaryosundaki adımları ve karar nedenlerini takip edebiliyorsa anlatım yeterince açıktır. Anlaşılmayan noktayı daha fazla terim ekleyerek değil, Algoritma Nedir? ve 1. Açık olmalı ilişkisini daha küçük adımlara bölerek düzelt.

Sık yapılan hatalar

Çok belirsiz komut vermek

Yanlış: “Biraz ilerle.” Daha iyi: “20 santimetre ilerle.”

Bir adımı atlamak

Yanlış: LED’i bağla ve çalıştır. Eksik: Güç kaynağı, direnç, bağlantı yönü ve güvenlik kontrolü.

Koşulun iki sonucunu düşünmemek

“Eğer kapı açıksa içeri gir” dedik. Peki kapı kapalıysa ne olacak? İyi algoritma gerekli durumlarda “değilse” yolunu da düşünür.

Sonsuz tekrar oluşturmak

Bir döngünün ne zaman biteceği belli değilse program hiç durmayabilir. Bazı sistemlerde sonsuz döngü bilerek kullanılır; fakat o durumda bile güvenli durdurma yöntemi bulunmalıdır.


Kendi algoritmanı yaz

Aşağıdaki görevlerden birini seç:

  1. Bir bardak su hazırlama.
  2. Basketbol antrenmanı öncesi çanta kontrolü.
  3. Bisiklete binmeden önce güvenlik kontrolü.
  4. Yüzme antrenmanı için hazırlık.
  5. Scratch karakterinin yıldızı alıp başlangıç noktasına dönmesi.

Algoritmanda şunların bulunmasına çalış:

Bisiklet güvenlik kontrolü için örnek

Başla
Kaskı tak
Lastiklerin havasını kontrol et
Eğer lastik yumuşaksa
  yetişkinden yardım iste ve lastiği uygun basınca getir
Frenleri kontrol et
Işıkları ve reflektörleri kontrol et
Eğer güvenli olmayan bir parça varsa
  sürüşe başlama
Güvenli rotayı belirle
Bitir

Ders özeti

Kontrol soruları

  1. Bir adımlar dizisinin algoritma sayılabilmesi için hangi iki temel özelliğe sahip olması gerekir?
  2. Sıralama, koşul ve döngü arasındaki farkı birer cümleyle nasıl açıklarsın?
  3. Sözde kod kullanmak, doğrudan bir programlama dilinde kod yazmaya göre hangi avantajı sağlar?
  4. Çanta kontrolü algoritmasında “matara boşsa” durumu neden bir sınır koşulu olarak ele alınmalıdır?
  5. Bir algoritma beklenen sonucu vermediğinde hata ayıklamaya hangi kanıtı toplayarak başlarsın?

Cevaplar

  1. Adımlar açık ve uygulanabilir olmalı; süreç sonlu sayıda adımda tamamlanmalıdır.
  2. Sıralama komutların izleneceği düzeni, koşul farklı durumlarda verilecek kararı, döngü ise belirli adımların tekrarını tanımlar.
  3. Sözde kod, çözüm mantığını bir dilin yazım kurallarına takılmadan görmeyi, tartışmayı ve düzeltmeyi kolaylaştırır.
  4. Çünkü algoritmanın yalnız normal durumda değil, eksik veya beklenmeyen girdilerde de nasıl davranacağını tanımlamak gerekir.
  5. Önce verilen girdiyi, beklenen çıktıyı ve gerçekleşen çıktıyı kaydeder; ardından adımları sırayla izleyerek ilk ayrışma noktasını bulurum.

Kaynak ve doğrulama notu

“Algoritma Nedir?” dersi için doğrulama odağı Algoritma Nedir? ile 1. Açık olmalı arasındaki ilişkinin örnekler üzerinde tutarlı çalışmasıdır. Bu dersteki algoritmalar, örnek girdiler elle izlenerek ve beklenen çıktılarla karşılaştırılarak doğrulanmıştır. Sözde kod, belirli bir programlama diline bağlı kalmadan düşünme sırasını görünür kılmak için kullanılır.

Ders sonu kontrolü

  1. Algoritma Nedir? kavramını kendi cümlenle nasıl tanımlarsın?
  2. Bu derste öğrendiğin yapının normal bir kullanım örneği nedir?
  3. Bir sınır veya beklenmeyen durum seçsen neyi test ederdin?
  4. Bu konuda yapılabilecek bir hatayı nasıl fark eder ve düzeltirsin?
  5. Aynı fikri başka bir robotik ya da kodlama projesine nasıl uyarlarsın?

Ders sonu kontrolü — örnek cevaplar

  1. Tanım, dersin ana kavramını ve ne işe yaradığını birlikte açıklamalıdır.
  2. Örnek; girdiyi, yapılan işlemi ve ortaya çıkan sonucu açıkça göstermelidir.
  3. Sınır testi, sistemin kabul ettiği en düşük veya en yüksek değeri; beklenmeyen test ise yanlış ya da eksik girdiyi inceleyebilir.
  4. Beklenen ve gerçek sonucu karşılaştırır, değişiklikleri tek tek yapar ve testi yeniden çalıştırırım.
  5. Önce değişmeyen kuralı bulur, sonra yeni projenin girdisine, aracına ve çıktısına göre adımları uyarlarım.

Sonraki ders

Scratch’te Sıralama, Koşul ve Döngü: Bir karakteri labirentten çıkaran ilk etkileşimli program.

Quiz çağrısı

Hazırsan 10 soruluk Robotik & Kodlama Başlangıç Quiz’i ile öğrendiklerini test et. Her yanıtın ardından kısa açıklamayı okuyarak eksiklerini hemen görebilirsin.


Quiz’i BaşlatAlgoritmalar bölümüne dön
SORU HAVUZU

Bu dersi 10 soruyla pekiştir

Bu ders için 20 soruluk bir havuz hazırlandı. Her başlangıçta 10 soru ve seçenekler yeniden karıştırılır.