Algoritma, Yazılım ve Matematik İlişkisi

Algoritma, Yazılım ve Matematik İlişkisi

Bu yazımızda algoritma yazılım ve matematik arasındaki ilişkiyi inceleyerek matematik bilmeden algoritma yazılıp yazılamayacağından ayrıca matematikte iyi olamayan birinin yazılım konusunda başarılı olup olunamacayacağından bahsedilecektir. Bunun için öncelikle algoritma kavramı açıklanmıştır.

Algoritma Nedir?

Algoritma kelimesinin kökeni 900 yıl öncesinde yaşayan Persli bir matematikçi olan Muhammed İbni Musa el Harezmi'ye dayanır. Harezmi’nin geliştirdiği bu sistemi telaffuz edemeyen Batılılar, onun bu çalışmalarına Latince  algorismus  yani bugünkü adı ile algoritma dediler. Onun çok ses getiren Kitab-Ül Muhtasar Fi Hesab El-Cebr Ve’l Mukabele” isimli çalışması Batı dünyasına Liber Algebre et Almochabolae Mahmed Moysi Algaurizmi” olarak çevrildi ve bu sayede batı, cebir ile tanışma fırsatı buldu. 
 
“Cep telefonunuzu her elinize aldığınızda, arkasında Müslüman Özbek bir adamın olduğunu hatırlayın.” –Andrew Marr
 
akis-diyagrami
 
Algoritma; matematikte ve programlamada kullanılan, bir problemin çözümünde izlenecek olan yoldur. Algoritma, en basit ifadeyle, bir problemi çözmek için takip edilecek sonlu sayıda adımdan oluşan
bir çözüm yoludur. Diğer bir ifadeyle algoritma, bir problemin mantıksal çözümünün adım adım nasıl gerçekleştirileceğinin sözlü ifadesidir.Matematikte, algoritma bir prosedürdür, matematiksel bir hesaplamayı çözmek için kullanılabilecek bir dizi adımın açıklamasıdır. Algoritmalar, bilimin birçok dalında kullanılır. Matematiksel algoritmaya verilebilecek en yaygın örnek bir sayının bölünmesinde kullanılan adım adım işlemlerdir.
 
"53'ün 4'e bölünmesi için çözme süreci aşağıdaki algoritma ile açıklanabilir:
 
5'in içerisinde kaç tane 4 vardır?
 
Cevap: 1
Kalan: 1
 
1'in yanınına 3'ü indiriz ve kalan 13 olur. 1'in içerisinde 4 yok. 13'ün içerisinde kaç tane 4 vardır?
 
Cevap: 3
Kalan: 1
 
Sonuç olarak 1 ile 3 ün birleşimden cevap 13 olur.
 
bolme
 
Yukarıda açıklanan adım adım işlemlere bölüm algoritması denir.
 
Programlama açısında aşağıdaki gibi bir problemin çözümü için oluşturalacak sonlu işlemler dizisi programlama algoritması örneği olarak verilebilir.
 
Örnek: BiletKart uygulaması için metroda uygulanan ücret tarifesi aşağıdaki gibidir. Buna göre, uygulanan ücret politikasına göre metro istasyonunun 1 aylık toplama gelirini ve hangi günde en çok kazanç sağlandığını hesaplayan algoritmayı oluşturunuz. 
 
• Normal tarife: 3 TL
• Öğrenci ve 30 (dahil) yaşından küçük olanlar: 2.5 TL
• Öğrenci ve 30 yaşından büyük olanlar: 2.75 TL
• 60 (dahil) yaşından büyük olanlar: Ücretsiz
TOP=0
FOR GUN=1 to 30 DO
GUNTOP=0
10:Print("Yolcunun tarifesini öğren. 1=Normal, 2=Öğrenci ve 30(dahil) yaşından küçük,3=Öğrenci ve 30(dahil) yaşından büyük, 4=60 (dahil) yaşından büyük")
Read D
If D="1" then
GUNTOP=GUNTOP+3
TOP=TOP+3
else
If D="2" then
GUNTOP=GUNTOP+2.5
TOP=TOP+2.5
else
If D="3" then
GUNTOP=GUNTOP+2.75
TOP=TOP+2.75
else
If D="4" then
GUNTOP=GUNTOP+0
TOP=TOP+0
end if

Print("Başka yolcu var mı? Varsa "E" yoksa "H")")
Read C
 
