BİLGİSAYAR PROGRAMLAMAYA GİRİŞ
Yazılım dünyasında en çok kullanılan sözcüklerden biridir Algoritma. Öyle ki artık herkesin dilindedir bu sözcük. Finans dünyasından endüstriyel makinaların çalışmasına, çeşitli cihazların ve makinaların sürekli tekrarlayarak yaptıkları her işin içinde konuşulur. Kısaca biz bu sihirli sözcüğü herhangi bir problemin çözümü ve o çözümü tekrar tekrar kullanabilmek için izlenecek yol diye tanımlarız.
Algoritma bir problemi sonlu bir zamanda çözer. Açık, seçik, uygulanabilir, olabildiğince basit ve gerektiği yerde tekrar edebilen sıralı adımlar dizisidir. Ya da yazılımcı diliyle komutlar serisidir.
Algoritmayı (problemle birlikte) düz metinsel ifadeyle, kaba kodla ve akış şemalarıyla sunabilirsiniz. Bu problemin tanımı ve çözümü için önerinizi profesyonel bir şekilde anlatmaktır.
Problemi ve algoritmik çözümü yazıyla nasıl ifade ederiz?
Örneğin okulda resim atölyesine gidip çalışacak öğrenciler için;
Çantandan resim malzemelerini ve resim defterini al.
Resim atölyesine git.
Çalışma masanı bul.
Resim defterini masaya koy.
Resim kalemlerini masaya koy.
Öğretmen gelene dek bekle.
Bu günlük yaşamdan alınmış basit bir örnek. Bu örneğin tüm hayata uygulanabilir olduğunu artık yapay zeka çalışmalarından bile görebiliyoruz. Sizlerin de bu dünyaya uzak kalmamanız adına en kısa zamanda bu teknolojiyle tanışmanızı, öğrenmenizi, uygulamalar denemenizi, yeni uygulamalar geliştirmenizi öneriyorum. Aksi halde her zaman satan değil satın alan, öğreten değil öğretilen, oyun kurucu değil piyon olarak kalacağımızı rahatlıkla söyleyebilirim.
Matematiksel basit bir algoritma için şöyle bir örnek verelim.
İki tam sayının çarpımına iki eklemek.
İki tam sayı değişkeni belirle.
Bu değişkenlere değer ata.
İki değişkeni topla ve sonuca iki ekle.
Sonucu ekrana yazdır.
Sıklıkla duyacağınız bir başka terim flow-chart (akış diyagramı)
Bu diyagramlar da algoritmaların şematik olarak açıklamasından ibarettir. Burada programa başlar ve bitene kadar muhtelif şematik ifadelerle algoritma tamamlanır. Yatay ya da dikey akış diyagramlarının ANSI (Amerikan Ulusal Standartlar Enstitüsü) tarafından belirlenen temel simgeleri evrensel bir hal almıştır.
Bilgisayarlar iki ana bileşenden meydana gelir Bunlardan biri donanım (hardware) diğeri de yazılım (sofware)’dır.
Donanım bilgisayarın fiziksel yapısıdır ve muhtelif birçok parçadan oluşur. Bunları gruplandıracak olursak eğer aşağıdaki gibi beş ana gruba ayırabiliriz.
Giriş birimleri: Bunlar bilgisayara veri aktaran birimlerdir. Klavye, fare, tarayıcı (optik okuyucular gibi), hard disk, mikrofon. Anlaşıldığı üzere kullanıcı ile bilgisayar arasında köprü bu donanım birimlerince kurulur.
Çıkış birimleri: Monitör, yazıcı, hoparlör, projeksiyon ve hard disk. Bilgisayarın aldığı verileri işledikten sonra kullanıcıya ya da bilgisayarın kendisine anlaşılır bir şekilde veri gönderdiği birimlerdir.
Mikroişlemci: Terminolojide CPU (Central Processing Unit) olarak adlandırılan birim bilgisayarın en önemli organıdır. Bütün işlemler burada yapılır, denetlenir ve ilgili veri yollarına aktarılır.
Hafıza Birimleri: Daha statik birimlerdir. Bilgisayarın üzerinde çalıştığı bilgileri geçici olarak (RAM - Random Access Memory) ya da kalıcı bir şekilde (ROM – Read Only Memory) saklandığı belleklerdir. RAM bellek verileri bilgisayarın bataryası ya da güç kaynağı kesilirse silinir. Ancak ROM’a kaydedilmiş veriler güç kaynağından bağımsız bir şekilde saklanmaya devam eder.
Depolama Birimleri: Hard Disk, Flash Disk gibi birimlerdir. Teknoloji geliştikçe tarih sahnesinden silinen veri depolama birimlerinden bazıları manyetik bantlar, floppy disk (disketler) CD-ROM ve DVD ROM gibi gerek okuyucu-yazıcı üniteler gerekse üzerine verileri kaydedilen parçalar artık bilgisayar sistemlerinde kullanılmamaktadır.
Bizi ilgilendiren en önemli bileşen ise yazılım (software)’dır. Bunlara bilgisayarın ruhu diyebiliriz. Yazılım olmadan bilgisayar hiçbir işlem gerçekleştiremez. Yazılımlar kullanıcı ihtiyaçlarına göre tasarlanır, şekillenir ve geliştirilir. Temel olarak yazılım iki ana gruba ayrılır. Bu klasik temel yaklaşıma göre birincisi sistem yazılımıdır. İkincisi ise uygulama yazılımlarıdır.
Bu bölünmenin sonu yok gibi o yüzden biz burada temel yaklaşımlarla ilerliyoruz. Örneğin sistem yazılımlarını da isterseniz alt gruplara ayırabilirsiniz. Mesela işletim sistemi ile ağ yazılımları hatta sürücü yazılımları gibi…
Aynı şekilde uygulama yazılımları da üretilmeleri açısından çok farklı programlama dilleri kullanır ve kullanıcı ihtiyaçlarına göre şekillenir.
Konuya girişi burada sonlandırırken derleyici (compiler), yorumlayıcı(interpreter), kaynak program (source program) gibi ifadeleri de yeri geldikçe Python programlama dilini çalışırken aktaracağım.
Levent Aslan
Yorum Yap