Algoritma Tasarımı Nedir? | Laba işletme okulu
Blog

Arama

Algoritma Tasarımı Nedir?

“Bir yerden bir yere en kısa yoldan gitmeye çalışırken Hollandalı bilim adamı Edsger W. Dijkstra’nın matematiğe döktüğü fikri algoritma olarak biz de aklımızda uygularız.”

cover-624aabd62124b442068722-624ab231944bc860463747.png

2021 yılında Oxford Üniversitesi’nin kovid yayılımını simüle eden yapay zeka projesinin baş algoritma tasarımcısı Mehmet Canbulat şimdi Laba’da Excel’de Otomasyon ve Algoritma Tasarımı eğitimine hazırlanıyor.

THY’nin Veri Bilimcisi olan Mehmet Canbulat, 6 hafta 12 ders boyunca otomasyon ve algoritma tasarımı anlatacak. 10 Mayıs tarihinde başlayacak eğitim öncesi keyifli bir sohbet gerçekleştirdik.

#1. Excel'de otomasyon ne anlama geliyor?

Günlük hayatta uzun saatler beraber çalıştığımız Excel’in içerisinde aslında bir hazine saklı. Bu hazineyi ortaya çıkararak normalde tekrar eden işlerimizi daha hızlı ve doğru yapmaya Excel’de otomasyon denir. Her hafta hazırlanması gereken bir raporu süreçlere ayırarak doğru bir algoritma ile yazılıma aktarırsak hatasız ve hızlı bir şekilde raporu oluşturmuş oluruz. Böylelikle bir sonraki hafta raporu biz değil, bizim yerimize bilgisayar hazırlamış olur.


#2. VBA nedir?

VBA uzun olarak Visual Basic for Applications demektir. Visual Basic dilinin bir alt kırılımıdır. Office programlarında yapılan işleri daha hızlı yapabilmek için Office programlarının arka planına yerleştirilmiştir. Kullanıldığı zaman Excel’in ya da diğer Office programlarının esas gücünü ortaya çıkarır.

#3. Algoritma tasarımı ile neler yapılabilir?

Algoritma aslında bir bilgisayar terimi olarak görünse de özünde hepimizin günlük hayatta kullandığı ve uyguladığı bir kavramdır. Bir yerden bir yere en kısa yoldan gitmeye çalışırken Hollandalı bilim adamı Edsger W. Dijkstra’nın matematiğe döktüğü fikri algoritma olarak bizde aklımızda uygularız. Aslında algoritma mantığını uygulayarak işlerimizi otomatize etmek için süreç olarak yaptıklarımızı küçük süreçlere ayırarak kodlara aktarmamız gerekir. Burada önemli olan bunu doğru ve hatayı önleyecek şekilde yapmaktır.

#4. Recursive Programlama Nedir?

Recursive programlama kodun çalışırken kendi içinde tekrar kendini çağırmasıdır. Bu şekilde kendini çağırarak katman katman üst üste birikerek kod kendini çalıştırır. Biraz soyut bir kavram gibi görünse de günlük hayatta hepimiz kullanırız bu algoritmayı. 

Örnek olarak bilgisayarda masaüstünü düzenlerken dosyaları klasörler içine yerleştiririz. Bazen bir klasörün içinde birkaç tane alt klasör olabilir. Hatta bu alt klasörlerde kendi içlerinde alt klasörlere sahip olabilir. Biz bu klasörlerin içindeki bütün dosyaları bulmak için her bir klasör, onun alt klasörü ve o alt klasöründe alt klasörü için tek tek yazdığımız kodun kendini çağırmasını emrederiz. Aramalar bittikten sonra da açılan programlar katman katman kendini kapatır.


#5. Boolean mantığı ne işe yarar?

Boolean mantığı en basit mantıkla EVET ya da HAYIR anlamına gelir. Karar ağaçları oluştururken Boolean mantığını iyi kurmamız gerekir. Aslında basit gibi görünen zor bir konudur. Çünkü iç içe karar mekanizmaları tasarlarken bazen kararlar karışabilir ve bu da programın doğruluğunu etkileyecektir.

Örnek verecek olursak bir firmanın bayilerine dağıttığı teşvik planını göz önüne alalım

Firma aşağıdaki şekilde bir teşvik planı açıklıyor.

  • 100.000 TL’den azsa yüzde 1 teşvik
  • 100.000 ile 150.000 arasında ise yüzde 2 teşvik
  • 100.000 ile 150.000 arasında ve A sınıfı televizyon satışı 10’dan fazla ise yüzde 2,5
  • 150.000 ile 250.000 arası ise yüzde 3
  • 150.000 ile 250.000 arası ve A sınıfı satışları 10 ile 20 arası ise yüzde 3,5
  • 150.000 ile 250.000 arası ve A sınıfı satışları 20 ile 50 arası ise yüzde 4
  • 150.000 ile 250.000 arası ve A sınıfı satışları 50’den fazla ise yüzde 4,5
  • 250.000 TL’den fazla ise yüzde 5 teşvik alacaktır.

Bu firmada teşvik planlaması yapan departman aslında kolay gibi görünen bu planı eğer düzgün bir karar ağacı çıkarmadan yaparsa muhtemelen bazı bayiler için hatalı hesaplama yapacaktır.

#6. Array nedir, ne işe yarar?

Yüksek boyutlu veri işlemleri yani Excelde çok satırlı (100.000 satır) işlemlerde işlem hızını artırmak için kullandığımız yapılara Array, Türkçesiyle dizin denir. VBA ile birlikte birçok yazılım dilinde array objesi bulunmaktadır. VBA dili için arraylerin en büyük avantajı geçici hafıza yani RAM üzerinde çalışmasıdır. Bundan dolayı sayfa üzerinde yapılan işlemlere nazaran 250 ile 750 kata kadar daha hızlı işlemler yapmamıza olanak sağlar.

#7. İnternetten veri çekmek ne işe yarar?

İnternet siteleri aslında süslenmiş yazılardan oluşur ve biz bu bilgileri Excel’deki VBA altyapısını kullanarak alabiliriz. Veri bilimindeki bilgilerin yüzde 30’unun internet üzerindeki sitelerden toplandığı düşünülmektedir. Bundan dolayı internet sitelerinde doğru mantıkta veri almak ve bunu veri seti haline getirmek çok önemlidir. İnternetten veri alırken yapılacak en önemli adım sitenin ileride değişebileceğini hesaba katarak kod yazmaktır.

#8.Fonksiyon nedir ve ne işe yarar?

Ortaokuldan itibaren gördüğümüz bir konu olan fonksiyonlar yazılım bilimi ve VBA için hayatidir. En temelinde bir veya daha çok girdiden bir sonuç çıkarmaya yarayan bir kod bloğudur. En önemli avantajı ise aynı kodu her seferinde yazmak yerine bir seferde fonksiyon olarak tasarlayarak kodun okunabilirliğinin artırmasıdır. Buna en güzel örnek veri setinin son satırını bulmaktır. Sürekli değişen veri setinde her işlem sonrası son satırı bulma kodunu yazmak yerine bunu yapabilen son satır fonksiyonunu çağırmak hem kodu daha okunabilir ve bakımını daha kolay yapılabilir hale getirir.

Haber bültenimize abone olun

Takip ettiğiniz için teşekkür ederiz