If C="E" then
GOTO 10
end if
 
If GUN=1 then
ENK=GUNTOP
HANGI=GUN
end if 
If GUN<>1 and ENK< GUNTOP then
ENK=GUNTOP
HANGI=GUN
end if

REPEAT
Print ("Bir aylık toplam gelir=", TOP)
Print ("En çok gelirin sağlandığı gün ", HANGI, " nolu gündür")
END

Yazılım Nedir?

Elektronik cihazlara atanmış olan bir görevin yerine getirilebilmesi için bilgisayar dilinde geliştirilen komutlara yazılım adı verilir. 2. Dünya Savaşı sıralarında İngiliz Bir matematikçi olan Alan Turing modern bilgisayar teknolojilerinin temelini atmıştır.  Alan Turing modern bilgisayar ve bilişim bilimlerinin hem kuramsal hem de pratik düzeyde en büyük öncülerinden birisidir. Manchester Üniversitesi'nde çalıştığı dönemde Turing makinesi denilen algoritma tanımıyla modern bilgisayarların kavramsal temelini ortaya atmıştır. O dönemden sonra bilgisayara belirli işlevleri yerine getirebilmesi için komutların oluşturulması ve işletim sistemlerinin ortaya çıkması yazılım dünyasını meydana getirmiştir. 

Yazılım kullanılarak akıllı telefon, televizyon, tablet, bilgisayar, sanayide kullanılan makine ve ekipmanlar çalışır. Bunlara ek olarak otomotiv, eğitim, bilişim, sağlık, eğlence, pazarlama, inşaat, uzay sanayisi ve reklamcılık gibi pek çok sektörde de yazılım kullanılmaktadır. Yazılım hayatın her anında varlık gösteren bir teknolojidir.

Matematikte İyi Olmayan Biri Yazılım Konusunda Başarılı Olabilir mi? 

Yukarıda verilen algoritma örneğini incelediğimizde matematikle ilgili algılarımızda oluşan türev, integrel, trigonometri ve logaritma gibi kavramlara ihtiyaç duymadığımız aşikardır. Yani öğrendiğimiz matematik algoritma yazarken en fazla mod alma aşamasında kullanılmaktadır.
 
Peki sanki matematiğiniz iyi olmazsa iyi bir yazılımcı olmayacağınız algısı nereden oluşmaktadır. Bu durumu şu şekilde açıklayabiliriz. Matematik Analiz ve Analitik Geometri gibi kavramların dışında aynı zamanda analitik düşünme becerisini de ifade etmektedir. Örneğin yukarıdaki algoritmanın oluşturulmasında öncelikle problemin anlaşılması, giridi ve çıktıların belirlenmesi, çözüm yollarının geliştirilmesi, algoritmanın kodlanması ve daha sonra kodun test edilmesi yani doğruluğunun kontrol edilmesi işlemleri farkında olmadan gerçekleştirilmiştir. Yani burada aslında bir analitik düşünme gerçekleştirilmiştir. Eğer matematiği analitik düşünme becerisi olarak ele alırsak evet iyi bir yazılımcı olabilmek için iyi bir matematikçi olmak gerekir. Fakat ÖSYM'nin türev sorularını iyi çözebiliyor olmanız yada olmamanız sizin iyi bir matematikçi olduğunuz yada olmadığınız anlamına gelmez. Günlük hayatta bir problemle karşılaştığınızda bu problemelerle baş edebiliyorsanız bence iyi bir yazılımcı da olursunuz.
 
O yüzden ben matematik bilmiyorum benden yazılımcı olmaz diye düşünmeyin. Zaten bilgisayar programcığında çözülen problemler genelde bir birlerinin türevleri gibi. O yüzden defalarca bilgisayar dünyasındaki algoritmik problemlerle uğraştığınızda zaman içerisinde analitik düşünme becerinizle birlikte algoritma yazma konusundaki becerinizde gelişecektir. İyi bir yazılımcı olabilmeniz için çok çalışmanız ve sürekli bir proje veya program ile uğraşmanız çok önemli. Eğer bu yolda vazgeçmez ve azimle ilerlerseniz iyi bir yazılımcı olmamanız için hiç bir neden yoktur.

Yorumlar0

Henüz Yorum Yapılmamış.Yorumlarınızı bekliyoruz

Yorumlarınızı Bekliyoruz


Yorum Yazın

Yorum Yapın