Yaşamınızın Merkezine Algoritmaları Koyun!
Yemek tarifi bir algoritma mıdır?
“Kodlama bilmiyorum, yazılımcı da olmayacağım. Neden algoritmik düşünme benim için önemli olsun ki?” diyenlerden misiniz? Eğer öyleyseniz yazımıza mutlaka göz atın. Öyle değilseniz de, hem etrafınızda böyle düşünenlere aktarabileceğiniz bir kazanım elde edebilir hem de algoritmaya kendi bakış açınızı bizim yazımızla karşılaştırarak değerlendirebilirsiniz.
Algoritmik düşünme, programlamanın temelinde yer alan bir düşünme metodudur ve algoritmalar hayatımızın birçok alanında vardır. Erhan Hocamız der ya, “Girişimci olmayacaksanız bile, girişimci gibi düşünmeyi öğrenmelisiniz.” Benzer şekilde; bir yazılımcı olmayacaksak bile, algoritmik düşünmeyi öğrenmeliyiz. Bu yazımızda Algoritmik Düşünmeye Giriş dersimizden elde ettiğimiz kazanımları gözden geçirerek farklı bakış açıları da elde etmeye çalışacağız.
Peki Nedir Bu Algoritma?
Algoritma, bir problem çözmek, belli bir amaca ulaşmak için sistemik yaklaşımlarla tasarlanan yol, adım adım takip ettiğimiz basamaklardır. Yani:
- Neyi yapacağına karar ver
- Nasıl yapacağına karar ver
- Süreçleri belirle
- Aşamaları belirle
- Harekete geç!
Teknik olarak, algoritmaların belirli girdileri ve çıktıları olmalıdır. Çözüme ulaşmak ve algoritmanın doğru çalışabilmesi için belirlediğimiz girdiler kesin ve net olmalıdır, çünkü algoritmalarda belirsizliğe yer yoktur. Yani günlük hayatta bir arkadaşımıza bir şey anlatır gibi değil; bir bilmeyene tüm ayrıntıları anlatır gibi davranmalıyız.
Algoritmik Düşünme
Algoritmik düşünmede probleme yaklaşmak, anlamak ve çözmek için akıl yürütürüz, ayrıntılı yollar kurgularız ve sistematik işlemlerle o yollarda ilerleriz. Özetle, problemi tanımlayarak analiz ederiz, değerlendiririz ve sonuca ulaşırız. Önemli olan bir nokta var ki, bu işlemler farklı şartlarda da uygulanabilir olmalı. Değişik koşulların bilincinde olmalıyız. Algoritmik düşünme yetkinliği için, sistemlerimizi farklı koşullara göre değiştirmemiz ve/veya yeniden kurgulayabilmemiz gerekir.
Bir algoritma içerisinde varsa rengin tonu, ısının derecesi belirtilmeli; süreler kesin olmalı veya işlemlerin nasıl hesaplanacağı belirtilmelidir. Yapılması istenilen işi, çözülmesi gereken problemi önce anlayabileceğimiz şekilde yazabiliriz. Algoritmaları e-ticaret sitelerinde, serverlarda görebiliriz ve kendi projelerimizde, günlük hayattaki işlerimizde kullanabiliriz. Hatta yemek tarifleri de birer algoritmadır.
Dersimizde de bahsettiğimiz gibi, yemek tarifleri insan algoritmasına örnektir.Bu demektir ki; insanlar, bilgisayarlar gibi kesin komutlara gerek olmadan yorum yapabiliyor. Erhan Hocamız, yol tarifi örneğini de vermişti; yol tarif ederken belirttiğimiz mesafeler genelde net olmaz ama yine de kendi yorumlarımızı katarak sonuca ulaşabiliriz.
Günlük Hayatımızda Algoritmalar
Önümüzdeki 30 gün içerisinde iki okul ödevimiz, bir dönem projemiz, bir de sınavımız var ve onun için hazırlık yapmamız gerekiyor. Yapmamız gereken bu dört görev için harcayacağımız zamanı ve son teslim tarihlerini biliyoruz. Uygun bir sıralama yaparak işlerimizin ortalama zamanını kısaltabiliriz. Bunun için iş sürelerini kısadan uzuna sıralayıp en kısasından tamamlamaya başlayabiliriz. Böylelikle belirli bir zaman diliminde daha fazla iş tamamlamış oluruz. Ayrıca, çok sayıda işi bitirdiğimiz için daha iyi hissederiz ve motivasyonumuz artar.
Ancak burada teslim tarihlerimizi dikkate almazsak, bazı görevler için geç kalabiliriz. Bu kez sıralamayı son teslim tarihi en yakından en uzağa olacak şekilde yapabiliriz. Fakat yine yetiştiremediğimiz işlerimiz olabilir. Bu kez de yetiştiremediğimiz proje sayısını en aza indirecek bir sıralama yapmamız gerekir. Dolayısıyla bu tarz durumlarla başa çıkabilmek için algoritmik ve sistematik düşünceye ihtiyaç duyuyoruz.
Bazı algoritmalar karmaşık gibi görünse de hayatımızı kolaylaştıracak kadar basit olanları da var. İşlerimizi hızlandırmak, belirli bir düzene koymak için kendimize çeşitli algoritmalar tasarlayabiliriz.
Algoritmayı tanımlayan eğlenceli bir video önerimiz için şuraya tıklayabilirsiniz.
Yazımızı sizlere bir algoritma sorusu sorarak sonlandırmak istedik.
Bir markete girip ihtiyacınız olan birkaç şey aldınız. Kasada nakit ödeme yaptınız ve para üstü olarak size 65 kuruş verilmesi gerekiyor. Kasiyer, para üstünü nasıl en az bozuk para ile verebilir?
Sizler de algoritmik düşünmeyi gerektiren soru örneklerini böyle çoğaltabilirsiniz.
Sevgiler,
Yetkin Gençler