Orijinalini görmek için tıklayınız : Bilgisayar bilimcisi gibi düşünmek: Python ile öğrenme
Vatan, millet, Sakarya, allah, din, kitap yakarışları, körü körüne inanışlar ile fetih, cihad ilkellikleri değildir bir ülkeyi muasır medeniyet seviyesine çıkaracak erdemler. Erdem bilgidir.
http://openbookproject.net/thinkCSpy/index.html adresinden edinebileceğiniz "How to Think Like a Computer Scientist" isimli kitabın Türkçe çevirisini Tahir Emre Kalayci isimli arkadaş yapmış. Bilgisayar bilimlerine, programlama tekniklerine alaka duyan herkesin istifade etmesi dileğiyle.
http://yzgrafik.ege.edu.tr/~tekrei/dersler/bbgd_p/BBGD_PIO.pdf
milomanara
18-02-2010, 15:45
Güzel ama bence "eğer...sonra" ya da döngü rutinleri ile örülmüş yukarıdan aşağı tasarım[1 (http://en.wikipedia.org/wiki/Top-down_and_bottom-up_design#Top-down_approach)] kapsamlı bir dünya görüşü modeli olamaz.
Bence bilgisayar bilimlerinde dünya görüşü arayan kişi, kendi "gerçekleri" ve "kuralları" olan yapay evrenini yaratmalı ve yaşatmalıdır. Mesela bir arı hayal edip, bu arının sıcaklık, yağmur, papatya zenginliği, kovan koşulları vs... ortamın olaylar karşısında işleteceği kuralları tanımlamayı ve hazır çalışır sisteme olaylar göndererek değişen "gerçekleri" incelemek çok eğlenceli olabilir.
Mantık programlama için: PROLOG[2 (http://en.wikipedia.org/wiki/Prolog)] ya da CLIPS[3 (http://clipsrules.sourceforge.net/)]
Kim bilir, belki bilgisayara aşkı öğreten çıkar... :)
basitrasin
18-02-2010, 16:00
Sayın Shibumi
Python programlama dili ile ilgili Türkçe kaynak bulmakta güçlük çekiyordum. "Gökte ararken yerde buldum." Dedikleri bu olsa gerek. Paylaşımınız için çok teşekkür ederim. (http://www.turandursun.com/forumlar/member.php?u=9699)
Hemen indirdim. Okumaya başlıyacağım. (http://www.turandursun.com/forumlar/member.php?u=9699)
Saygılarımla. (http://www.turandursun.com/forumlar/member.php?u=9699)
milomanara, bilgisayar bilimi insanlara çok güçlü bir yaşam felsefesi sunduğunu iddia etmez, zira değildirde, elbetteki iddialarla da uğraşmaz. Yalnız; Bilgisayar bilimi bugün birçok dünya nesnesinin en iddialı şekilde modellenmesi işinde harıl harıl kullanılmaktadır. Bakınız meteoroloji tahminleri, deprem benzetimleri, genetik mühendisliği, etc. Umulan o ki yakın gelecekte, insanın ki değilse bile basit bir bilinç modellensin. Robotik, uydu, mikroelektronik, nano teknoloji, küresel iletişim ağları vs. bunlardan bahsetmiyorum bile.
Bilgisayar bilimi, kısaca insanın içindeki *yaratım gücünün yansımasıdır ve size o gücün somut sonuçlarını elde edebilme fırsatı verir. Programlama ve fikir üzerine yaratma odaklı düşünmenizi isterdim fakat bu meseleye uzaksanız bu çok zordur.
Okumak konu hakkında ufuk açacaktır.
http://www.pandora.com.tr/urun.aspx?id=158617
Bu arada mantık programlama için verdiğiniz dillerin ne yaptıklarına vakıfım. o dillerin arasına octave, matlab araçlarını, lisp gibi dilleride de ekleyebilirsiniz. :)
saygıyla.
milomanara
18-02-2010, 17:44
Değerli Shibumi,
Yanlış anladın sanırım, mantık programlamaya vakıf olmadığını söylemedim. "Bilgisayar gibi düşünmek" için python gibi -ki muhteşem bir dildir- yukarıdan aşağıya programlama dilini özümsemek değil, mantık programlama dillerinden birini özümsemek gerekir dedim. Çünkü düşünme "eğer...sonra" gibi sadece doğru/yanlış seçeneklerini içeren bir eylem değildir. Dolayısıyla python rutini gibi düşünmek taş devrine geri dönmek gibi bir şey olur. Yani mesela, standart bir karar sürecini pythonla programlarsan:
değişken tanımlamaları
(varsa giriş değerleri)
(varsa aşağıdaki gibi koşul değerlendirmeleri)
if koşul:
....
then:başka fonksiyon
....
(varsa döngü)
çıktılar
program sonu
Yani yukarıdan aşağıya tasarım. Bir şeyleri hesaplayarak, işleyerek, değerlendirerek ilerlemek.
Mantık programlama da nasıl(CLIPS):
gerçekleri tanımla ör:
(deffacts startup "Buzdolabı durumu"
(buzdolabı ışık açık)
(buzdolabı kapı açık)
(buzdolabı temp (get-temp)))
kuralları tanımla ör:
(defrule yemekler-bozulur "Yemeklerin bozulması kuralıdır"
(buzdolabı ışık açık)
(buzdolabı kapı açık)
=>
(assert (buzdolabı yemek bozuldu)))
Yani demek istediğim python gibi düşünmek çok anlamlı olmayabilir. Mantık programlayıcılar zaten insanı taklit eden programlardır ama bunları öğrenmek kendi düşünce sistemimizi ve karar adımlarımızı keşfetmemizi sağlar.
Son olarak, yukarıdakilerin hepsi "bence" doğrudur. Python öğrenmenin kimseye zararı olmaz. :)
Başlıkta yanlış anlaşılma ile ilgili birşeyler ters gitti sanırım. İşin kötüsü bende yalnızca sizi tamamlamak üzere örnek olarak verdim o dilleri. Ama belirttiğiniz dillerin eskidiğinden dem vurdum.
Mantığım, clips dediğiniz şeyin aslen extend edilmiş bir c türevinden başka birşey olmamasına dayanıyor. Bildiğiniz gibi c düşünüş itibariyle yapısal bir dildir ve nesne yönelimini ya da herhangi bir uml türü yeni nesil şablonlamayı, kalıtımı, çok biçimliliği desteklemez. Python, ruby, c++, java ya da php için durum böyle değil. Bahsettiğimiz yapay zeka ya da yapay bilinçlendirme çalışmaları eskiden prologdan, clipsten istendiği gibi yalnızca doğrudan algı üzerine kurulu mantık sağlaması yeterli olacak şeyler değil. Tepki ölçme, problem çözme, duruma göre karar mekanizmalarından istifade etme vs. gibi birçok ayrı modülün paralel ve iç içe çalışmasıyla vücut buluyor.
Örneğin çok gelişmiş oyunlarda çarpışma denetleyen fizik motorları, oyunun kendi yapay zekası ya da senaryoyu yöneten tüm arayüz python, lua türü dogrudan nesne yönelimli dillerle yapılır. Burada konu programların yukarıdan aşağıya yazılıyor ya da işleniyor olması değil. Zira sembolik makina dilleri gibi yoğun olarak kendi dallanma komutlarını içinde barındıran dillerde bile herşey yukarıdan aşağıya işler. Fakat bu yalnızca derleyici ya da yorumlayıcının sorunudur. Zira siz üst düzey amaca yönelik dillerde neyin neye göre işlediğiyle ilgilenmez, oluşturduğunuz nesnelerin hiyerarşisi, durumları, sınırları ile ilgilenirsiniz.
C' deki fonksiyonlar, yapılar, birleşimler ve bit alanları sırf bu hiyerarşiyi ve tekrar kullanılabilir kod sistemine ulaşabilmek üzere düşünülmüştür. Fakat c nin yapamadığını sisteme biraz yük bindirerek c++ nesneye yönelerek başarmıştır. Tabii ki nesne yönelimi ilk defa c++ ile gelmedi, ilk çıkışı çok eski tarihlere dayanır.
O bakımdan çoğu yapay zeka ya da yapay bilinç çalışmasında, yapay sinir ağı, istatistik, dil işleme, veri madenciliği ne kadar önemliyse dilin nesne yönelimli olması ya da kolayca modellemeye izin verebilir yeni birşeyler desteklemesi gerekir. O bakımdan oyunlarda dahi prolog, clips yerine oop destekli diller ya da betik dilleri tercih edilir. Elbetteki bu seçim, projeyi üstlenenlerin kendi sorunlarına bakış açılarıyla ve uzmanlıklarıylada doğrudan ilintilidir.
Kısaca bir dil, turing-complete dediğimiz yapıyı sağladıktan sonra gerisi yalnızca uzmanlığınıza ve yenilikçi fikirlerinize kalır. Zira tüm diller ile herşeyi yapmak mümkündür.
Kitap tanıtımı
Algoritmalar
(teoriden uygulamalara)
Prof. Dr. Vasif Vagifoğlu Nabiyev kaleminden, Türkçe, 824 sayfa, 2009 Basım
Genel ve güncel birçok algoritmanın matematiksel analizleriyle birlikte ele alındığı ilk ve tek Türkçe başvuru kaynağı.
http://www.google.com.tr/search?hl=tr&q=algoritmalar+teoriden+uygulamalara&meta=&aq=f&aqi=&aql=&oq=&gs_rfai=
güncelleme, yeni haber ekleme...
Vatan, millet, Sakarya, allah, din, kitap yakarışları, körü körüne inanışlar ile fetih, cihad ilkellikleri değildir bir ülkeyi muasır medeniyet seviyesine çıkaracak erdemler. Erdem bilgidir.
http://openbookproject.net/thinkCSpy/index.html adresinden edinebileceğiniz "How to Think Like a Computer Scientist" isimli kitabın Türkçe çevirisini Tahir Emre Kalayci isimli arkadaş yapmış. Bilgisayar bilimlerine, programlama tekniklerine alaka duyan herkesin istifade etmesi dileğiyle.
http://yzgrafik.ege.edu.tr/~tekrei/dersler/bbgd_p/BBGD_PIO.pdf
Bu dedikleriniz ile ne alakası var,muasır medeniyetlere ulaşmak için ateistmi olmak gerekiyormuş,insan vatanseverlikten,inançtan,Tanrıdan uzak kalıncamı gelişiyor?
Ben Bilgisayar Mühendisiyim.
Aynı zamanda bir müslüman ve vatanseverim.
İnançlı olmam hayatımın hiç bir alanında beni işimdede,sosyal yaşantımdada geri bırakmıyor.
Böle alakasız karşılaştırma yapıp,bilime sahip olanların ateistler olduğu gibi komik yaklaşımlar sergilemeyiniz.
Dünyada milyarlarca inanan var bunalrın içinde bir çok mühendis,doktor,matematikçi,ve bir çok bilim dalında kendini kanıtlamış bilim insanı ve akedemik şahıs vardır.
Artık bırakın bilimi tekelinize alma gayretlerini...!!!
Diyorsanız ben yobazlığın karşısındayım,hurafenin karşısındayım,ona bir sözüm yok,ama inananların tümüne karşı bu gibi aciz haykırışlar ile gelmeyin.
Saygılarımla...
nogada, ne inancınla ne de mezun olduğun okulla ilgilenmiyorum, aynen senin bu başlığın "konusuyla" ilgilenmediğin gibi. Konuya katkı yapmayacaksan "buraya yazma" lütfen. Hiç sıkılmaz mısınız troll gibi davranmaktan çok ilginç.
saygıyla.
Vatan, millet, Sakarya, allah, din, kitap yakarışları
Beni ilgilendiren kısım bu.
Erdem bilgidir kesinlikle.
Fakat yuakarda saydığın özelliklere sahip insanlarda bilgili ve erdemlidir.
Komik Reklamlar yapmayınız.
Eğer konu sizin verdiğiniz kitap tavsiyesi ve bilgisayar bilimleri ise o yazdığınız ilk yazı ne alakadır bununla?
Ben bu saçma safan tavra karşı yazdım bu sözlerimi.
Bir tavsiye veriyorsun fakat öncesindede,adeta milliyetçiliği ve inancı aşağılar tavırlar sergiliyorsun.Önce ne anlatmak çalıştığına ve bunu anlatmadan önce ne tavır koyduğuna dikkatlice bak.
Sana Türkçe' yi, cümle kurmayı öğreten okulları, dersleri veren hocaları çok merak ediyorum ey nogada(!) Garip ve bir o kadar da kendi kişilik ironisini kendisi yaratan adamlarsınız vesselam. Ne deniyordu buna bilgisayar mühendisliğinde? Recursion olabilir mi?
saygıyla.
Sana Türkçe' yi, cümle kurmayı öğreten okulları, dersleri veren hocaları çok merak ediyorum ey nogada(!) Garip ve bir o kadar da kendi kişilik ironisini kendisi yaratan adamlarsınız vesselam. Ne deniyordu buna bilgisayar mühendisliğinde? Recursion olabilir mi?
saygıyla.
Siz verdiğiniz yada vermeye çalıştığınız denklem içinde fonksiyonlara yanlış parametreler girerseniz ortada döngü kalmaz,önce verdiğiniz data'daki değişkenlere bir göz atın,ondan sonra bakın benim kullandığım kelimelere.
Algoritmanız yanlış bir kere.Daha düzgün olmalısınız...!!!
Yoksa ben burda olayın içine dahil olurum,ve programı bitiririm.Nede olsa gerekli bir fonksiyonum,programın istenileni vermesi için...
Saygılarımla...
data, değişken, denklem, fonksiyon, algoritma
evet bu kesinlikle recursion...
saygıyla.