2. dönem 1. yazılı konuları 2. dönemin 1. haftasından başlar. Son işlenen konuya kadardır.
1. Haydi Veri Toplamaya!
Veri Sınıflandırması
İşte tarihten günümüze tüm bilgisayarlar matematiksel ifadelerle ve rakamlarla çalışır. Bilgisayar içerisindeki bilgilere veri adı verilir. Bilgisayarlar matematiksel olarak bu bilgileri sınıflandırır. Buna veri sınıflandırması denir.
Aşağıdaki sunumda veri çeşitlerini inceleyelim.
2. Sabit mi, Değişken mi?
Bilgisayarlarda sabit ve değişkenler
Bilgisayarda çalışan programlar sabit ve değişkenler ile çalışır. Kodlama yaparken sabit ve değişkenler belirlenerek programın çalışma yapısı oluşturulur. İlerdeki derslerimizde bunları kullanacağız.
Bilgisayarda “Sabit” olarak tanımlanan veriler problemin çözüm süreci boyunca asla değişmeyen değerlerdir. Sabit değerler sayısal, karakter ya da özel semboller olabilir. Bu durumda bu değere bilgisayarın hafızasında bir yer ayrılır ve bir isim verilir.
Bilgisayarda “Değişken” tanımlandığında değeri, bilgisayarda program çalıştığı sürece değişebilir. Değişkenlere taşıdığı değerleri ifade eden isimler verilir. Böylece bilgisayar bu ismi, ilgili değeri hafızada bulmak için kullanır. Değişkenin içerisindeki değer değişir, değişkenin adı değişmez.
Örneğin fiyat isimli bir verinin içerisine 50 değeri atanmış olabilir, program çalıştığı süre içerisinde bu değer değişebilir örneğin 40 olarak değiştirilebilir ancak fiyat isimli veri hiçbir zaman değişmez. Yani fiyat isimli veri sabit, 50 değeri atanan veri değişkendir.
3. BÖL, PARÇALA, ÇÖZ
Basit ve Karmaşık Problemler
Bilgisayarların tasarımında ve çalışmasında sabit ve değişken kavramlarının kullanıldığını öğrenmiştik. Bu konuda ise problemlerin bilgisayarın çalışma mantığında var olan rolü üzerinde duracağız. Problemlerin çözümü için birçok strateji vardır. Bunlardan bir tanesi ise çözüm için gerekli olan faaliyetlerin adım adım vurgulandığı algoritmadır. Yani diğer adıyla yönergedir.
Bilgisayarda kodlama yaparken problemler ve problem çözme stratejilerini etkin bir şekilde kullanılır.
Bilgisayarda da var olan programlar yani yazılımlar bu adımlarla çalışır. O nedenle problem ve problem çözme adımları ilerdeki derslerimizde kodlama yapacağımız için önemlidir. Öncelikle problemin ne olduğunu öğrenelim ve problemlerin gerçek hayatta karşımıza çıktığı durumları inceleyelim.
Problem Nedir?
Sorun ya da problem; çözülmesi gereken mesele, soru veya aşılması gereken engellerdir. Hayatımızda karşılaştığımız çözülmesi gereken birçok problemle karşılaşabiliriz. Bu problemlerin çözümleri için geliştirilen çözümler ve atılması gereken adımlar vardır.
Örneğin; çevre kirliliği, evde ekmek kalmaması, yarına yapılacak ödevlerin olması, kuraklık tehlikesi, suyun iki saatliğine kesilmesi gibi olaylar gerçek yaşamda karşılaştığımız problemlerdir ve çözüm bulunması gerekir. Ayrıca problemler basit ve karmaşık olmak üzere ikiye ayrılır.
Basit Problem: Basit adımlardan oluşan ve her koşulda aynı yönde ilerleyerek çözülebilen problemlerdir.
Karmaşık Problem: Duruma özgü ve şartlara göre değişebilen çözüm adımlarından oluşan ve alt problemlere ayrılabilen problem türleridir. Çözüm için birçok adımın gerçekleşmesi ve takım çalışması gerekebilir.
Örneğin:
Aşağıda bulunan resimlerde ilk iki resim basit problemlere örnek verilebilir. Bunlar yemek yapmak ve araba yıkamaktır. Birkaç çözüm adımıyla çözülebilir. Altta bulunan iki resim ise karmaşık problemlere örnek verilebilir. Bunlar okulda başarılı olmak ve araba lastiği değiştirmek. Bunlar bir kaç çözüm adımıyla çözülemediğinden dolayı karmaşık problemlerdir.
Problemlerin çözümünde ise algoritma dediğimiz stratejileri kullanırız. Bir problemi çözmek ya da belirli bir amaca ulaşmak, bir işi gerçekleştirmek için tasarladığımız yola algoritma yada yönerge denir. Algoritma yardımıyla bir işi adım adım gerçekleştirebiliriz.
Aslında algoritmalar yaşamımızın bir parçasıdır. Pek çok işimizi farkında olalım ya da olmayalım algoritma yardımıyla yaparız. Bu işlerin tümünde, algoritmalardaki gibi belirli bir sıra bulunur. Bilgisayarlar da algoritmalarla çalışır.
4. PROBLEM ÇÖZMEK BENİM İŞİM!
Problem çözümleri - Farklı algoritmalar
Bir problemi çözmek ya da belirli bir amaca ulaşmak, bir işi gerçekleştirmek için tasarladığımız yola algoritma yada yönerge dendiğini öğrenmiştik.
Hayatımızda var olan problemlere çözümler getirmek için algoritmaları sıklıkla ve farkında olmadan kullanıyoruz.
Örneğin:
Çay demlemek - çay demlerken hangi adımları gerçekleştirmek gerekir?
Yemek pişirmek, yemek yaparken hangi adımları gerçekleştirmek gerekir?
Okula gitmek için uyandıktan sonra hangi adımları gerçekleştirmek gerekir?
Ödev yapma kararı aldınız fakat masa lambanızın çalışmadığını fark ettiniz hangi adımları gerçekleştirmek gerekir?
Bu ve bunlara benzer örnekleri çoğaltabiliriz. Algoritmalarla yani problem çözme adımlarıyla bu problemlerin üstesinden gelebiliriz.
Algoritma kullanarak;
• Problemleri daha hızlı ve sistematik olarak çözeriz.
• Problem çözme sürecini takip ederiz ve nerede hata yapıldığını görebiliriz.
• Tüm olasılıkları gözden geçirebiliriz.
• Hatalı işlem yapma olasılığımızı azaltırız.
• Olası hatalarımızı düzeltebiliriz.
• Çözüme ulaşmak için farklı yolları deneyebiliriz.
• Problemin çözümü için harcayacağımız süreyi kısaltırız.
5 - FARKLI YOLLARDAN AYNI ÇÖZÜME
Farklı algoritmaları inceleyerek en hızlı ve doğru çözümler
Algoritmaların yani problemlerin çözüm aşamalarını öğrenmiştik. Bugün ise en doğru algoritmaları seçmeyi öğreneceğiz.
Algoritmaları kullanarak problemleri çözmek daha da kolaylaşır. Fakat her algoritma doğru sonucu vermez. Ayrıca bazı algoritmalar çözüm için uzun süreler gerektirir. Bu nedenle algoritmaların bir problemi çözüme kavuşturmasının yanında pratik ve kolay olması gerekir.
Karşılaşılan durumlar veya problemler farklı yollarla çözüme kavuşturulabilir. Önemli olan doğru ve en kolay yolu seçmektir.
6. AYIKLA PİRİNCİN TAŞINI
Hatalı bir algoritmayı doğru çalışacak biçimde düzenleme
Geçmiş haftalarda algoritma kavramı ve örnek algoritmaları görmüştük. Günlük yaşamımızda yaptığımız işler gibi doğa olaylarının da kendi döngüleri ve algoritmaları vardır. Biraz düşündüğümüzde, bu döngülerin tamamlanabilmesi için de belli işlem adımlarının gerçekleşmesi gerektiğini fark edebiliriz.
Eksik ve hatalı algoritmaların bizi doğru sonuçlara götürmeyeceğini görelim.
Günlük hayatta karşımıza çıkabilecek durumları aşağıdaki örnek senaryolarda inceleyelim. Bu senaryolarda uygulanacak algoritmaların yanlış örneklerini de inceleyelim.
Doğrusunu aşağıdan inceleyebilirsiniz.
7. BENZER SORUN BENZER ÇÖZÜM
Bir problemin çözümünü, benzer problemlere uygulama
Geçen haftalarda hatalı bir algoritmayı doğru çalışacak biçimde düzenleme işlemlerini öğrenmiştik. Bu hafta ise benzer problemlere benzer çözüm yollarını uygulamayı göreceğiz.
Günlük yaşantımızda çeşitli problemlerle karşılaşırız. Bu problemlerin bazılarını yakından incelediğimizde aslında çözüm yollarının çok da zor olmadığını görürüz. Dahası bu basit problemler için bulduğumuz çözümleri benzer özellikler taşıyan ve daha karmaşık gözüken problemler için de kullanabiliriz.
Şimdi aşağıdaki örnek problem senaryosunu ve önerilen çözümleri inceleyelim.
Problemi ve problemi oluşturan nedenleri öğrendikten sonra önerileri yazalım.
Burada ulaşılan çözümlerin güncel ve daha geniş ölçekli bir probleme çözüm olarak önerilmesini deneyelim.
Örneğin trafik sıkışıklığı
Kantin yoğunluğunu çözen önerilerin trafik sıkışıklığına uygulanmasını düşünebilirsiniz. Kantindeki yoğunluk ile trafikteki yoğunluğun benzer nedenlerden kaynaklandığını çözüm yollarının da benzer olabileceği sonucuna varabiliriz.
Demek ki benzer problemler için benzer çözüm yolları işe yarayabilir. Buna genelleme denir.
Genelleme: Bir probleme ait çözümü benzer özelliklere sahip farklı problemlerin çözümünde kullanılabilecek ortak bir yöntem bulmak.
Örneğin aşağıdaki resimde matematikte de benzer problemlere benzer çözümlerin işe yarayabildiğini inceleyelim.
problem ve 2. problemin çözümü aynıdır, bu nedenle bir çözüm iki problemi birden çözebiliyor.
Az önce görsel şekilde genelleme yaptık. Aynı genellemelerin sayı dizisi oluştururken de yapılabiliriz.
Aşağıdaki kalıp cümlemizi inceleyelim.
“ Önceki sayının ………… katının ………… fazlası veya eksiği.”
Bu gördüğünüz cümle bir sayı örüntüsü oluşturmak üzere hazırlanmış bir kural cümlesidir. Bu kural cümlesini kullanarak çeşitli sayılar elde edeceğiz. Ama sayıları oluşturmadan önce başlangıç sayısına ve kuralına karar vermeliyim.
Başlangıç sayım 2 ve kuralımda aşağıdaki gibi olsun.
“ Önceki sayının 3 katının 2 eksiği.” olsun.
O halde sayı kuralımın ilk 5 sayısı aşağıdaki gibi olacaktır.
1.sayı 2.sayı 3.sayı 4.sayı 5. sayı
O halde yukarıdaki sayı örüntüsünde bir kural diğer sayıların hepsine uygulanabilir. Bilgisayarda kodlama yaparken oluşturacağımız bu kurallar aslında kodlamanın temelini oluşturuyor.
Comments