Kodu İyileştir, Fonksiyonla Sadeleştir
Blok tabanlı ortamdaki yazılım bileşenlerini değerlendiriyor, karmaşık kodlarda tekrarları bulup döngü ve fonksiyonlarla sadeleştiriyoruz.
- Blok Tabanlı Programlama Ortamına Giriş
Öğrenme çıktıları
BTY.6.6.1 Blok tabanlı ortamda yazılım geliştirme sürecinde kullanılan bileşenlerden yararlanabilme
- c) Blok tabanlı ortamda yazılım geliştirme süreci bileşenlerini değerlendirir.
Düşünelim, konuşalım
- 1Uzun bir kodu okurken nerede kaybolursunuz?
Öğretmen için: olası cevaplar
Olası cevaplar: "Aynı bloklar çok tekrar edince", "ne yaptığını anlamayınca", "adlar Kukla1, Kukla2 olunca".
Varılacak nokta: Tekrarlar, anlamsız adlar ve düzensiz kod okumayı zorlaştırır; sadeleştirme bunları giderir.
Cevap gelmezse: Tahtaya aynı iki satırı dört kez alt alta yazın ("ilerle, dön"). Gerekirse: "Kaç kez tekrar ettiğini saymak bile zor. Bunu '4 kez tekrarla' ile tek satıra indirebiliriz."
- 2İyi bir kodun özellikleri nelerdir?
Öğretmen için: olası cevaplar
Olası cevaplar: "Çalışması", "kısa olması", "anlaşılır olması", "hatasız olması".
Varılacak nokta: İyi kod doğru çalışır, sadedir, okunurdur ve düzenlidir.
Cevap gelmezse: "Çalışan ama kimsenin anlamadığı bir kod iyi midir?" diye sorun. Gerekirse: "Tam değil. İyi kod doğru çalışmanın yanında sade, okunur ve düzenli olmalıdır."
- 3Kodunuzu bir arkadaşınız anlayabilir mi?
Öğretmen için: olası cevaplar
Olası cevaplar: "Evet", "belki", "Hayır, çok karışık".
Varılacak nokta: Okunabilirlik, kodu yazan dışında birinin (ya da bir ay sonra bizim) kolayca anlayabilmesidir; anlamlı adlar bunu güçlendirir.
Cevap gelmezse: İki öğrencinin kodlarını yer değiştirip bir dakika incelemelerini isteyin. Gerekirse: "Adlar 'Kedi', 'puan' olunca hemen anlaşılıyor; 'Kukla1', 'a' olunca anlaşılmıyor."
- 4Odanızı toplarken eşyaları gruplara ayırmak neden işi kolaylaştırır?
Öğretmen için: olası cevaplar
Olası cevaplar: "Aradığımızı bulmak kolaylaşır", "daha hızlı toplanır", "düzenli olur".
Varılacak nokta: Kodlar da kuklaya ve olaya göre gruplanınca düzenli olur ve aranan bölüm kolayca bulunur.
Cevap gelmezse: "Kitaplar, oyuncaklar ve kıyafetler aynı yığında olsa çorabınızı nasıl bulurdunuz?" diye sorun. Gerekirse: "Zor bulurduk. Kodu da kuklasına ve olayına göre gruplarız; buna düzenli kod denir."
İyi kodun özellikleri
| Özellik | Açıklama |
|---|---|
| Doğru çalışır | Beklenen sonucu verir. |
| Sade | Gereksiz tekrar içermez; döngü ve fonksiyon kullanır. |
| Okunur | Anlamlı kukla, değişken ve fonksiyon adları vardır. |
| Düzenli | Kodlar ilgili kuklaya ve olaya göre gruplanmıştır. |
Hata ayıklama ve sadeleştirme
Bu etkileşimli bölüm için tarayıcıda JavaScript açık olmalıdır.
Kodu sadeleştirme adımları
- Tekrarı bul: Arka arkaya ya da farklı yerlerde aynı blok dizileri var mı?
- Arka arkaya tekrar → döngü: "ilerle, dön" 4 kez yazılmışsa "4 kez tekrarla" kullan.
- Farklı yerlerde tekrar → fonksiyon: aynı iş birden çok olayda yapılıyorsa fonksiyon tanımla.
- Adlandır: kukla, değişken ve fonksiyonlara ne yaptığını söyleyen ad ver.
- Test et: sadeleşen kod eskisiyle aynı sonucu veriyor mu?
Önce / sonra
| Durum | Önce | Sonra | Blok sayısı |
|---|---|---|---|
| Kare çizmek | ilerle, dön × 4 kez alt alta | 4 kez tekrarla { ilerle, dön } | 8 → 3 |
| Üç engelde zıplamak | zıplama blokları 3 yerde | zıpla fonksiyonu + 3 çağrı | 30 → 13 |
| Kukla adları | Kukla1, Kukla2 | Kedi, Top | Aynı ama okunur |
Döngü mü, fonksiyon mu?
Kod Dedektifleri: Karmaşık Kodda Fonksiyon Avı
Gruplar karmaşık bir koddaki tekrar eden parçaları fonksiyona dönüştürür.
- Tekrar eden blok dizilerini işaretleyin.
- Bunlar için fonksiyon tanımlayın.
- Blok sayısını önce/sonra karşılaştırın.
Öğrenci bilgisayarı yoksa: tahta ve kâğıtla
Karmaşık kodun çıktısını dağıtın; gruplar tekrar eden blokları renkli kalemle işaretleyip fonksiyona çevirir ve blok sayısını önce/sonra sayar.
Fonksiyonlu Proje Taslağı
Gruplar fonksiyon içeren küçük bir proje fikri planlar.
- Fonksiyon Planlama Formunu doldurun (EBA).
- Hangi işler fonksiyon olacak?
Kendimizi sınayalım
Bugün neler öğrendik?
- İyi kod: doğru, sade, okunur, düzenli.
- Arka arkaya tekrar → döngü; farklı yerlerde tekrar → fonksiyon.
- Sadeleştirmeden sonra kod tekrar test edilir.
- sadeleştirme
- tekrar
- okunabilirlik
- fonksiyon
Gelecek derse hazırlık
Günlük hayattan yazılımla çözülebilecek bir problem düşünün.
Defterime yazıyorum
Sınavdan önce tekrar etmek için defterine yaz. Başlığı ve tarihi unutma!
1. İyi kodun özellikleri
| Özellik | Açıklama |
|---|---|
| Doğru çalışır | Beklenen sonucu verir |
| Sade | Gereksiz tekrar içermez; döngü ve fonksiyon kullanır |
| Okunur | Anlamlı kukla, değişken ve fonksiyon adları vardır |
| Düzenli | Kodlar ilgili kuklaya ve olaya göre gruplanmıştır |
Dikkat: Kodun okunabilirliği, onu yazan kişi dışında birinin (ya da bir ay sonra bizim) kolayca anlayabilmesidir.
2. Sadeleştirme
Sadeleştirme, kodun yaptığı işi değiştirmeden gereksiz tekrarları kaldırıp daha kısa ve anlaşılır hâle getirmektir.
- Tekrarı bul: aynı blok dizileri var mı?
- Arka arkaya tekrar → döngü: "4 kez tekrarla".
- Farklı yerlerde tekrar → fonksiyon: bir kez tanımla, her yerde çağır.
- Adlandır: Kukla1 yerine Kedi, a yerine puan.
- Test et: sadeleşen kod aynı sonucu veriyor mu?
3. Önce / sonra
| Durum | Önce | Sonra | Blok sayısı |
|---|---|---|---|
| Kare çizmek | ilerle, dön × 4 alt alta | 4 kez tekrarla { ilerle, dön } | 8 → 3 |
| Üç engelde zıplamak | zıplama blokları 3 yerde | zıpla fonksiyonu + 3 çağrı | 30 → 13 |
| Kukla adları | Kukla1, Kukla2 | Kedi, Top | Aynı ama okunur |
4. Döngü mü, fonksiyon mu?
| Döngü | Fonksiyon |
|---|---|
| Aynı iş arka arkaya tekrarlanıyorsa | Aynı iş programın farklı yerlerinde yapılıyorsa |
| Aynı adım 10 kez arka arkaya | Aynı ses efekti üç farklı olayda |
| Yıldızın sürekli dönmesi | "Oyunu sıfırla" hem başta hem kaybedince |
5. Kod dedektifliği
Karmaşık bir kodu incelerken önce tekrar eden blok dizilerini işaretleriz, sonra bunları döngüye ya da fonksiyona dönüştürür ve blok sayısını önce/sonra karşılaştırırız. Kod kısalmış ama sonuç değişmemişse sadeleştirme başarılıdır.
- Sadeleştirme
- Kodu, yaptığı işi değiştirmeden kısaltıp anlaşılır yapma.
- Tekrar
- Aynı blok dizisinin birden çok kez yazılması.
- Okunabilirlik
- Kodun kolayca anlaşılabilmesi.
- Fonksiyon
- Bir işi yapan, adı olan blok grubu.
- İyi kod: doğru, sade, okunur, düzenli.
- Arka arkaya tekrar → döngü; farklı yerlerde tekrar → fonksiyon.
- Sadeleştirmeden sonra kod test edilir.
- İyi kodun dört özelliğini yaz.
- Sadeleştirme nedir? Adımlarını yaz.
- Hangi durumda döngü, hangi durumda fonksiyon kullanılır?
- Kare çizen 8 bloklu kodu döngüyle kaç bloğa indirirsin?
- Anlamlı ad vermek hangi özelliği güçlendirir?
- Sadeleştirmeden sonra neden test yaparız?
Kendimi deniyorum — cevap anahtarı (yalnız öğretmen)
6. Sınıf Bilişim · 21. Hafta: Kodu İyileştir, Fonksiyonla Sadeleştir — Kendimi deniyorum cevap anahtarı
İyi kodun dört özelliğini yaz.
Doğru çalışır, sadedir, okunurdur, düzenlidir.
Sadeleştirme nedir? Adımlarını yaz.
Sadeleştirme, kodun yaptığı işi değiştirmeden gereksiz tekrarları kaldırıp daha kısa ve anlaşılır hâle getirmektir. Adımlar: tekrarı bul, arka arkaya tekrarı döngüye çevir, farklı yerlerdeki tekrarı fonksiyona çevir, anlamlı adlar ver, test et.
Hangi durumda döngü, hangi durumda fonksiyon kullanılır?
Aynı iş arka arkaya tekrarlanıyorsa döngü; aynı iş programın farklı yerlerinde yapılıyorsa fonksiyon kullanılır.
Kare çizen 8 bloklu kodu döngüyle kaç bloğa indirirsin?
3 bloğa indiririm: 4 kez tekrarla { ilerle, dön }.
Anlamlı ad vermek hangi özelliği güçlendirir?
Okunabilirliği güçlendirir.
Sadeleştirmeden sonra neden test yaparız?
Sadeleşen kodun hâlâ aynı sonucu verdiğinden emin olmak için; kısaltırken bir şeyi bozmuş olabiliriz.
# başlık · - madde · **kalın** · boş satır = yeni paragraf. Not yalnız bu tarayıcıda saklanır; başka tahtaya taşımak için Öğretmen alanındaki "Dışa aktar"ı kullanın.
Haftanın videosu
Bu hafta için hazır bir video yok. Kendi seçtiğiniz bir videoyu ekleyebilirsiniz.
Ders hazırlığı ve materyaller
Dersten önce
- "Kodları İyileştir, Fonksiyonla Sadeleştir" görselini EBA'dan açın.
Önerilen ders akışı
- 5 dk Dikkat çekme
- 10 dk İyi kod + sadeleştirme adımları
- 25 dk Kod Dedektifleri
- 5 dk Döngü mü fonksiyon mu?
- 25 dk Fonksiyonlu Proje Taslağı
- 10 dk Pekiştirme
EBA materyalleri (kılavuz kitaptaki karekodlar)
Bağlantılar yeni sekmede açılır ve EBA girişi ister — tahtada öğretmen hesabınızla oturum açın. EBA bu içeriklerin başka bir sayfaya gömülmesine izin vermez.
Ders materyalleri
- Fonksiyon Kullanarak Kod Geliştirme ve İyileştirme Sunumu kılavuz s. 173
- Kodları İyileştir Fonksiyonla Sadeleştir Görseli kılavuz s. 175
Ölçme ve değerlendirme formları
Ölçme ve değerlendirme
Öz değerlendirme formu ve "Ne Öğrendim, Ne Kazandım?" gözlem formu (EBA).
Kendi içeriklerim
Her bölümün altındaki "Bu bölüme görsel ekle" ile kendi görsellerinizi ekleyin, aşağıdaki düğmeyle görselleri sunuma ayrı slayt olarak katın; "Defterime yazıyorum" bölümünde kendi ders notunuzu yazın.
Yükleniyor…
Görseller ve notlar sunucuya gönderilmez; yalnız bu tarayıcıda saklanır. Tarayıcı verisi silinirse kaybolur: düzenli olarak Dışa aktar ile yedek alın, dosyayı başka tahtada İçe aktar ile açın. Öğrenci fotoğrafı ya da kişisel bilgi içeren görsel eklemeyin (KVKK).
Sınıf ortamı
İşaretlerseniz bilgisayar gerektiren etkinliklerdeki "tahta ve kâğıtla" alternatifleri açık gelir. Simülasyonlar tek bir tahta ekranında sınıfça yapılabilecek şekilde tasarlandı. Tercih bu tarayıcıda hatırlanır.
Maarif Modeli: 6. tema künyesi
Kaynak: Bilişim Teknolojileri ve Yazılım Dersi Öğretim Programı (TYMM). Tema toplam 34 ders saati.
- Alan becerileri
- BTYAB3. Yazılım Geliştirme (BTYAB3.2. Yazılım Geliştirme Sürecinde Kullanılan Bileşen/Yapı/ Yöntemlerinden Yararlanma, BTYAB3.3. Yazılım Geliştirme Sürecini Yönetme, BTYAB3.4. Yazılım Geliştirme Sürecinde Mekanik/Robotik ve Ürün veya Sistem Ortaya Koyma)
- Eğilimler
- E1.1. MerakE2.1. Empati
- Sosyal-duygusal öğrenme becerileri
- SDB1.2. Kendini Düzenleme (Öz Düzenleme)SDB1.3. Kendine Uyarlama (Öz Yansıtma)SDB2.1. İletişimSDB2.2. İş BirliğiSDB3.3. Sorumlu Karar Verme
- Değerler
- D1. AdaletD3. ÇalışkanlıkD6. DürüstlükD12. Sabır
- Okuryazarlık becerileri
- OB1. Bilgi OkuryazarlığıOB2. Dijital Okuryazarlık
- Disiplinler arası ilişkiler
- Görsel SanatlarMatematikMüzikSosyal BilgilerTürkçe
Zenginleştirme (erken kavrayanlar için)
- Yapay zekâ kullanan bir mesleği araştırıp yapay zekânın o alandaki etkisini sunma.
- Açık veri setiyle basit bir sınıflandırma modeli (meyve, yaprak sağlıklı/hastalıklı) deneme.
- Yapay zekâ destekli turist rehberi uygulamalarını araştırıp raporlama.
Destekleme (zorlananlar için)
- Değişken, döngü ve koşul kavramlarını görsel materyal ve videolarla pekiştirme.
- Adım adım yönergeli küçük projeler (karakteri hareket ettirme) tamamlama.
- Daha basit bir blok tabanlı araçla başlayıp zorlanılan konular için soru-cevap oturumu yapma.