http://www.google.com/analytics/
Bugun...
Reklam
Algoritmik Düşünce ve Kodlamanın Önemi


Yrd.Doç.Dr. Utku KÖSE Bilimsel Kesit
utkukoşe@gmail.com
 
 

 

Algoritmik Düşünce ve Kodlamanın Önemi

 

Bundan önceki yazımda Yapay Zekâ’ya genel bir bakış atıp günümüz ve geleceğe dair çeşitli yorumlarda bulunmuştum.

Bu yazımda ise Yapay Zekâ içeren bir geleceğe hazır olmanın ve daha da önemlisi, böyle bir gelecekte meslek sahibi ve üretken bir birey olmanın başlıca gereklerine değinmek istiyorum. Bilgisayar teknolojisi ve buna bağlı olarak yazılım ve donanım tabanlı araştırma alanları konusunda bilgi sahibi olmanın önemli olduğu aşikâr.

Ancak öğrencilerimde ve yine gerek bilgisayar, gerekse Yapay Zekâ alanında çalışmak isteyenlerde sıklıkla gözlemlediğim eksiklerden birisi de algoritmik düşünce…

Öyle ki bu düşünce yaklaşımı, teknolojinin izinde bireysel anlamda fark yaratan ya da maalesef teknolojik ilerlemenin gerisinde kalmanıza yol açabilecek önemli yeterliklerden birisi olarak değerlendirilebilir. Algoritmik düşünce kabaca algoritma tasarlayabilme yeteneğini karşılayan bir kavram.

Peki, algoritma kavramı ne anlama geliyor? Algoritma kavramını da kısaca belirli bir problemi çözüme kavuşturabilecek çözüm adımları bütünü olarak tanımlayabiliriz.

Algoritmanın daha çok bilgisayar programlama ile ilişkili olduğu düşünülebilir ama biz aslında farkında olmadan hayatı çok sayıda algoritmalar bütünü içerisinde yaşıyoruz.

En basitinden, sabahları uyandığımızda hazırlanmamız, kahvaltımızı yapıp işe / okula gitmemiz, öğle yemeği, eve dönüş, akşam yemeği ve gece uyumamız, detayları farklılıklar gösterse de her gün tekrar eden genel faaliyetlerimiz olmakla birlikte, aslında günümüzün bir tür algoritmasını oluşturmaktadır.

Ancak problem çözme kıstasına daha iyi uymamız gerekirse, bir yemeğin tarif sırasına uyarak yapılması ya da günlük hayatta bazı fiziksel problemleri, sırası bozulmayacak işlem adımlarıyla çözümlememiz de (Örneğin, patlayan bir otomobil lastiğini değiştirmek) algoritmaya daha sağlam örnekler olarak verilebilir.

Yani kısaca rutin olarak gerçekleştirdiğimiz ve sonunda problemleri çözdüğümüz ya da belirli amaçlara ulaşmamızı sağlayan faaliyetler, aslında algoritmadan başkası değildir.

Algoritmik düşünceyi, bilgisayar adı verdiğimiz makinelerle ilişkilendirdiğimizde, karşımıza doğrudan bilgisayar programlama çıkmaktadır.

Bir bilgisayarı istediğimiz işleri yerine getirmesini istediğimizde, yazılım adı verilen ve algoritmalar yardımıyla geliştirilen unsurları kullanmamız gerekir. Teknoloji günümüzde öyle bir boyuta ulaştı ki, akıllı cep telefonlarımız da bu tür yazılımları taşımakta ve yazılımlar telefon ortamında birçok şeyi gerçekleştirmemize imkân tanımaktadır. Burada, bir bilgisayarı programlamak ve bu bağlamda yazılım geliştirmek için bilgisayar programlama dillerini bilmemiz gerekmektedir.

Aslında bu diller sadece özel yazılımlar geliştirilmesini sağlayan ve genellikle İngilizce ifadelerden oluşan kodlar bütünüdür. Tek yapmamız gereken, bu kodları, çözülmesini istediğimiz problem için hangi sırada yazacağımızı bilmek, yani algoritmayı tasarlamaktır.

Algoritma, bu noktada sadece bilgisayarın izleyeceği çözüm adımlarının sıralı birer ifadesidir.

Programlama dili ise bazen yazılımı geliştirdiğimiz ortama göre (cep telefonu, tablet, PC-laptop, hatta bunların harici bir makine / unsur) ya da problem türüne göre farklılıklar içerebilen, bilgisayarı yönlendirebilmemizi sağlayan bir araçtır.

Her insan bir yemeğin nasıl yapıldığını onu bildikten sonra anlatabilir (algoritma) ama bunu bir İngiliz’e, Alman’a ya da İtalyan’a anlatmak için onların dilini bilmemiz (programlama dili) gerekebilir.

Yani elbette programlama dillerini bilmek önemlidir ama esas problemi çözebilmemizi sağlayan algoritmik düşüncedir.

Anlaşılacağı üzere algoritmik düşünce -bu açıdan bakıldığında- bilgisayar programlamanın temel gerekliliğidir. Günümüz bilgisayar odaklı teknolojileri ve malum, Yapay Zekâ da bilgisayar tabanlı sistemlerle geliştirilebilecek teknolojiler olduğundan dolayı, temellerinde algoritmik düşünceyi de gerekli kılmaktadırlar.

