Fonksiyonlar: Tekrar Eden İşlere Ad Vermek
Günlük rutinlerden yola çıkarak fonksiyon kavramını öğreniyor, blok tabanlı ortamda kendi bloğumuzu (fonksiyon) tanımlayıp çağırıyoruz.
- 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
- b) Blok tabanlı ortamda yazılım geliştirme süreci bileşenlerini kullanır.
Düşünelim, konuşalım
- 1"Diş fırçala" dediğimizde her adımı tek tek söylememiz gerekir mi?
Öğretmen için: olası cevaplar
Olası cevaplar: "Hayır, herkes ne demek olduğunu bilir", "Evet, küçük çocuğa söylemek gerekir".
Varılacak nokta: "Diş fırçala" bir rutinin adıdır; adı söyleyince bütün adımlar yapılır. Fonksiyon da adımlara verilen bir addır.
Cevap gelmezse: "Annenizin 'diş fırçala' demesi ile 'macunu al, fırçaya sür, iki dakika fırçala…' demesi arasında fark var mı?" diye sorun. Gerekirse: "Sonuç aynı ama ilki çok kısa, çünkü adımların bir adı var. Programda da adımlara ad verebiliriz; buna fonksiyon denir."
- 2Bir işi birden çok kez yapacaksak her seferinde baştan yazmak mantıklı mı?
Öğretmen için: olası cevaplar
Olası cevaplar: "Hayır, çok uzun olur", "kopyalarız", "döngü kullanırız".
Varılacak nokta: Aynı işi tekrar tekrar yazmak yerine bir kez tanımlar, ihtiyaç olan her yerde adıyla çağırırız.
Cevap gelmezse: "Üç engelde de aynı zıplama hareketini yapacaksak 8 bloğu üç kez mi yazarız?" diye sorun. Gerekirse: "Yazmayız; bir kez 'zıpla' adıyla tanımlar, üç yerde 'zıpla' deriz."
- 3Kendi komutunuzu icat etseydiniz adı ne olurdu?
Öğretmen için: olası cevaplar
Olası cevaplar: "zıpla", "dans et", "ödevimi yap", "kaç", "uç".
Varılacak nokta: Kendi bloğumuzu (fonksiyon) ne yaptığını söyleyen anlamlı bir adla oluştururuz.
Cevap gelmezse: "Kuklanız oyunda sık sık ne yapıyor? O işe bir ad verelim." deyin. Gerekirse: "Örneğin 'zıpla'. Bu adla yeni bir blok yapıp içine zıplama adımlarını koyacağız."
- 4Bir tarifte "hamuru hazırla (bkz. sayfa 3)" yazması neden işe yarar?
Öğretmen için: olası cevaplar
Olası cevaplar: "Tekrar yazmamak için", "başka sayfada anlatılmış", "kitap kısa olsun diye".
Varılacak nokta: Fonksiyon bir kez yazılır (tanımlama) ve başka yerlerden adıyla çağrılır (çağırma).
Cevap gelmezse: "Hamur birçok tarifte kullanılıyorsa her tarifte baştan anlatmak mantıklı mı?" diye sorun. Gerekirse: "Değil. Bir kez sayfa 3'te anlatılır, diğer tarifler oraya gönderir. Fonksiyon da bir kez tanımlanır, her yerde çağrılır."
Fonksiyon nedir?
Fonksiyon, belirli bir işi yapan komutlara bir ad vererek oluşturduğumuz yeni bloktur. Bir kez tanımlanır, istediğimiz kadar çağrılır.
kare çiz fonksiyonu → 4 kez tekrarla { ilerle 100, sağa dön 90° }
Artık her kare için yalnız kare çiz yazarız. Program kısalır, okunur ve düzeltmesi kolaylaşır: hata varsa tek yerde düzeltiriz.
Fonksiyonsuz ve fonksiyonlu kod
Fonksiyonsuz
- Aynı 8 blok üç kez yazılır (24 blok)
- Bir hata üç yerde düzeltilir
- Okuması zor
Fonksiyonlu
- kare çiz bir kez tanımlanır
- Üç kez çağrılır (3 blok)
- Hata tek yerde düzeltilir
Tekrarla ve kısalt
Bu etkileşimli bölüm için tarayıcıda JavaScript açık olmalıdır.
Tanımlama ve çağırma
Fonksiyonun adını ve içindeki blokları bir kez yazmak: "tanımla: zıpla → 10 kez y'yi 5 değiştir, 10 kez y'yi −5 değiştir".
Fonksiyonun adını yazarak içindeki bütün blokları çalıştırmak: "zıpla". İstediğimiz yerden, istediğimiz kadar çağırabiliriz.
Rutinden fonksiyona
Fonksiyon adı: okula hazırlan. İçindeki adımlar neler olabilir?Cevabı göster
Uyan · yüzünü yıka · giyin · kahvaltı yap · çantanı al. "okula hazırlan" dendiğinde bu adımların hepsi sırayla çalışır.
Oyunda karakter her engelde zıplıyor. "zıpla" bloklarını 5 yere kopyalamak yerine ne yaparız?Cevabı göster
zıpla adında bir fonksiyon tanımlar, 5 yerde onu çağırırız. Zıplama yüksekliğini değiştirmek istersek tek yerden değiştiririz.
Fonksiyonu tanımladık ama hiç çağırmadık. Ne olur?Cevabı göster
Hiçbir şey. Tanımlamak yalnız tarifi yazmaktır; blokların çalışması için fonksiyonun çağrılması gerekir.
Günlük Rutinlerden Fonksiyona
Öğrenciler bir rutini fonksiyon adı + adımlar olarak yazar.
- Bir rutin seçin (sabah hazırlığı).
- Adımları yazın ve rutine bir ad verin.
- "okula hazırlan" dendiğinde hangi adımlar çalışır?
Fonksiyon Bloklarıyla İlk Temas
Eşler blok ortamında "kendi bloğunu yap" ile bir fonksiyon tanımlar.
- "Blok yap" ile yeni blok oluşturun (ör. zıpla).
- İçine hareket bloklarını ekleyin.
- Bloğu farklı olaylarda çağırın.
Öğrenci bilgisayarı yoksa: tahta ve kâğıtla
"Zıpla" gibi bir fonksiyonu kâğıt kartla tanımlayın (içine hareket kartları); bir öğrenci fonksiyon kartını her gösterişte içindeki hareketleri yapar.
Kendimizi sınayalım
Bugün neler öğrendik?
- Fonksiyon: bir işi yapan komutlara ad verilmiş yeni blok.
- Fonksiyon bir kez tanımlanır, istenildiği kadar çağrılır.
- Faydası: program kısalır, okunur, hata tek yerde düzeltilir.
- fonksiyon
- tanımlama
- çağırma
- rutin
Gelecek derse hazırlık
Karmaşık görünen bir programda tekrar eden parçaları bulmaya çalışın.
Defterime yazıyorum
Sınavdan önce tekrar etmek için defterine yaz. Başlığı ve tarihi unutma!
1. Fonksiyon nedir?
Fonksiyon, belirli bir işi yapan komutlara bir ad vererek oluşturduğumuz yeni bloktur. Günlük hayattaki rutinler gibidir: "diş fırçala" dediğimizde her adımı tek tek söylemeyiz, adı söylemek yeter.
Örnek: kare çiz fonksiyonu: 4 kez tekrarla { 100 adım git, 90 derece sağa dön }. Artık her kare için yalnız kare çiz yazarız.
2. Tanımlama ve çağırma
| Kavram | Anlamı | Örnek |
|---|---|---|
| Tanımlama | Fonksiyonun adını ve içindeki blokları bir kez yazmak | tanımla: zıpla → yukarı çık, aşağı in |
| Çağırma | Fonksiyonun adını yazarak bütün bloklarını çalıştırmak | zıpla |
Dikkat: Tanımlanıp hiç çağrılmayan fonksiyon hiçbir şey yapmaz: tanımlamak yalnız tarifi yazmaktır.
3. Rutinden fonksiyona
| Fonksiyon adı | İçindeki adımlar |
|---|---|
| okula hazırlan | uyan · yüzünü yıka · giyin · kahvaltı yap · çantanı al |
| diş fırçala | macunu sür · 2 dakika fırçala · ağzını çalkala |
| zıpla | 10 kez y'yi 5 değiştir · 10 kez y'yi −5 değiştir |
4. Fonksiyonun faydaları
- Program kısalır.
- Program okunur hâle gelir.
- Düzeltme ve değiştirme kolaylaşır.
- Aynı fonksiyon farklı olaylardan çağrılabilir.
| Fonksiyonsuz | Fonksiyonlu |
|---|---|
| Aynı 8 blok üç kez yazılır (24 blok) | Bir kez tanımlanır, üç kez çağrılır |
| Bir hata üç yerde düzeltilir | Hata tek yerde (tanımda) düzeltilir |
| Okuması zor | Adı ne yaptığını söyler, okunur |
5. Blok ortamında fonksiyon yapmak
- Fonksiyon
- Bir işi yapan komutlara ad verilmiş yeni blok.
- Tanımlama
- Fonksiyonun içeriğini bir kez yazma.
- Çağırma
- Fonksiyonu adıyla çalıştırma.
- Rutin
- Hep aynı sırayla tekrarlanan iş.
- Blok paletinde "Blok Yap" seçilir ve yeni bloğa anlamlı bir ad verilir (zıpla).
- Kod alanında tanımla: zıpla başlığı belirir; altına bloklar eklenir.
- Yeni zıpla bloğu paletten sürüklenip istenen olayın altına konur (çağırma).
- Fonksiyon: bir işi yapan komutlara ad verilmiş yeni blok.
- Bir kez tanımlanır, istenildiği kadar çağrılır.
- Program kısalır, okunur; hata tek yerde düzeltilir.
- Fonksiyon nedir? Günlük hayattan bir rutinle açıkla.
- Tanımlama ile çağırma arasındaki farkı yaz.
- "kare çiz" fonksiyonunun içindeki blokları yaz.
- Fonksiyon kullanmanın üç faydasını yaz.
- Tanımlanıp hiç çağrılmayan bir fonksiyon ne yapar?
- Kendi seçtiğin bir rutini fonksiyon adı ve adımlarıyla yaz.
Kendimi deniyorum — cevap anahtarı (yalnız öğretmen)
6. Sınıf Bilişim · 20. Hafta: Fonksiyonlar: Tekrar Eden İşlere Ad Vermek — Kendimi deniyorum cevap anahtarı
Fonksiyon nedir? Günlük hayattan bir rutinle açıkla.
Fonksiyon, belirli bir işi yapan komutlara bir ad vererek oluşturduğumuz yeni bloktur. Örnek: "okula hazırlan" dediğimizde uyanmak, yüz yıkamak, giyinmek, kahvaltı etmek ve çantayı almak adımlarının hepsi anlaşılır.
Tanımlama ile çağırma arasındaki farkı yaz.
Tanımlama fonksiyonun adını ve içindeki blokları bir kez yazmaktır. Çağırma fonksiyonun adını yazarak içindeki bütün blokları çalıştırmaktır.
"kare çiz" fonksiyonunun içindeki blokları yaz.
4 kez tekrarla { 100 adım git, 90 derece sağa dön }.
Fonksiyon kullanmanın üç faydasını yaz.
Program kısalır, program okunur hâle gelir, düzeltme ve değiştirme kolaylaşır (aynı fonksiyon farklı olaylardan çağrılabilir da olur).
Tanımlanıp hiç çağrılmayan bir fonksiyon ne yapar?
Hiçbir şey yapmaz; tanımlamak yalnız tarifi yazmaktır, çalışması için çağrılması gerekir.
Kendi seçtiğin bir rutini fonksiyon adı ve adımlarıyla yaz.
Öğrenciye göre değişir. Örnek: çantamı hazırla: ders programına bak · kitapları koy · kalem kutusunu koy · su şişesini koy · çantayı kapat.
# 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
- "Fonksiyon Kavramı ve Tanımı" sunusunu EBA'dan açın.
Önerilen ders akışı
- 5 dk Dikkat çekme
- 10 dk Fonksiyon nedir + karşılaştırma
- 20 dk Günlük Rutinlerden Fonksiyona
- 5 dk Tanımlama ve çağırma
- 30 dk Fonksiyon Bloklarıyla İlk Temas
- 10 dk Rutinden fonksiyona + 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 Kavramı ve Tanımı Sunu kılavuz s. 168
- Fonksiyonlu Kod - Fonksiyonsuz Kod Görseli kılavuz s. 171
Ölçme ve değerlendirme formları
Ölçme ve değerlendirme
Fonksiyonun Getirdiği Düzen yansıtma 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.