<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Ali Cihan Çıplak &#187; sistem programlama</title>
	<atom:link href="http://www.alicihan.com/tag/sistem-programlama/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.alicihan.com</link>
	<description>A blog for ideas and more...</description>
	<lastBuildDate>Thu, 13 May 2010 15:52:43 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Matematik ve Bilgisayar</title>
		<link>http://www.alicihan.com/2009/01/23/matematik-ve-bilgisayar/</link>
		<comments>http://www.alicihan.com/2009/01/23/matematik-ve-bilgisayar/#comments</comments>
		<pubDate>Fri, 23 Jan 2009 14:30:47 +0000</pubDate>
		<dc:creator>alicihan</dc:creator>
				<category><![CDATA[Teknoloji]]></category>
		<category><![CDATA[Yazılım]]></category>
		<category><![CDATA[C Programlama Dili]]></category>
		<category><![CDATA[matematik]]></category>
		<category><![CDATA[programlama]]></category>
		<category><![CDATA[sistem programlama]]></category>

		<guid isPermaLink="false">http://www.alicihan.com/?p=42</guid>
		<description><![CDATA[Matematik Dünyası dergisinin mail gruplarında sorulan bir soruya yanıt olarak yazdığım bir mesaj vardı. Bu yanıtı biraz toplarlayıp yayınlamayı uygun buldum. Soru uzunca bir soruydu ama benim yanıtım temelde aşağıdaki iki soruya yanıt vermekteydi; Bilgisayarın her alanı matematiğe aynı oranda mı muhtaçtır? Matematik bilmeyen programcı olabilir mi? Birinci konu, matematik bir modelleme aracıdır. Kutsallaştırılacak ya [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_43" class="wp-caption alignleft" style="width: 280px"><img class="size-medium wp-image-43" style="border: 1px solid black; margin: 2px;" title="math-comp" src="http://www.alicihan.com/wp-content/uploads/2009/01/math-comp.jpg" alt="" width="270" height="180" /><p class="wp-caption-text">  </p></div>
<p>Matematik Dünyası dergisinin mail gruplarında sorulan bir soruya yanıt olarak yazdığım bir mesaj vardı. Bu yanıtı biraz toplarlayıp yayınlamayı uygun buldum. Soru uzunca bir soruydu ama benim yanıtım temelde aşağıdaki iki soruya yanıt vermekteydi; Bilgisayarın her alanı matematiğe aynı oranda mı muhtaçtır? Matematik bilmeyen programcı olabilir mi?</p>
<p>Birinci konu, matematik bir modelleme aracıdır. Kutsallaştırılacak ya da tapılacak bir soyut kavram olmaktan cok, işimizi kolaylaştırıcı bir iletişim aracıdır. Ayrıca matematik doğanın insanlar tarafından evrensel olarak modellenmesinin yöntemi ve sonucudur, sebebi degildir. Burada yanılmayalım. Gelinen noktada da oldukça yetersizdir. Matematikçilerin çalışması da bunu ilerletme çabasıdır. Matematiksel yöntemlerin, matematiğin mantıksal işleyişine biraz aşina olan kişiler tarafından ilgi çekmesi, hem doğal olayları kavrayıştaki düşünce sistematiğini geliştirmesi, hem de doğayla ve insan mantığıyla uyumlu olmasından kaynaklanır. Diğer tüm bilimlerde ortak nokta olmasının sebebiyse onların bir parçasi olmasından değil onların bir yöntemi olmasındandır. Kısacası günlük iletişimde ya da ifadelerde dilin yeri neyse formel bilimlerde de matematik aynı noktadadır.</p>
<p><span id="more-42"></span></p>
<p>Bilgisayar teknolojisi ve işleyişi mekanik sistemlerin yerini alarak hayatımıza girmeye başladı. Fiziksel koşullar yerine (a mili b çarkını döndürürse c pistonu x yönünde hareket etsin gibi), elektriksel koşullarla alet üretiminin gerçekleşmesi su anda bilgisayar olarak karşımızda. Daha bir üst aşama olarak, elektriksel koşul ifadelerini gerçekleyen genel amaçlı işlemcilerin programlanabilir yapısı sayesinde insanın daha da kolay anlayıp ürün geliştirebildiği programlama dilleri oluştu. Sonuçta fizik, matematik, kimya hepsi bilgisayar sistemlerinin işleyisinde bir derece öneme sahiptir. Örnegin mikroişlemci teknolojisini geliştirmek amaçlı çalışan bir grubun yarı iletken teknolojisi konusunda ilerleme sağlaması için ciddi atom modeli bilgisine sahip ekip üyeleri olmalıdır. Bu şekilde baktığımızda bilgisayar alanında bir çalısma yürütmek mi yoksa bir matematikçi olarak mı çalışmak istediginizin netleşmesi gerekir.</p>
<p>Matematikçi olarak bilgisayar bilimlerine ilgi duyuyorsanız, bir sınırlama yoktur. Hangi alan daha cekici geliyorsa o noktayı inceleyip matematiksel modellemelerdeki eksikler üzerine fikir yürütebilir ya da mevcut modelleri inceleyebilisiniz. Ancak asıl alanınız bilgisayar ise, daha seçici olmanız gerekir. Matematiğin görece daha yoğun kullanıldığı alan olarak yazılımı söyleyebilirim. Ancak bu bile tamamen yapacağınız uygulamaya bağlıdır. Mesela Grafik arabirimli üst seviye bir dilde, ilköğretim eğitimindeki<br />
matematik işinizi (buna veritabanı kısmı da dahil) görürken, optimizayson yapan bir yazılımla ugraşıyorsanız, bir matematikçinin o alandaki calışmaları bile size yetersiz gelebilir. Asıl ayrım noktası burasıdır. &#8220;Programcı&#8221; olmak için her bilgiyi bilmeniz gerekmez, ihtiyaç duyabileceğiniz yazılımsal kütüphanelerdeki nesnelerin ya da fonksiyonların nasıl kullanılacağını bilmeniz yeterlidir. Ama mevcut olanlar işinizi görmüyorsa, ya da yeni bir yöntem geliştirilmesi gereken bir alanda yazılım geliştirici olarak çözüm sunmak istiyorsanız (ki işler her zaman istekler doğrultusunda olmaz) o zaman matematiksel yaklaşımlara ihtiyaç duyarsınız. Çünkü bu bütünü oluşturan her parçanın altında diğer bilim dallarına kıyasla çok daha fazla mantıksal işleyiş ve cok daha fazla matematiksel model vardır. Bilgisayar alanında derinlemesine çalışma yapmak isteyen kişiler için bu alandaki matematik bilgisinin cok iyi olmasi kaçınılmazken, sadece sınırlı alanlarda programlama ile uğrasan kişiler için temel bir bilgi düzeyi (orta öğretim müfredatı) yeterli olacaktır.</p>
<p>Tecrübelerimden bildiğim kadarıyla en çok matematiksel yöntem oyunlarda kullanılıyor. Grafik modellemeler için lineer cebir ve geometrinin çok ciddi bir bölümü kullanılıyor. Oyun senaryolarında çok fazla olasılık kuramı kullanılıyor. Diğerlerinden farklı olarak hazir kütüphaneler  kullansanız bile oyun karakterlerinin hareketi tamamen uygulama bağımlı olduğu için belirli bir koordinat sitemine göre calışmanız gerekiyor ya da oyun akışında karsılaşılacaklar ihtimallere göre belirleniyor. Burda bile yeni yöntemler geliştirecek kadar derin bir bilgi yerine varolani anlayacak kadar bir matematik bir çok durumda yeterlidir. Genel olarak bilgisayarda matematiğin en cok kullanıldığı noktalar ozellikle lineer cözümü olmayan işlemlerin bilgisayara yaptırıldığı yerlerdir. Yapay zeka uygulamaları, lineer olmayan optimizasyon işlemleri ya da çok yüksek veri işlenmesini gerektiren lineer yontemlerde bu gruba dahil edilebilir. Eğitim amaçlı matematiksel yazılımları, ya da mühendislik yazılımlarını bu alanın dışında tuttum. Çünkü MatLab, ya da Mathematica gibi yazılımları ortaya çıkarmak için gereken matematik bilgisi bir insanin sınırlarının çok ötesinde olabilir.</p>
<p>Matematik ve bilgisayar ile ilgili daha çok görüs ariyorsaniz programcıların yer aldığı mail gruplarındaki fikirleri de gözden geçirmenizi neririm. Bu konudaki tartışmalardan biri, C ve Sistem Programcılari Derneği&#8217;nin mail grubunda olmuştu. <a href="http://www.csystem.org">www.csystem.org</a> adresinden gruba üye olarak arşivden bakabilirsiniz. &#8220;Matematik ve Programlama&#8221; başlıklı mesajlar tam olarak sizin sorunuzla ilgili kişisel görüşlere yer vermekteydi.</p>
<img src="http://www.alicihan.com/?ak_action=api_record_view&id=42&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.alicihan.com/2009/01/23/matematik-ve-bilgisayar/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>C Programlama Dili</title>
		<link>http://www.alicihan.com/2007/09/05/c-programlama-dili/</link>
		<comments>http://www.alicihan.com/2007/09/05/c-programlama-dili/#comments</comments>
		<pubDate>Wed, 05 Sep 2007 02:34:41 +0000</pubDate>
		<dc:creator>alicihan</dc:creator>
				<category><![CDATA[Yazılım]]></category>
		<category><![CDATA[C Programlama Dili]]></category>
		<category><![CDATA[C ve C++]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[embedded]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[nesne yönelimli programlama]]></category>
		<category><![CDATA[sistem programlama]]></category>

		<guid isPermaLink="false">http://www.alicihan.com/2007/09/05/c-programlama-dili/</guid>
		<description><![CDATA[C bir programlama dilidir. Bilgisayar dünyasında çığır açan, bir devri kapatıp yenisini açan ve dönemi içerisinde yazılmış en gelişmiş dildir. Yapısal programlama kavramını çok iyi uygulatan ve donanımsal hakimiyet konusunda da en iyi olan dildir. Birebir assembler a çevrilebilecek şekilde tasarlanmıştır. Temel amacı sistem programlamaya yönelik olsa da oldukça geniş bir kullanım alanına sahiptir. Şu [...]]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal">C bir programlama dilidir. Bilgisayar dünyasında çığır açan, bir devri kapatıp yenisini açan ve dönemi içerisinde yazılmış en gelişmiş dildir. Yapısal programlama kavramını çok iyi uygulatan ve donanımsal hakimiyet konusunda da en iyi olan dildir. Birebir assembler a çevrilebilecek şekilde tasarlanmıştır. Temel amacı sistem programlamaya yönelik olsa da oldukça geniş bir kullanım alanına sahiptir. Şu ana kadar en uzun süre kullanımda kalan ve güncelliğini hiç yitirmeyen bir dildir. Hatta önümüzdeki 10 yıl içerisinde de os yazımı, low level (alt sevye) uygulamalar ve embedded (gömülü) sistemlerde kullanılmaya devam edecektir. Programlamayı C ve C++ sıralaması ile tam anlamıyla öğrenen bir programcı başka bir dilde calışmaya çok kısa sürede alışacaktır. <span id="more-8"></span>Gözlemlerim şöyleki; üst seviye dillerle uğraşanlar “aman kod yazmayayım da ne olursa olsun” çabası içindeyken C/C++ kökenliler ise “bıktım bu 40 çesit arayüzün kendine ait araçlarını kullanmaktan, verin standardını adam gibi kod yazayım” tavrını gösterirler. Oysa doğru olan gerektiğinde kod yazmak gerektiğinde de yeni araçları ve uygulamaları kullanamayı bilmektir. C/C++’ın temellerini öğrenmek oldukça faydalı olacaktır. İlk etapta zahmetli de gelse işin mantığını öğrenmenin en kısa yoludur. Aksi durumda programcıların daha çok zorlandıklarını farkettim. Programlamaya java ya da vb (visual basic) ile başlayan kimseler uzun vadede bazı kavramların mantığını kavramakta daha çok zorlanıyor.</p>
<p>C nesne yönelimli programlama yapmaya elverişli olmadığından sıradan bir pc uygulaması için kullanımı elbetteki zor olacaktir. Programlama dilleri programcının aracıdır ve belirli bir iş için en uygun araç seçilmelidir. C ile kullanıcı arayüzü olan ve orta seviye bir veritabanı olan program yapmaya kalkmak motorsikletle Hindistan seyahatine benzer. Oysa Hindistan’a gitmenin en uygun yolu uçak kullanmaktır. O halde java veya C# tercih etmelisiniz. Uçaktan korkarım diyip otomobil ile gidecekseniz C++ olabilir. Ancak Kadıköy’den Mecidiyeköy’e yoğun trafikte gitmeniz gerekiyorsa en uygun tercih motosikletle gitmek olacaktir. Ucakla gitmek çok saçma olabilir, önce Ataköy’den Havaalanına, ordan uçakla Sabiha Gökçen Havaalanına, ordan da Kadıköy’e. Ama bu yolu trafiğe rağmen otomobille de gecebilirsiniz ve C++ burda otomobil oluyor.</p>
<p>Sonuç olarak programala dili programcının aracıdır ve ona düşen kendi işi icin en uygun dili secmek ve o dile en iyi şekilde kodlamaktır.</p>
<img src="http://www.alicihan.com/?ak_action=api_record_view&id=8&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.alicihan.com/2007/09/05/c-programlama-dili/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