Bilgisayar teknolojisinin hızlı ilerlemesi, yazılım teknolojilerinin de aynı ivmeyle ilerlemesini, yazılım ihtiyaçların çok hızlı karşılanmasını ve dolayısıyla birçok farklı bilgisayar programlama dilinin tasarlanmasını da sağlamıştır. Bu nedenle, programlama dillerini öğretmeyi hedef alan kurslar, eğitimsel süreçler… vs. oldukça popüler durumdadır. Ama bütün bunların temelini oluşturan algoritmik düşünce eğitimi sıklıkla ıskalanabilmekte, bilgisayar programlama belli bir noktadan sonra ezbere ve iyi / kötü tecrübelere dayanarak öğrenilmektedir.

Algoritmik düşüncedeki boşluklar, ne kadar iyi bir yazılım geliştiricisi olursanız olun, zaman zaman nüksedebilmektedir. Dolayısıyla şahsi düşüncem, öncelikli olarak algoritmik düşüncenin kişisel anlamda iyi inşa edilmesidir. Peki, bunun için neler yapılabilir, kısaca önerilerde bulunayım:

1. Doğrudan herhangi bir programlama diline odaklanmadan önce, yeterli düzeyde algoritma eğitimi almak (Bunun için çok sayıda kitaplar, çevrimiçi dersler, konu materyalleri mevcut).

2. Bol bol zekâ oyunu çözmek. İçerisinde özellikle rutin adımlarla genel çözüme ulaşan problemler etkili olacaktır.

3. Günlük hayattaki problem çözümlerinin algoritmik olarak nasıl yapıldığı konusunda düşünmek ve bunları sorgulamak.

4. Bilgisayar yazılımlarını kullanırken bu yazılımların istediklerimizi nasıl yaptığını algoritmik kapsamda düşünmek.

 

Öneriler çeşitlendirilebilir ama temel odak noktası düşünmek, değerlendirmek, sorgulamak… Yapay Zekâ’ya gelecek olursak; Yapay Zekâ teknikleri zaten belli bir düzeyde mantıksal ve matematiksel algoritmik adımları içeren çözüm yapıları olarak karşımıza çıkmakta… Hatta Yapay Zekâ’yı bir problem için nasıl kullanmalı, hangi teknik kullanılmalı, teknik nasıl probleme adapte edilmesi gibi sorular da algoritmik düşünceyi gerektiriyor.

Bu nedenle algoritmik düşünce düzeyimiz, Yapay Zekâ’yı en iyi şekilde anlamak adına belirli bir seviyeye ulaşmış olmalı. İşte bu nedenle algoritmik düşünce, günümüz bireylerinin sahip olması gereken önemli becerilerden birisi haline geliyor. Durumun ciddiyetini, geleceğin mesleklerinin bu yeterliliği gerektiren, teknolojik meslekler olacağını ifade ederek pekiştirebiliriz.

Algoritmanın programlama dilleri düzeyinde hayat bulmasını kodlama olarak adlandırıyorum. Aslında algoritma ve kodlama birbirinden ayrılmayan iki önemli unsur.

Bu bağlamda algoritmik düşünceye yönelik eğitsel süreçlerin yanında kodlama eğitimleri de pekâlâ son derece önemli. Uluslararası çapta değerlendirdiğimizde, kodlama eğitiminin uzunca bir süredir ön planda olduğunu söyleyebiliriz.

Örneğin, Hour of Code başta olmak üzere, adını duyduğumuz / duymadığımız birçok eğitim odaklı girişim, 7’den 70’e herkes tarafından yoğun talep görmekte.

Bu noktada kodlama (coding) faaliyetleri, algoritmik düşünceyi geliştiren basit bilgisayar uygulamalarından, bilgisayar gerektirmeyen fiziksel faaliyetlere ve sonrasında elbette programlama dili tabanlı faaliyetlere kadar geniş yelpazeli süreçleri içeriyor.

Ülkemizde de bu bağlamda çeşitli girişimler mevcut olmakla birlikte, son yıllarda özellikle ‘Hackathon’ adı verilen ve algoritmik düşünceyle farklı türde problemler çözümlemeyi içeren yarışmalar oldukça popüler bir hale geldi. Hatta bu hafta sonu ben de bu tür bir faaliyette yer aldım ve ortamdaki enerjiyi oldukça beğendim. Önceki paragraflar altında ifade ettiğim önerilerle birlikte ilgili herkesin bu tür etkinliklere katılmasının da faydalı olacağı kanaatindeyim.



Bu yazı 2850 defa okunmuştur.

YORUMLAR

Henüz Yorum Eklenmemiştir.Bu Haber'e ilk yorum yapan siz olun.

YORUM YAZ



FACEBOOK YORUM
Yorum

YAZARIN DİĞER YAZILARI

GÜNDEMDEN BAŞLIKLAR
ÇOK OKUNAN HABERLER
HABER ARA
SON YORUMLANAN HABERLER
YUKARI