Arduino Eğitim Kiti – Tüm Yıl İçin Arduino Müfredatı: Ders 1 Problem Çözme için isterseniz sunu şeklinde alt taraftaki kutucuğu büyüterek takip edebilir, isterseniz de tüm sunu sayfalarının makale haline dönüştürülmüş versiyonu takip edebilirsiniz. İçerikler büyük oranda aynıdır. Sınıf ortamında kolaylık olması açısından sunu şeklinde de sunulmuştur.
Ders İçeriği:
Problem Çözme
Ders Kazanımları:
- Problemin ne olduğunu tanımlar. Günlük hayattan problem örnekleri verir.
- Verdiği problem örneklerine uygun çözümleri algoritmik şekilde yazar.
- Problem örneklerine problem çözme stratejilerini kullanarak çözüm üretir.
Problem Çözme:
- Çocuklar her gün akademik zorluklardan spor alanındaki sorunlara kadar çeşitli sorunlarla karşılaşmaktadırlar.
- Problem çözme becerisine sahip olmayan çocuklar, bir problemle karşılaştıklarında aksiyona girmekten çekinebilmektedirler.
- Günlük hayatta olduğu gibi programlama derslerinin de başarılı bir şekilde sürdürülebilmesi için, öğrencilerimizin sahip olması gereken özelliklerin başında “problem çözme yeteneği” gelir.
- Bu beceri, günlük hayatın yanı sıra mesleki ve eğitimsel açıdan en önemli bilişsel etkinlik olarak görülmektedir.
- Programlama dünyasında ise problem ifadesi; çözülmesi, geliştirilmesi veya tamamlanması gereken durumları ifade etmektedir.
- Herhangi bir konuda olmasını istediğimiz durum ile mevcut durum arasındaki her türlü eksiklik, problem olarak görülür ve bunları çözmek bir programcı/kod yazan için en önemli görevdir.
- Problem çözme konusunda, ezberlenmiş kurallar yerine sistematik bir şekilde çözüm için çalışmak gerekir.
- Bizlerin temel görevi bir problemle karşılaşıldığında takip edebilecek stratejileri kullanabilmeyi öğretmektir.
Problem Çözme Stratejileri:
Bir problemi anladıktan ve analiz ettikten sonra, bir algoritma ile çözüm bulmalısınız. Algoritma; belirli bir sürede, belirli bir veri ile problemi çözmek için takip edilen adımlardır. Genellikle algoritmalar basmakalıp izlenmesi gereken adımlar gibi düşünülür. Sıralama, ortalama hesaplama, faktöriyel hesaplama algoritması gibi. Bilgisayar programlamanın problem çözme aşamasında, her probleme uygun algoritmaları tasarlamalısınız.
1) Soru Sorun
Sözlü olarak bir emir aldığınızda, yapılması gereken işi tam olarak anlayana kadar; Ne zaman? Nerede? ve Nasıl? sorularını sorarız. Programlama üzerinde çalışırken de önceliğimiz, problemi ve mevcut durumu anlaya kadar sorular sormaktır:
- Çalışmak için neye ihtiyacım var, yani elimdeki bilgiler neler?
- Mevcut bilgiler, daha önceden karşılaştığım bilgilere benziyor mu?
- Elimdeki bilgiler üzerinde nasıl bir çalışma yapmalıyım?
- Sonuç olarak istenen nedir?
- Hangi hatalar ortaya çıkabilir?
2) Tanıdık Bilgi Var Mı?
Programlamada da belirli problemler farklı biçimlerde tekrar tekrar karşımıza çıkar. İyi bir programcı daha önce çözmüş olduğu problemi hemen tanır ve çözüme odaklanır. Örneğin günlük hava sıcaklığı ölçümünü yapan bir cihazı programlarken günlük en yüksek sıcaklık ile en düşük sıcaklığı bulmak, çözülmesi gereken bir görevdir.
Benzer şekilde bir sınıftaki en yüksek not alan öğrenci ile en düşük not alan öğrenciyi bulmak da çözülmesi gereken bir görevdir, problemdir. Her iki problemi benzer metotlar kullanarak çözebiliriz.
3) Çıkarım Yapın
Problem çözümüyle belirli bir süre uğraştıktan sonra, genellikle bir problem daha önce gördüğünüz bir problemi hatırlatır. Diğer problemi nasıl çözdüğünüzü hatırlarsanız, daha kolay çözebilirsiniz. Başka bir ifadeyle iki problem arasında benzeşim kurabiliriz.
4) Araç-Amaç Analizi
Araç-amaç analizi stratejisinin temel amacı, ulaşmak istediğiniz hedefi tanımlamak ve bu hedefe giderken ki araçlarınızı ve ara hedefleri analiz etmektir. Girişte verilenleri ve çıkışta ne olacağını yazarak işe başlayabilirsiniz. Ardından bilgisayarın yapabileceklerini göz önüne alarak girdiyi, sonuçlara dönüştürebilecek eylemler dizisi belirlersiniz.
5) Problemi Küçük Parçalara Bölün
Büyük bir problemi tek tek çözebileceğimiz küçük problemlere bölebiliriz.
Örneğin:
6) Parçadan Bütüne
Büyük bir sorunu çözmeye çalışmadan önce, mevcutta problemin küçük parçaları için herhangi bir çözüm olup olmadığını kontrol ediniz. Küçük problemlerin çözümlerini birleştirerek büyük problemin çözümünü de sağlamış oluruz.
7) Çözümleri Bir Araya Getirin
Bir problemin çözümü için gerekli adımların bir araya getirildiği yöntemdir. Örneğin bir sınıfın bir sınavdan aldığı notların ortalamasını hesaplamak istiyoruz.
Problem: Notları girilen bir sınıfın mevcudunu ve not ortalamasını hesaplamak
Algoritma:
- İşlem1: Başla
- İşlem2: Not giriniz(N)
- İşlem3: Toplam = Toplam+N, Sınıf Mevcudu = Sınıf Mevcudu+1
- İşlem4: Ortalama = Toplam/Sınıf Mevcudu
- İşlem5: Yeni not varsa işlem2’ye git
- İşlem6: Sınıf mevcudunu ve ortalamayı göster
- İşlem7: Bitir.
8) Algoritmik Problem Çözümü
Bir problemi çözmek için algoritma tasarlarız ve bu algoritma tasarımı bir deneme yanılma çalışması şeklinde olur. Sorunu gerçekten çözüp çözmediğimizi görmek için test ederiz. Sorun çözüldüyse algoritma başarılıdır. Sorun çözülmediyse tekrar deneriz. Genellikle, herhangi bir belirgin sorunu çözmek için anlattığımız tekniklerin bir kombinasyonunu kullanırız.
Alıştırmalar (Öğrenciler için):
Aşağıda verilen sorunların çözüm aşamalarını adımlar halinde (algoritma) yazınız.
- Hava çok sıcak ve iyice bunaldınız serinlemek için ne yaparsınız?
- Yarın önemli bir sınavınız var, çalışma masanıza oturdunuz. Birden masa lambanızın çalışmadığını fark ettiniz. Bu durumu çözmek için ne yaparsınız?
- Bir hafta sonra teslim etmeniz gereken bir projeniz var ve bu projenin en önemli kısmını oluşturacak kitap elinizde yok. Kitabı edinmek için neler yaparsınız?
- Okula gitmek için evden çıktınız. Gökyüzüne baktınız ve kısa bir süre sonra yağmur yağacağını tahmin ettiniz. Okula ıslanmadan gidebilmek için neler yaparsınız? Adım adım yazınız.
- Arkadaşınızdan aldığınız kitabı kaybettiniz. Kitabın son teslim tarihi yarın. Nasıl bir çözüm bulacağınızı adım adım yazınız.
- Babanız sizi okuldan almaya gelecekti. Okul bittikten sonra uzun süre beklediniz ama gelmedi ve telaşlanmaya başladınız. Ne yapacağınızı adım adım yazınız.
- Çok önemli bir ödevinizin son teslim tarihi bugündü ancak evde unuttunuz. Nasıl çözüme ulaşacağınızı adım adım yazınız.
- Bilgisayarın başına oturdunuz ve klavyenin çalışmadığını fark ettiniz. Çalışması için neler yaparsınız? Adım adım yazınız.