#

TEKNOLOJİ KAFASI

Dünya Ekonomik Forum’un 20 Ekim 2020 tarihinde yayınlandığı “Geleceğin Meslekleri” raporunda (http://www3.weforum.org/docs/WEF_Future_of_Jobs_2020.pdf) 2025 yılında en çok ihtiyaç duyulan becerilerini; problem çözme, öz yönetim, takım çalışması ve teknoloji kullanımı ve gelişimi olarak 4 ana başlık altında aşağıdaki şekilde belirlemiştir:

  1. Analitik Düşünme ve İnovasyon
  2. Aktif Öğrenme ve Öğrenme Stratejileri
  3. Kompleks Problem Çözme
  4. Kritik Düşünme ve Analiz
  5. Yaratıcı Düşünme, Özgünlük ve Girişkenlik
  6. Liderlik ve Sosyal Etki
  7. Teknoloji Kullanımı, Takip ve Kontrol
  8. Teknoloji Tasarımı ve Programlama
  9. Dayanıklılık, Stres Toleransı ve Esneklik
  10. Akıl Yürütme, Problem Çözme ve Kavrama Yeteneği

Dünya Ekonomik Forumu bu becerileri bizlere rapor halinde detaylı bir şekilde sunarken, toplumumuz da geri kalmaz ve  bize “gelecek teknolojide, herkes programlama öğrenmeli.” tarzında cümleler ile raporunu sunar. Sizce bu raporlar bize neyi gösteriyor? Hemen bir bilişim kursuna kayıt olup; yazılım, modelleme yoksa elektronik mi öğrenmeliyiz? Eğer böyle davranırsak yukarıda okuduğunuz 2. maddeye ters düşebiliriz. Peki, ne yapacağız? Tabi ki soruya cevap vermeden önce bazı konuları açıklığa kavuşturmamız gerekiyor.

Algoritmik Düşünme Nedir?

Algoritmik düşünme KESİNLİKLE programlama değildir. Algoritmik düşünme makine zekası ile bir yüzleşme olarak düşünebiliriz. Bu cümleyi 2 soru ile açalım;

İnsan bilgisayardan daha iyi ne yapabilir?
Bilgisayar insandan daha iyi ne yapabilir?

Tabi ki bu soruları havada bırakmak istemiyorum. Cevaplarınızı [email protected] adresine bir sonraki sayıya kadar göndermenizi bekliyorum. Aman dikkat! Cevaplarınızı göndermeden önce emin olunuz.

Aslında bu iki sorunun birleşimiyle oluşan tek bir soru var; “Ne hesaplanabiliriz?” bunu da düşünün ama cevaplarınız sizde saklı kalabilir ya da arkadaşlarınızla paylaşarak takım çalışması ile  yukarıda okuduğunuz 10. Madde de kendinizi geliştirebilirsiniz.

Aslında algoritmik düşünceyi hayatımızın her anında kullanılırız. Örnekler gelsin!

  • Sabah okula giderken alacağınız çantanıza, o gün ihtiyaç duyduğunuz şeyleri sırt çantasına koymanız; önceden getirme ve önbelleğe alma işlemidir.
  • Kardeşiniz eldivenlerini kaybettiğinde, adımlarının izini sürmesini önerirsiniz; geri izleme.
  • Hangi noktada kayak kiralamayı bırakıp kendinize bir çift alırsınız? ; bunlar çevrimiçi algoritmalardır.
  • Süpermarkette hangi sırada duruyorsunuz? ; bu, çok sunuculu sistemler için performans modellemesidir.
  • Elektrik kesintisi sırasında telefonunuz neden hala çalışıyor? ; bu, tasarımda başarısızlık ve fazlalıktan bağımsızdır.
  • Bilgisayarları ve insanları ayırmak için tamamen otomatikleştirilmiş genel turing test(ler) i veya CAPTCHA’lar insanların kimliklerini nasıl doğrulayabilir? ; bu, bilgi işlem ajanlarını engellemek için zorlu yapay zeka sorunlarını çözmenin zorluğundan yararlanıyor.

Algoritmik düşünceyi biraz terimlerle açıklamak istersek;

  • Soyutlama: Sorunu temsil eden bir model oluşturmak için ilgisiz olanı yok sayın.
  • Analiz: Büyük bir sorunu bileşenlerine ayırın.
  • Örüntü tanıma: Hangi parçaların ortak olduğunu ve neyin farklı kaldığını belirleyin.
  • Akış tasarımı: Sorunu çözen bir dizi tekrarlanabilir adımı formüle edin.

Bu terimlerin işleyişini öğrenmek ve kullanmak için sebebiniz sadece yazılımcı olmak olmamalı. Çünkü üst kısımda gördüğünüz üzere günlük hayatımızda oldukça bu terimleri uyguluyoruz. Tabi ki bazı zamanlar başarısız uygulamalar gerçekleştirip, günlük hayatımızda yaşadığımız sorunlar içinde çıkmazlara girebiliyoruz. İşte bu başarısızlıkları yaşamamak adına algoritmik düşünme becerilerini kazanmalıyız.

Bu becerileri hep bir arada öğretebilmek çok güzel olur değil mi? İşte bu güzellik için programlama öğrenmeliyiz. Yazılım yazarken geliştireceğimiz proje için algoritma geliştirirken algoritmik düşünme becerilerinin hepsini uygulamanız gerekmektedir. Örneğin, 13195 sayısının asal bölenleri 5, 7, 13 ve 29 dur. 17195 sayısının en büyük aslan bölenini bulan programı yazmanız gerektiğinde yukarıda belirttiğim algoritmik düşünme terimlerinin hepsini uygulamanız gerekir.

Basit bir tanımlamayla, algoritmik düşünme becerinizi geliştirmeniz için farklı konseptlerde problemlerle karşılaşmanız gerekmektedir. Problem denilince tabi ki ilk aklımıza yukarıda örnekte verdiğimiz gibi matematik gelir. Eğer bu tarz matematik problemlerini seviyorsanız sizleri Project Euler sitesine davet etmek isterim. Kolay zora göre sıralanan yüzlerce matematik problemi yer almaktadır.

Algoritmik düşünme becerisinin günlük hayatta sıklıkla kullandığımızı belirtmişken şimdi bu söylediğim matematik problemleri konusuna ters düştüğümü sanmayın J

Şimdi sizlere bir ödev vermek istiyorum.

Yolunuzu değiştirin!

Günlük hayatınızda eve, işe, bakkala veya sıklıkla gittiğiniz yerlere giderken kullandığınız yolları değiştirin. Belki konfor alanımızdan biraz uzaklaşıp çevremizdeki problemleri fark eder ve problemleri çözmeyi deneyerek algoritmik düşünme becerimizi geliştiririz.

Son bir soru; sizce hayatımızı programlıyor muyuz?

YEK

Takibe Al!

Yapay Zeka ve Bilgisayar Bilimi üzerine eğitim içerikleri

https://www.youtube.com/c/Eftalinan