Bir cümlelik özet
Sıralama, bir algoritmadaki komutların doğru sonuç oluşacak biçimde hangi düzenle uygulanacağını belirler. Bu bölümde noktayı özellikle “Bir cümlelik özet” bağlamına uygula ve sonucu doğrulayacak ya da değiştirecek kanıtı kaydet.
Neden önemli?
Aynı komutları farklı sırayla uygulamak farklı sonuçlar doğurabilir. Önce ayakkabıyı bağlayıp sonra giymeye çalışmak, doğru adımları yanlış sırada kullanmaya örnektir. Bilgisayar ve robotlar komutları çoğunlukla yazdığımız sırada çalıştırdığı için her adımın yeri önemlidir.
Sıralama nedir?
Bir algoritmanın başından sonuna doğru ilerleyen komut düzenine sıralama denir. En basit programlar bile bir sıra izler:
Başla
Kullanıcıdan adını al
“Merhaba” yaz
Adı ekrana yaz
Bitir
İkinci adımı kaldırırsak veya adı almadan ekrana yazmaya çalışırsak programın kullanacağı bilgi henüz oluşmamış olur.
Günlük hayat örneği: Sandviç hazırlamak
Doğru sıra:
- Elleri yıka.
- Ekmeği hazırla.
- Malzemeleri ekle.
- Sandviçi kapat.
- Kullanılan malzemeleri yerine koy.
“Sandviçi kapat” adımını malzemeleri eklemeden önce uygularsak istenen sonuç oluşmaz.
Robot örneği: Hedefe gitmek
Robot başlangıçta kuzeye bakıyor ve hedef doğusunda bulunuyor.
Sağa dön
3 kare ilerle
Dur
Komutları şöyle değiştirirsek:
3 kare ilerle
Sağa dön
Dur
Robot hedefe ulaşmaz; önce kuzeye ilerler, sonra doğuya döner.
Kod örneği
Python’da iki sayının ortalamasını hesaplayalım:
birinci = 8
ikinci = 12
toplam = birinci + ikinci
ortalama = toplam / 2
print(ortalama)
ortalama hesaplanmadan önce toplam değerinin oluşturulması gerekir. Komutlar arasındaki bilgi bağı sıralamayı belirler.
Bağımlılık düşüncesi
Bir adımın uygulanabilmesi için başka bir adımın sonucu gerekiyorsa bu iki adım arasında bağımlılık vardır.
Örnek:
- Ölçüm yapmadan “sıcaklık yüksek” kararı veremeyiz.
- Motoru bağlamadan motor kontrolünü test edemeyiz.
- Kullanıcıdan sayı almadan sayının tek veya çift olduğunu hesaplayamayız.
İyi bir algoritma yazarken şu soruyu sor:
Bu adımın çalışması için daha önce hangi bilgi veya işlem tamamlanmış olmalı?
Paralel yapılabilecek işler
Her işlem mutlaka tek sıra halinde yapılmaz. Bazı sistemlerde bağımsız görevler aynı anda yürüyebilir. Örneğin bir robot hareket ederken LED’i yanıp sönebilir. Ancak başlangıç seviyesinde önce güvenli ve anlaşılır tek sıra kurmak, sonra paralel davranışları düşünmek daha doğrudur.
Mini uygulama: Bisiklet sürüşü öncesi kontrol
Aşağıdaki adımları güvenli bir sıraya koy:
- Frenleri kontrol et.
- Sürüşe başla.
- Kaskı tak.
- Lastikleri kontrol et.
- Güvenli rotayı belirle.
- Eğer bir sorun varsa yetişkinden yardım iste.
Örnek çözüm:
1. Güvenli rotayı belirle
2. Kaskı tak
3. Lastikleri kontrol et
4. Frenleri kontrol et
5. Eğer bir sorun varsa yetişkinden yardım iste
6. Her şey güvenliyse sürüşe başla
Burada yalnız sıra değil, güvenlik koşulu da önemlidir.
Hata ayıklama yöntemi
Bir sıralama hatasını bulmak için:
- Beklenen sonucu yaz.
- Her adım sonrasında sistemin durumunu not et.
- İlk kez beklenmeyen durumun oluştuğu adımı bul.
- O adımın ihtiyaç duyduğu bilginin daha önce oluşup oluşmadığını kontrol et.
- Sırayı düzelt ve yeniden test et.
Uygulama laboratuvarı: Sıralama: Komutların Doğru Düzeni
Sıralama: Komutların Doğru Düzeni 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 Sıralama nedir? ile Robot örneği: Hedefe gitmek 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: günlük görevleri öncelik sırasına koyan küçük bir planlayıcı. Dersin ana hedefi “Sıralama, bir algoritmadaki komutların doğru sonuç oluşacak biçimde hangi düzenle uygulanacağını belirler” 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.
- Planla: Başlangıç durumunu, beklenen sonucu ve kullanacağın kavramları yaz.
- En küçük sürümü kur: Yalnız temel davranışı çalıştır; süsleme ve ek özellikleri sonraya bırak.
- Üç test hazırla: Normal bir durum, sınırda bir durum ve hatalı ya da beklenmeyen bir durum seç.
- Sonucu kaydet: Beklenen ile gerçekleşeni yan yana yaz; fark varsa olası nedeni belirt.
- 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
- Adımlar açık ve tek anlamlı mı?
- Başlangıç ve bitiş koşulu belli mi?
- Normal, sınır ve hatalı durumlar denendi mi?
- Gereksiz tekrar veya adım var mı?
- Başka biri algoritmayı aynı sonuçla uygulayabiliyor mu?
“Sıralama: Komutların Doğru Düzeni” çalışmasını bitirdiğinde ürünü bir arkadaşına yalnız bölüm başlıklarıyla anlat. Arkadaşın günlük görevleri öncelik sırasına koyan küçük bir planlayıcı senaryosundaki adımları ve karar nedenlerini takip edebiliyorsa anlatım yeterince açıktır. Anlaşılmayan noktayı daha fazla terim ekleyerek değil, Sıralama nedir? ve Robot örneği: Hedefe gitmek ilişkisini daha küçük adımlara bölerek düzelt.
Kavramı başka bir bağlama taşı
Sıralama: Komutların Doğru Düzeni yalnız bu dersteki örnekle sınırlı değildir. Aynı düşünme biçimini okul, spor, ev düzeni veya başka bir robotik çalışmada kullanabilirsin. Yeni bağlam seçerken önce değişmeyen kuralı bul: Sıralama nedir? hangi durumda aynı kalır, Robot örneği: Hedefe gitmek hangi koşulda değişir? Bu ayrım, ezberlenen örneği gerçek problem çözme becerisine dönüştürür.
Karar günlüğü
Bir tablo oluştur ve üç satır kullan: “ilk kararım”, “testte gördüğüm”, “değiştirdiğim”. Her satıra kısa ama ölçülebilir bir cümle yaz. “Daha iyi oldu” yerine “üç denemenin ikisinde doğru sonuç verdi” gibi gözlenebilir ifadeler seç. Böylece sonraki sürümde hangi değişikliğin işe yaradığını unutmazsın.
Kendi sorunu üret
Dersin sonundaki kontrol sorularından farklı bir soru yaz ve cevabını iki yolla doğrula. Birinci yol, adımları elle izlemek; ikinci yol ise kodu, devreyi veya modeli test etmektir. İki sonuç uyuşmuyorsa önce girdileri ve varsayımları karşılaştır. Bu çalışma, yalnız cevabı bulmayı değil, cevabın güvenilirliğini sorgulamayı öğretir.
Sık yapılan hatalar
- Başlangıç durumunu belirtmemek.
- Bir işlem için gerekli veriyi daha sonra üretmek.
- “Hazırla”, “kontrol et” gibi geniş adımları gereğinden fazla belirsiz bırakmak.
- Güvenlik kontrolünü fiziksel hareketten sonra yapmak.
- Bitirme veya durdurma adımını unutmak.
Güvenlik notu
Fiziksel bir sistemde (bisiklet, motor, robot) güvenlik kontrolü her zaman harekete geçmeden önce yapılmalıdır. Motor, pil veya kesici parça içeren çalışmalarda yetişkin gözetimi gerekir ve ilk denemeler düşük hızda yapılmalıdır.
Ders özeti
- Sıralama, komutların uygulanma düzenidir.
- Aynı adımlar farklı sırada farklı sonuç oluşturabilir.
- Bir adım başka bir adıma bağlıysa gerekli bilgi önce üretilmelidir.
- Fiziksel sistemlerde güvenlik adımları hareketten önce gelmelidir.
- Sıralama hataları, her adımdan sonraki durumu izleyerek bulunabilir.
Kontrol soruları
- Sıralama neden önemlidir?
- Bir adımın başka bir adıma bağımlı olması ne demektir?
- Robot örneğinde önce ilerleyip sonra dönmek neden yanlış sonuç verdi?
- Fiziksel projede güvenlik kontrolü hangi aşamada olmalıdır?
- Kendi günlük hayatından sırası değiştiğinde sonucu bozulan dört adımlık bir algoritma yaz.
Cevaplar
- Çünkü aynı komutlar farklı sırada uygulandığında farklı ve çoğu zaman yanlış sonuç oluşabilir. Bilgisayar ve robotlar komutları çoğunlukla yazıldığı sırada çalıştırır.
- Bir adımın çalışabilmesi için başka bir adımın sonucunun (gerekli bilgi veya işlemin) önceden üretilmiş olması gerekmesidir.
- Robot başlangıçta kuzeye baktığı için önce ilerlerse kuzeye gider; dönüş sonradan yapıldığında hedef doğuda kaldığından ona ulaşamaz. Önce doğru yöne dönmek gerekir.
- Güvenlik kontrolü herhangi bir fiziksel hareket başlamadan önce yapılmalıdır.
- Örnek: (1) Suyu ısıt, (2) Çayı demle, (3) Bardağa koy, (4) İç. Sıra bozulursa (örneğin demlemeden içmeye çalışmak) sonuç bozulur. Öğrencinin kendi doğru örneği de kabul edilir.
Ek doğrulama görevi
“Sıralama: Komutların Doğru Düzeni” için ikinci bir örnek oluştur: günlük görevleri öncelik sırasına koyan küçük bir planlayıcı. İlk çözümü aynen kopyalamak yerine Sıralama nedir? kavramının hangi bölümde, Robot örneği: Hedefe gitmek kavramının hangi kararda kullanıldığını işaretle. Sonucu değerlendirmek için şu iki soruya yazılı cevap ver: “Beklediğim davranış neydi?” ve “Gerçekte hangi kanıtı gördüm?”
Ardından kontrol listesinden özellikle “Adımlar açık ve tek anlamlı mı?” ve “Başka biri algoritmayı aynı sonuçla uygulayabiliyor mu?” maddelerini kullan. İlk denemede fark bulamazsan bir sınır koşulu ekle; örneğin en küçük değer, en büyük değer, boş giriş, bağlantı kaybı veya yeniden başlatma durumu. Son notunda yaptığın tek değişikliği ve bu değişikliğin sonucu nasıl etkilediğini açıkla.
Kaynak ve doğrulama notu
“Sıralama: Komutların Doğru Düzeni” dersi için doğrulama odağı Sıralama nedir? ile Robot örneği: Hedefe gitmek 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.
Sonraki ders
Koşullar: Eğer, Değilse ve Karar Verme