Algoritmamı Test Ediyorum
Akış şemasıyla gösterdiğimiz algoritmayı tamamlıyor, ardından farklı durumlarla test ederek doğru çalışıp çalışmadığını kontrol ediyoruz.
- Problem Belirleme ve Algoritma Oluşturma
- Algoritma Test Etme ve Geri Bildirim Alma
Öğrenme çıktıları
BTY.5.6.1 Problem çözümü için algoritmik düşünebilme
- ç) İşlem adımlarını akış şeması ile gösterir.
BTY.5.6.2 Algoritma oluşturmada test edebilme - hata ayıklayabilme
- a) Geliştirdiği algoritmayı test eder.
Düşünelim, konuşalım
- 1Bir tarifi ilk kez uygulayan biri nerede hata yapabilir?
Öğretmen için: olası cevaplar
Olası cevaplar: "Malzemeyi yanlış koyar", "sırayı karıştırır", "ölçüleri anlamaz", "fırını açmayı unutur".
Varılacak nokta: Algoritma kâğıtta doğru görünse de denendiğinde hatalar ortaya çıkar; bu yüzden test ederiz.
Cevap gelmezse: "Tarifte 'biraz tuz' yazıyorsa ilk kez pişiren ne kadar koyar?" diye sorun. Gerekirse: "Kimi az, kimi çok. Belirsiz adımlar ancak denenince fark edilir; test bunu yakalar."
- 2Bir oyunda "bug" (hata) gördünüz mü?
Öğretmen için: olası cevaplar
Olası cevaplar: "Evet, karakter duvarın içinden geçti", "oyun dondu", "puan yanlış saydı".
Varılacak nokta: Programın yanlış çalışmasına yol açan kusura hata (bug), hatayı bulup düzeltmeye hata ayıklama denir.
Cevap gelmezse: Kendi örneğinizi anlatın: "Bir oyunda karakter duvarın içinden geçebiliyordu." Gerekirse: "Programcı bu durumu hiç denememişti. Bu tür kusurlara hata (bug) diyoruz."
- 3Algoritmayı kim test etmeli: yazan mı, başkası mı?
Öğretmen için: olası cevaplar
Olası cevaplar: "Yazan", "başkası", "ikisi de".
Varılacak nokta: İkisi de test etmeli; başkası, yazanın aklına gelmeyen durumları bulur.
Cevap gelmezse: "Kendi yazdığınız yazıdaki hatayı mı, arkadaşınızınkini mi daha kolay görürsünüz?" diye sorun. Gerekirse: "Genellikle arkadaşınızınkini. Algoritmayı başkasına denetmek de bizim düşünmediğimiz durumları ortaya çıkarır."
- 4Bir köprü açılmadan önce neden test edilir?
Öğretmen için: olası cevaplar
Olası cevaplar: "Çökmesin diye", "insanlar güvende olsun", "ağırlığı taşıyor mu bakmak için".
Varılacak nokta: Test, gerçek kullanımdan önce bir şeyin doğru çalıştığını kanıtlamaktır; yazılımlar da kullanıcıya ulaşmadan test edilir.
Cevap gelmezse: "Test edilmemiş bir köprüden ilk siz geçmek ister misiniz?" diye sorun. Gerekirse: "İstemeyiz. Köprü önce ağır yüklerle denenir. Algoritmayı da kullanmadan önce farklı durumlarla deneriz."
Test etmek
Test, algoritmanın farklı durumlarda doğru sonucu verip vermediğini denemektir. İyi bir test; normal durumu, sınır durumları (ör. 0, en büyük değer) ve beklenmedik durumları dener.
Bulunan hataya hata (bug), hatayı bulup düzeltmeye hata ayıklama (debug) denir.
Üç tür test durumu
En sık karşılaşılan durum: "Yağmur var" ya da "Yağmur yok".
Kuralın tam kenarı: köprü sınırı 10 ton ise tam 10 ton.
Algoritmayı yazarken düşünülmemiş durum: "Kar yağıyor", "sayı negatif".
Tüm yolları dene
Karar kutusunda iki farklı cevabı da seçerek algoritmanın her yolunu test edin. "Tek mi çift mi?" şemasında 0 ve negatif sayıları da deneyin.
Bu etkileşimli bölüm için tarayıcıda JavaScript açık olmalıdır.
Test tablosu
| Test | Girdi | Beklenen çıktı | Gerçekleşen | Sonuç |
|---|---|---|---|---|
| 1 | Yağmur var | Şemsiye alınır | … | ✓ / ✗ |
| 2 | Yağmur yok | Şemsiye alınmaz | … | ✓ / ✗ |
| 3 | Kar yağıyor | ? | … | Yeni durum! |
Algoritmayı başkasına test ettirmek iyi bir fikirdir: yazan kişi kendi düşündüğü durumları dener, başkası ise aklımıza gelmeyen durumları bulur. Buna geri bildirim almak denir.
Algoritmamı Test Ediyorum
Eşler birbirinin algoritmasını test tablosuyla dener ve geri bildirim verir.
- Arkadaşınızın akış şemasını alın.
- En az üç test yazın (biri beklenmedik durum).
- Sonuçları tabloya işleyin ve geri bildirim verin.
Kendimizi sınayalım
Bugün neler öğrendik?
- Test, algoritmayı farklı durumlarla denemektir: normal, sınır, beklenmedik.
- Test tablosu: girdi – beklenen – gerçekleşen.
- Hata = bug, hata ayıklama = debug.
- test
- hata
- hata ayıklama
- test tablosu
Gelecek derse hazırlık
Testte bulduğunuz hataları düzeltmek için bir plan yapın.
Defterime yazıyorum
Sınavdan önce tekrar etmek için defterine yaz. Başlığı ve tarihi unutma!
1. Test etmek
Test, algoritmanın farklı durumlarda doğru sonucu verip vermediğini denemektir. Bir algoritmayı yazmak yetmez; yazdığımız algoritmanın gerçekten doğru çalıştığını kanıtlamamız gerekir. Köprüler açılmadan, uygulamalar yayınlanmadan önce test edilir.
2. Test durumları
| Durum | Anlamı | Örnek |
|---|---|---|
| Normal durum | En sık karşılaşılan durum | Yağmur var / yağmur yok |
| Sınır durumu | Kuralın tam kenarı | Köprü sınırı 10 ton ise tam 10 ton |
| Beklenmedik durum | Yazarken düşünülmemiş durum | Kar yağıyor, sayı negatif, sayı 0 |
Dikkat: İyi bir test, algoritmanın her yolunu dener: karar kutusunda hem Evet hem Hayır cevabı denenmelidir.
3. Test tablosu
Testleri düzenli yapmak için test tablosu kullanırız. Tabloda her test için girdi, beklenen çıktı ve gerçekleşen çıktı yazılır. Beklenen ile gerçekleşen aynıysa test başarılıdır; farklıysa algoritmada hata vardır.
| Test | Girdi | Beklenen çıktı | Gerçekleşen | Sonuç |
|---|---|---|---|---|
| 1 | Yağmur var | Şemsiye alınır | Şemsiye alındı | Başarılı |
| 2 | Yağmur yok | Şemsiye alınmaz | Şemsiye alınmadı | Başarılı |
| 3 | Kar yağıyor | Şemsiye/bere alınır | Algoritma bilmiyor | Yeni durum |
4. Hata ve hata ayıklama
- Hata (bug)
- Algoritmanın ya da programın yanlış çalışmasına yol açan kusur.
- Hata ayıklama (debug)
- Hatayı bulup düzeltme işi.
- Test tablosu
- Girdi, beklenen ve gerçekleşen çıktıların karşılaştırıldığı tablo.
Örnek: "Tek mi çift mi?" algoritmasını yalnız 7 ile test eden biri, 0 ya da negatif sayı girilince ne olacağını hiç görmez. Farklı girdiler hatayı ortaya çıkarır.
5. Geri bildirim almak
Algoritmayı başkasına test ettirmek iyi bir fikirdir. Yazan kişi kendi düşündüğü durumları dener; başkası ise bizim aklımıza gelmeyen durumları bulur. Arkadaşımızın söylediği görüşlere geri bildirim denir ve algoritmayı geliştirmek için kullanılır.
- Test ederken nazik oluruz: kişiyi değil algoritmayı değerlendiririz.
- Bulduğumuz hatayı hangi girdide oluştuğuyla birlikte yazarız.
- Test, algoritmayı farklı durumlarla denemektir: normal, sınır, beklenmedik.
- Test tablosu: girdi – beklenen çıktı – gerçekleşen çıktı.
- Hata = bug; hatayı bulup düzeltmek = hata ayıklama (debug).
- Algoritmayı neden test ederiz?
- Normal, sınır ve beklenmedik durum testlerine birer örnek ver.
- Test tablosunun sütunlarını yaz ve ne işe yaradığını açıkla.
- Beklenen çıktı ile gerçekleşen çıktı farklıysa ne anlarız?
- Hata ve hata ayıklama kavramlarını açıkla.
- Algoritmayı başkasına test ettirmek neden faydalıdır?
Kendimi deniyorum — cevap anahtarı (yalnız öğretmen)
5. Sınıf Bilişim · 28. Hafta: Algoritmamı Test Ediyorum — Kendimi deniyorum cevap anahtarı
Algoritmayı neden test ederiz?
Algoritmanın farklı durumlarda doğru sonucu verdiğini kanıtlamak ve hataları kullanılmadan önce bulmak için.
Normal, sınır ve beklenmedik durum testlerine birer örnek ver.
Normal: yağmur var ya da yağmur yok. Sınır: köprü sınırı 10 ton ise tam 10 ton. Beklenmedik: kar yağıyor, sayı negatif ya da 0.
Test tablosunun sütunlarını yaz ve ne işe yaradığını açıkla.
Test, girdi, beklenen çıktı, gerçekleşen çıktı, sonuç. Testleri düzenli yapmaya ve beklenen ile gerçekleşen sonucu karşılaştırarak hatayı bulmaya yarar.
Beklenen çıktı ile gerçekleşen çıktı farklıysa ne anlarız?
Algoritmada bir hata vardır; algoritma o girdide yanlış çalışıyordur ve düzeltilmesi gerekir.
Hata ve hata ayıklama kavramlarını açıkla.
Hata (bug): algoritmanın ya da programın yanlış çalışmasına yol açan kusur. Hata ayıklama (debug): hatayı bulup düzeltme işi.
Algoritmayı başkasına test ettirmek neden faydalıdır?
Yazan kişi yalnız kendi düşündüğü durumları dener; başkası onun aklına gelmeyen durumları ve hataları bulur.
# 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
- "Algoritmamı Test Ediyorum" ara değerlendirme formunu EBA'dan açın.
Önerilen ders akışı
- 5 dk Dikkat çekme
- 10 dk Test etmek + üç tür durum
- 10 dk Tüm yolları dene + test tablosu
- 30 dk Etkinlik: Algoritmamı Test Ediyorum
- 5 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
- Akış Şeması Şablonu kılavuz s. 204
- Algoritma Örnekleri kılavuz s. 204
- Boş Akış Şeması Şablonu kılavuz s. 204
- El Yıkama Akış Şeması kılavuz s. 204
- Algoritma Dikkat Çekme kılavuz s. 204
Ölçme ve değerlendirme formları
Ölçme ve değerlendirme
Test tabloları kontrol listesi ile.
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 24 ders saati.
- Alan becerileri
- BTYAB2. Bilgi İşlemsel Düşünme (BTYAB2.1. Algoritmik Düşünme, BTYAB2.4. Test Etme-Hata Ayıklama)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)
- Eğilimler
- E1.2. BağımsızlıkE1.4. Kendine İnanma (Öz Yeterlilik)E2.5. OyunseverlikE3.3. YaratıcılıkE3.6. AnalitiklikE3.7. SistematiklikE3.8. Soru SormaE3.10. Eleştirel Bakma
- Sosyal-duygusal öğrenme becerileri
- SDB1.1. Kendini Tanıma (Öz Farkındalık)SDB1.2. Kendini Düzenleme (Öz Düzenleme)SDB2.1. İletişimSDB2.2. İş BirliğiSDB3.2. EsneklikSDB3.3. Sorumlu Karar Verme
- Değerler
- D1. AdaletD3. ÇalışkanlıkD5. DuyarlılıkD9. MerhametD10. Mütevazılık
- Okuryazarlık becerileri
- OB1. Bilgi OkuryazarlığıOB2. Dijital Okuryazarlık
- Disiplinler arası ilişkiler
- Görsel SanatlarMatematikSosyal BilgilerTürkçe
Zenginleştirme (erken kavrayanlar için)
- Kurt–kuzu–ot bulmacasının daha çok öge ve kural içeren bir sürümünü çözüp çözüm yolunu anlatma.
- Okuldaki bir soruna (kütüphane düzeni, duyuru) yazılım fikri geliştirme.
- Aynı problemi iki farklı algoritmayla çözüp karşılaştırma.
Destekleme (zorlananlar için)
- Akış şeması ve Frayer diyagramıyla algoritmayı görselleştirme.
- Günlük bir problemi (okula hazırlanma) algoritma adımlarına bölme.
- Küçük gruplarda tek bir bloğu ekleyerek görev tamamlama; başarıyı hemen görme.