Öğrenme Birimi: BLOK TABANLI PROGRAMLAMA
Haftalık Kazanımlar
Verilen bir problem için adım adım algoritma ve akış şemaları tasarlar.
Bu hafta bir işi rastgele denemekle, adımlarını önceden yazmak arasındaki farkı göreceğiz. Dört ders saatinde önce problemi çözme sırasını, sonra algoritmayı ve aynı işin akış şemasını kuracağız. Uygulamada mBlock içindeki Dog2 kuklasının rengini değiştirip ses çıkarmasını sağlayacağız.
1. Problem çözme adımları
Günlük hayatta da bilgisayar başında da bir sorunu çözmeden önce neyle karşılaştığımızı netleştiririz. Ders kitabı bu yolu altı aşamada özetler:
- Problemi tanımlama: Sorunun ne olduğu açıkça söylenir.
- Problemi anlama: Çözüm kolaylaşsın diye durum incelenir ve parçalara ayrılır.
- Alternatif çözüm yolları belirleme: Çoğu işin birden fazla yolu olduğu görülür ve bu yollar listelenir.
- En uygun çözümü seçme: Listeden yapılabilir ve amaca en çok uyan yol seçilir.
- Çözümü uygulama: Seçilen yol hayata geçirilir.
- Çözümü test etme: Sonuç beklentiyi karşılıyor mu diye bakılır. Hata varsa adımlar yeniden gözden geçirilir.
Aynı kitaba göre problem çözmenin iki biçimi vardır. Birincisi deneme yanılma ya da tahmindir. “Hangi mesleği seçmeliyim?”, “Okula hangi yoldan gitmeliyim?”, “Yemeği ne kadar sürede pişirmeliyim?” gibi soruların tek ve önceden belli bir cevabı yoktur; kişiye göre değişir. İkincisi algoritma geliştirmektir. Bilgisayara yaptırılacak işlerde adımların baştan belirgin olması gerekir; makine tahmin yürütemez.
2. Algoritma tanımı ve özellikleri
Algoritma, bir problemi çözmek için tasarlanmış basit, net ve sıralı yoldur. Farklı düşünmeyi ve problem çözmeyi öğretir; programlamaya atılan ilk adımdır. Sözcük, Orta Çağ’da cebir alanında çalışmış El-Harezmi’nin (780-850) adının Latince biçiminden gelir. Ders kitabı, cebir üzerine erken bir el kitabının Avrupa’da tanınmasında onun payı olduğunu hatırlatır.
İşleyen bir algoritmada şu özellikler aranır:
- Bir başlangıcı ve bir sonu vardır.
- Girdileri ve çıktıları açık, anlaşılırdır.
- Cümleleri kesin ve tek anlama gelir; “biraz bekle” gibi belirsiz ifadeler kullanılmaz.
- Gereksiz tekrardan kaçınır ve olabildiğince hızlıdır.
- Gerçekten uygulanabilir; yapılamayacak bir adım içermez.
3. Aynı iş, farklı algoritmalar: diş fırçalama
Kitaptaki örnek (Tablo 1.3) sıradan bir işi seçer: dişler günde iki kez, sabah ve gece fırçalanır. Aynı iş için üç ayrı algoritma yazılmıştır. Hepsi “başla” ile açılır ve “bitir” ile kapanır; ayrıldıkları yer ayrıntı düzeyidir.
| Algoritma | Yaklaşım | Ne ekler, neyi eksik bırakır? |
|---|---|---|
| 1. Algoritma (6 adım) | Çok kısa | Macunu fırçaya sürer, dişleri fırçalar, musluğu açar ve ağzı çalkalar. Süre, fırçayı yıkama ve yerine koyma yoktur. Hızlıdır ama belirsizdir. |
| 2. Algoritma (11 adım) | Orta ayrıntı | Kapağı açar, macunu hafifçe sıkar, fırçalar ve bu fırçalama adımını yaklaşık 2 dakika tekrarlar. Ardından çalkalar, fırçayı yıkayıp yerine koyar, musluğu kapatır ve aynada gülümser. |
| 3. Algoritma (14 adım) | En ayrıntılı | İkinciye benzer; ek olarak fırçayı hafifçe ıslatır, musluğu işlemlerin arasında kapatıp yeniden açar. Adım arttıkça “ne yapılacak?” sorusu azalır. |
Buradan çıkarılacak sonuç şudur: Bir problemin tek algoritması olmak zorunda değildir. Önemli olan en doğru, en anlaşılır ve uygulanabilir olanı seçmektir. Çok kısa algoritma okuyan kişiyi tahmin etmeye zorlar; gereksiz yere uzayan algoritma ise işi yavaşlatır. İkinci algoritmanın sadeleştirilmiş şeması aşağıdadır; 2 dakikalık tekrar, kitaptaki gibi ayrı bir işlem adımıdır.
4. Akış diyagramı sembolleri
Akış diyagramı (akış şeması), algoritmadaki adımların semboller ve oklarla çizilmiş hâlidir. Okuma sırası yazıya değil, okların yönüne bakar. Ders kitabının bu haftaki sayfaları Dog2 algoritmasını liste olarak verir; aşağıdaki semboller o listeyi şemaya dönüştürmek için kullandığımız ortak dilidir.
| Sembol | Adı | Ne işe yarar? |
|---|---|---|
| Yuvarlatılmış dikdörtgen (oval) | Başla / Bitir | Akışın ilk ve son adımı. Her şemada bir kez başlar, bir kez biter. |
| Dikdörtgen | İşlem | Yapılacak komut: rengi değiştirmek, beklemek, fırçalamak. |
| Paralelkenar | Girdi / Çıktı | Dışarıdan veri almak veya ekrana mesaj vermek. |
| Eşkenar dörtgen | Karar | Evet/hayır sorusu. Çıkış iki okludur. Bu haftaki Dog2 örneğinde yoktur. |
| Ok | Akış yönü | Bir adımdan hemen sonrakine geçişi gösterir. |
Dog2 için kitabın yazdığı algoritma doğrusaldır. Renk üç kez, açık adımlarla değişir; her değişimin ardından 1 saniye beklenir. Mesaj en sonda, çıktı sembolündedir. Karar kutusu yoktur çünkü dallanma yoktur.
Karar sembolünü görmek için kitaptaki Dog2 listesinde olmayan kısa bir örnek yeter. Sayı sıfırdan büyükse bir yazı, değilse başka bir yazı basılır. Eşkenar dörtgenden iki ok çıkar.
5. mBlock uygulaması: Dog2 kuklası
Görseldeki köpek kuklası Dog2’dir. Amaç, yeşil bayrak tıklandığında rengini üç kez değiştirmek ve ardından “Hav hav” demektir. Projeyi kaydetmeden kodlamaya başlamayın.
- Algoritma: Yukarıdaki dokuz adımı defterinize yazın. Kod, bu sıranın bloğa dökülmüş hâlidir.
- Kayıt: Projeyi kuklamı kodluyorum adıyla kaydedin.
- Olay: İş yeşil bayrakla başlayacağı için Olaylar grubundan “yeşil bayrak tıklandığında” bloğunu kodlama alanına sürükleyin. Diğer bloklar bunun altına yapışır.
- Renk: Görünüm grubundaki “Renk etkisini 25 değiştir” bloğunu ekleyin ve sayısal değeri 30 yapın. Blok hazır geldiğinde 25 yazar; algoritma 30 ister.
- Bekleme: Kontrol grubundan “1 saniye bekle” bloğunu rengin hemen altına koyun. Süreyi daha sonra değiştirebilirsiniz; ilk denemede 1 saniye kalsın.
- Tekrar: 4 ve 5. adımları algoritmadaki gibi iki kez daha ekleyin. Toplam üç renk değişimi ve üç bekleme olur.
- Mesaj: Görünüm grubundan kuklanın ekrana yazı söylemesini sağlayan bloğu son bekleyişin altına ekleyin ve metni Hav hav yapın.
Yeşil bayrağa bastığınızda kukla üç kez renk değiştirmeli, her seferinde kısa bir duraksamalı ve en sonda “Hav hav” demelidir. Sıra karışıksa algoritmadaki adım numarasına geri dönün; hatayı blokların içinde değil, sırada arayın.
6. Etkinlik ve çalışma önerisi
- Diş fırçalama yerine kendi seçtiğiniz günlük bir işi (okula hazırlanma, sıra olma, su ısıtma) yazın. Biri kısa, biri ayrıntılı iki algoritma kurun. Hangisinin başka bir öğrenci tarafından yanlış anlaşılmadan uygulanabileceğine karar verin.
- Seçtiğiniz algoritmayı oval, dikdörtgen ve gerekirse eşkenar dörtgen kullanarak çizin. Karar kutusu kullanıyorsanız evet ve hayır oklarını ayrı yazın.
- mBlock’ta Dog2 uygulamasını kuklamı kodluyorum adıyla tamamlayın. Ardından bekleme süresini 0,2 saniye ve 2 saniye yaparak aynı algoritmanın gözle görülür sonucunun nasıl değiştiğini not edin.
ÖLÇME VE DEĞERLENDİRME
Soruları sırayla çözün. Yanlış seçenekte açıklama, doğru cevabın gerekçesini gösterir.