Algoritma Nedir? Neden Önemlidir ?

Bu yazıda konumuz Algoritma. Yazılıma merakınız var ise biraz araştırma yaptıysanız “Kod yazmak önemli değil, önemli olan algoritma.” kelimesini veya benzerlerlerini sıkça duymuşunuzdur. _algoritma.jpg

Nedir bu Algoritma ?

Algoritma sözcüğü, Özbekistan’ın Harezm, bugünkü Türkmenistan’ın Hive kentinde doğmuş olan Ebu Abdullah Muhammed İbn Musa el Harezmi‘den gelir

Algoritma, bir sorunu yada bir problemi çözmek veya belirli bir amaca ulaşmak için gerekli olan sıralı mantıksal adımlardır. Bir sorunun çözümü için izlenecek yolun tanımıdır. Günlük yaşantımızda sürekli aldığımız kararlar, her söylediğimiz söz, yaptığımız olaylar beynimizin karar mekanizmasıyla sonuçlanan adım adım işlemesi Algoritmadır.

Nerede Kullanılır ?

Algoritma terimini genellikle yazılım dünyasında duyulmaktadır. Eğer ki yazılım dünyasına adım atmış birisi iseniz algoritma artık dünyanız olmaya başlamıştır. Nedeni de düşünen varlıklar olduğumuzdan, makinalarında bizler gibi düşünmesini sağlamakdır.

Algoritmanın hazırlanması, hedeflenen programın sorunsuz ve isteğe göre çalışmasını, programlama sırasında oluşabilecek hataları, sorunları görmenizi, sorunu kolayca düzeltmenizi sağlar.

Mizahi bir algoritma örneği:

_alg-komik.jpg

“Kodlama Dersi Zorunlu Olsun.” mu ?

Algoritma zayıf olduğumuz konulardan biridir aslında, çoğumuz hemen kod yazmaya giriştiği, öncesinde planlama yapmadığından dolayı kodlar bizzat kodlayana bağımlı kalıyor, kodlayan dışında kimse anlamıyor çözemiyor, bu da yazılımın el değiştirmesi, ileride geliştirilmesi ve hataların çözümü gibi işlemleri zorlaştırıyor.
Gündeme arada gelen “Kodlama dersi zorunlu olsun.” olayına sıcak bakıyorum ama herkese kodlama öğreterek bilişim çağı yakalanmaz. Eğer üretken insan yetiştirmeyi amaçlamışsanız algoritmayla düşünen, veriyi kullanmayı bilen bireyler yetiştirilmelidir. Kodlama dersi zorunlu olması Yerine Algoritmayla Düşünme dersi zorunlu olmasının daha mantıklı olacağını düşünüyorum.

Algoritma Nasıl Hazırlanır ?

İlk önce dikkat edilmesi gerekenler

Her adım son derece belirleyici olmalıdır.

Hiç bir şey şansa bağlı olmamalıdır.

Belirli bir sayıda adım sonunda algoritma sonlanmalıdır.

Algoritmalar karşılaşılabilecek tüm ihtimalleri ele alabilecek kadar genel olmalıdır.

Şimdi karşılaştığımız bir sorunu çözmek için algoritma yazalım ve akış diyagramı ile gösterelim.

Gece gece çalışma isteği geldi kahveni veya çayını hazırladın bir hevesle masana oturdun ama masa lambası çalışmıyor. Şimdi durumu çözmek için algoritma belirleyelim.

Adım 1: Başla

Adım 2: Lambanın Fişini Kontrol et. Takılı ise “Adım 4” e geç.

Adım 3: Lambanın fişini tak.

Adım 4: Ampulu kontrol et. Sağlamsa “Adım 7” ye geç.

Adım 5: Ampulu değiştir.

Adım 6: Çalıştıysa “Adım 8” e geç.

Adım 7: Yeni Masa Lambası al.

Adım 8: Sorun Çözüldü.

Evet Algoritmamızı yazdık şimdide bunu Akış Diyagramı ile gösterelim:

_alg-lamba.png

Kendimi Nasıl geliştiririm ?

Kendinizi geliştirmek istiyorsanız bir defter alın, bu deftere günlük hayatta yaptıklarınızın algoritmalarını yazın, kahve yapma algoritması, çay demleme algoritması, yumurta pişirme algoritması gibi basitlerden başlayıp giderek karmaşıklaştırın not hesaplama algoritmaları, denklem çözme algoritmaları… gibi zaman zaman internetteki örnekleri inceleyin. Herşeyi algoritmayla düşünmeye çalışın.

Algoritma yeteneğini geliştirmek için bazı oyunlar var gerçekten faydası oluyor, benim en çok sevdiğim “Light Bot” oyunu linki aşağıda mevcut. Oyun demo minik bir swf versiyonu sitede var eğer gerçek anlamda fayda görmek istiyorsanız full sürümünü satın almanızı öneririm fazla bir ücreti yok 3$ kadar, aldığınıza kesinlikle değeceğini düşünüyorum.

Neyse yeter bu kadar. Kendinize iyi bakın bol bol algoritma yazın…

LightBot Algoritma geliştirme oyununu oynamak için : LightBot

5.12.2016 Tarihinde Yazıldı..