Öncelikle,
sınavın iyi ya da kötü geçti, bütün sene çalıştın ama düşündüğün puanı alamadın ya da düşündüğünden çok daha iyi puan aldın. Birkaç ay içinde iyi ya da kötü bunların hepsine set çekeceksin, çünkü üniversite 'gerçekten' düşündüğünden farklı bir ortam ve her şeyden önce ÖSS seni gerçekten ölçebilen bir sınav değil. Sen bir ya da iki sınavla 'ölçülebilen' bir varlık değilsin. Emin ol, daha karmaşık bir yapın var.
Şimdi gelelim asıl konuya.
İnternetten, Bilim-Teknik'ten, ufuk açıcı lise fizik hocandan vs. bir şekilde 'kuantum bilgisayarı' diye bir şey duydun. Kulağa ilginç geliyor, çünkü senin hiç düşünmediğin iki kavramı birleşmiş görüyorsun. Kuantum- lisede atom orbitallerini öğrenirken (1s 2s 2p ...) duymuştun, ha bir de madde dalgalarından bahsettiyse fizik hocan, orada biraz kulağında yer edindi. Lisede kendisinden bu kadar azıcık bahsedilse de, biliyorsun ki lise dışı bilim dünyasında sürekli her yerde. Bilim-teknik ya da herhangi bir bilim dergisinde süperiletkenleri okurken yazarın kuantumdan bahsettiğini hatırlıyorsun. Rüyalarını süsleyen CERN'de, fizikçilerin kuantum dünyasındaki parçacıklarla deney yaptığını biliyorsun. Popüler bilim kitapları yoluyla kuantuma dair hep bir şeyler öğrenmeye çalıştın. En kafana takılan şeylerden biri, dolanıklık-dolaşıklık (ya da belki daha anlamlı gelecek olan 'entanglement'). Bütün popüler bilim yazarları dolanıklık sayesinde evrenin iki ucundaki iki parçacığın haberleşebileceğini falan söylüyor, anlamıyorsun. Nasıl olabilir ki? En emin olduğun şeylerden biri, bilgi transferinin ışık hızını geçemeyeceğini. Yerellik ve nedensellik ilişkileri darmadağın durumda. -- Diğer tarafta her gün kullandığın, dünya kadar bilgiye ulaşabildiğin, film izlediğin, ödev yaptığın, haberleştiğin bilgisayar. Hasbelkader lise bilgisayar hocası sana bir programlama dili öğretti de kendi hesap makineni yazdın. Ya da aslında çok iyi bir hackersın ama çaktırmıyorsun. İki bilgisayar gümlettin, baban farkında olmadan yeni bilgisayarı toparlama derdinde falan olabilirsin mesela. Bilgisayarın donanımı ya da yazılımı çok ilgini çekiyor. Yapmak istediğin şey ya elektronik mühendisi olmak ya da bilgisayar mühendisi. Ötesi mümkün değil.
Bu birbirine çok uzak gibi duran ve nitekim iki farklı ekolden gelen bu iki kavram nasıl oluyor da aynı fiziksel tabanı paylaşabiliyor? Bunu hakkını vererek anlamak zor olduğu kadar, anlatmak da zor, özellikle de dinleyici ya da okuyucu liseden henüz mezun olmuşken. Yine de deneyeceğim.
Öncelikle aklının bir köşesinde yer edinmesi gereken kavram, 'bilgi'. Bilgi (enformasyon) fiziksel olarak tanımlanabilen bir kavram. Örneğin, bir sinus eğrisi düşün. Bu eğrinin iki tane önemli özelliği var. Biri genliği, diğeri de frekansı ya da periyotu. Eğer ben sana belirli bir genlik ve frekans değeri verirsem o sinüs eğrisini kağıda çizebilirsin, değil mi? Dolayısıyla bir sinüs eğrisi çizmek için 'bilinmesi' gereken iki bilgi var. Bu sinüs eğrisi bir devreye verdiğin AC sinyal olabilirdi. Yani eğrinin-dalganın-sinyalin genliği ve frekansı fiziksel olarak anlamlı büyüklükler.
Bu düşünceyi genelleyerek, fiziksel bir sistemde tanımlanan ve kullanılan bütün parametrelerin bilgi değeri taşıdığını söyleyebiliriz. Bu yüzden aklına gelen her şey fiziksel bir parametre olmak zorunda değil. Olabilmesi için, her şeyin başında fiziksel olarak anlamlı bir bilgi taşıyor olması gerek.
Aslında temelde hepimizin ama hepimizin yaptığı şey bu bilgilerle oynamak. Kimimiz yeni bilgiler bulma telaşında, ki yeni bilgi demek bilmediğimiz fiziksel bir sistemi anlamamız, öğrenmemiz demek, mesela ışığı evrenin uzak bir köşesinden bize ulaşan süpernova patlamaları yoluyla süpernovaları anlamak gibi. Kimimiz ise çok iyi anladığımız bilgileri farklı şekillerde bir araya getirip 'kullanılabilir' sistemler tasarlamayla meşgul, bilgisayarın içindeki işlemciye kod yazan mühendis gibi.
Klasik bir bilgisayarda -yani önünde duran bilgisayar gibi- bilgi, gerçekliğin farklı katmanlarında farklı şekillerde temsil edilebilir. Yazılım katmanında bilgi ikili tabanda 0 ve 1'ler ile temsil edilir. Bunlara 'bit' denir. Yani aklına gelebilecek her türlü sembol, harf, sayı bitler cinsinden yazılır. Mesela 00001000, 8 bitlik bir sayıdır. Neden ikili sistem sorusuna herkesin değişik cevapları olabilir. Donanım katmanında çalışan bir elektronik mühendisi için 0 ve 1, bir devrenin sırasıyla 0 V ve 5 V gerilim değerleriyle besleniyor olmasını temsil edebilir. Bir hattan akımın akıyor olması 0 ise, akmıyor olması 1'dir. Eğer önündeki nükleer bir kuantum bilgisayarı olsaydı, 0 ve 1'leri bilgisayarı yapmakta kullanılan molekülün atomlarının spin konumlarıyla ifade ediyor olacaktık. Elbette o durumda sistemimiz bir kuantum sistemi olduğu için kuantum etkilerini göz ardı edemeyecektik ve dolayısıyla artık bitlerden değil, kubitlerden bahsediyor olacaktık. İkili sistem mantığı yine aynı kalmakla beraber, kuantum mekaniğinin getirdiği bazı ilkeleri de kullanacaktık, mesela -atomik bilgisayar için- spinlerin süperpozisyon halinde olabilmeleri gibi, yani sistemin aynı anda hem spin yukarı hem spin aşağı olması durumu. (elbette bir ölçüm yaptığınızda ya 0 ya da 1 elde edersiniz, ancak sistemi kendi kendine evrimleşmeye bıraktığınızda, sistem 0 ve 1'in herhangi bir süperpozisyonuna evrilebilir. Aynı şekilde hazırlanmış birden çok sistem üzerinde deney yaparak bu olasılıkları belirlemek mümkün. Nitekim bu durum bir kuantum sistemine depolayabileceğiniz bilginin klasik bir sisteme depolayabileceğinizden daha fazla olduğunu da gösterir.)
Bilgisayarın diğer bir önemli özelliği, bilgiyi işlemesi. Bu, bir sürü bitlerden oluşan bir dosyayı açıp üzerine değişiklikler yapıp bitleri değiştirmeniz anlamına da gelir. Devre boyutunda işler biraz daha karmaşık. Bir elektronik mühendisi için bilgi, sinyalle eşdeğer olduğundan, bilginin işlenmesi sinyalin işlenmesi demek. Bir sinyalin fiziksel anlam taşıyan özellikleriyle (genlik-frekans-faz) oynayarak sinyali farklı bir sinyale dönüştürebilirsiniz, yani sinyali işleyebilirsiniz. Bir sinyal tek bir sinüs eğrisi olmak zorunda değildir, aksine birçok sinüs eğrisinin birleşiminden oluşmuş olabilir. Dolayısıyla karşınızda sonsuz çeşitte sinyal olabilir, aynı sonsuz sayıda fonksiyon düşleyebildiğiniz gibi. Her bir uygulama için farklı metotların olduğunu göz önünde bulundurursanız, sinyal işleme alanının ne kadar geniş olduğunu tahmin edebilirsiniz. İşin matematiksel kısmı bu kadar genişken elbette devreye uygulanma tarafı da bir bu kadar geniş.
Şimdi tüm bunların bir de kuantum versiyonunu düşünün. Nasıl bir bilgisayar mühendisi kodunu yazmadan önce algoritma (sinyal işleme reçetesi) oluşturuyorsa, benzer şekilde kuantum algoritma denilen bir alan mevcut. Klasik bir algoritma bitler üzerinde işlem yaparken, kuantum algoritma kubitler üzerinde kuantum etkilerini de kullanarak işlem yapıyor. Nasıl klasik bir bilgisayar, klasik bir algoritmayı koşuyorsa bir kuantum bilgisayarı da bir kuantum algoritmayı koşuyor.
Kuantum bilgisayar için bir kuantum devre teorisi de var. Nasıl klasik bir algoritmada mantık kapılarını (ve, ya da, değilleme vs.) kullanıyorsak, kuantum algoritmaları koşmak için kuantum kapılarını kullanıyoruz. İşin özü, elektronik ve bilgisayar mühendisliğinde düşünebileceğiniz ne varsa kuantum versiyonuna da uygulanmaya çalışılıyor. Mesela kuantum etkilerinin ortaya çıktığı diğer alanlardan biri haberleşme ve kriptografi teorileri.
Peki neden henüz bir kuantum bilgisayarı kullanmıyorsun?
Kuantum hesaplama araştırmaları birçok alanda disiplinler arası bir şekilde yapılıyor. Yukarıda anlattıklarımın (kuantum devre teorisi, kuantum bilgi teorisi ve işlemesi, kuantum algoritmaları vs.) yanı sıra donanımsal kuantum hesaplama araştırmaları da söz konusu. Elektronik bir bilgisayar, elektronu kullanarak çalışıyor, fakat henüz kuantum bir bilgisayar için hangi fiziksel tabanın kullanılacağı kesin değil. Bunun en büyük nedeni, hiçbir fiziksel tabanın bir diğerine ezici bir şekilde dominant olamaması. Yani her fiziksel tabanın kendince artıları ve eksileri var.
Kuantum hesaplama çalışmaları ilk olarak nükleer spinleri kubit olarak kullanmayla başlıyor. Nükleer manyetik rezonans (NMR) denilen yöntem ile bazı özellikleri sağlayacak moleküller üzerinde ufak kuantum çipleri tasarlamanız mümkün. İki kubitli işlemcileri rahatça tasarlayabilirsiniz ve iki kubitle çalışacak algoritmaları bu sistemde koşturabilirsiniz (gerçekten çalışıyor!). Aslında doğanın size sunduğu doğal çipler bunlar, bu açıdan da oldukça etkileyici. Fakat kubit sayısını arttırmaya başladıkça moleküller karmaşıklaşıyor ve bir noktadan sonra başa çıkılamaz hale geliyor, kısacası NMR sistemleri genişleyebilir değil. Kimse sadece 13 kubitle çalışacak bir kuantum bilgisayarı istemez.
NMR dışında birçok diğer yöntem var. Optik kubitler -ışık- ya da süperiletken kubitler de kuantum bilgisayarı tasarlayabilirsiniz. Elektron spinleri, kuantum noktaları, iyon tuzakları da yine diğer yöntemler. Hepsinin ortak noktası, öyle ya da böyle ikili sistemlerden oluşmuş olmaları, yani 0'ı ve 1'i temsil eden durumlardan. Her birinde araştırmalar sürüyor ve her biri kendince avantajlara ve dezavantajlara sahip. Örneğin benim çalıştığım süperiletken kubitler, elektronik teknolojisini kullanıyor. İnsan tasarımı kuantum sistemler oldukları için, genişleyebilir özelliğe sahipler, yani yüzlerce, binlerce kubitle tasarlamak mümkün. Öte yandan kuantum bilgisayarının en büyük problemlerinden biri bilginin zamanla kaybı. 'Etkileşim' aklında bulunması gereken diğer önemli kavram. Temelde bütün deneylerimiz ve gözlemlerimiz bir etkileşim sonucudur. Farklı parçacıkların ya da alanların birbiriyle etkileşimi. Kuantum bilgisayarının çevreyle etkileşimi sonucunda da bilgi sistemden çevreye yayılır ve bu belirli bir zamanda olur. Bilginin çevreye yayılma süresi de her kuantum sistemi için farklıdır. Süperiletken sistemlerde bu süre diğerlerine göre düşük, dolayısıyla bir dezavantaj.
Kuantum Hesaplama alanında çalışmak için ne okumalısın?
Elimden geldiğince alanın ne kadar disiplinler arası olduğunu anlatmaya çalıştım. Bu alanda çalışanların çoğunluğu fizikçiler olmakla beraber, büyük miktarda matematikçi, bilgisayar bilimcisi ve elektronik mühendisi de bulmak mümkün. Aslında alan hepsinin ortak çalışmasının bir ürünü. Kuantum hesaplama ve kuantum bilgisayarını yapma çabaları ortaya sadece pratik bir ürün çıkartma hevesi kesinlikle değil. Kuantum bilgisayarının klasiğe oranla daha güçlü olacağı düşünülmekle beraber, alan oldukça temel fiziksel sorulara gebe. Bence bunlardan biri, bu alanın açık kuantum sistemlerini incelememize olanak vermesi. Fiziksel bir sistemin çevreyle etkileşimini anlamak için önemli bir araç, kuantum hesaplama. Ayrıca genel olarak 'etkileşim'i ve 'ölçme-gözlemleme' kavramlarını da aydınlatacak gibi duruyor. Kısacası temel kuantum etkilerini anlamak için müthiş bir olanak.
Benim önerim, işin neresiyle ilgileniyorsanız onu okumanız yönünde. Yani elektronik mühendisi olmak istiyorsanız ama bu alan da aklınızı çeliyorsa, yine de elektronik mühendisliği okuyun. Fakat ne okursanız okuyun yanına en azından bir fizik yandalı koymaya çalışın. Çünkü kuantum mekaniğinde sağlam bir anlayışa ve kavrayışa ihtiyacınız olacak. Buna sahip olduğunuz zaman, örneğin elektronikteki kabiliyetlerinizi kuantum hesaplama alanında kullanabilirsiniz.
Umarım yararlı olmuştur. Herkese mutlu hayatlar.
programming etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
programming etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
2013-02-05
sabahlarken karacisim ışıması integrali
Ryden'ın kitabını çalışıyordum. Mutlu mutlu evreni hayal ederken, bir fark ettim ki Planck'ın düzenlediği /ve yorumladığı karacisim ışıması fonksiyonunu, cisimden yayılan ışımayı bulmak adına hiç entegre etmeye kalkışmamışım! Hani böyle adım adım yapmamışım.
Büyük bir utanç içinde kalemi elime aldım ki bir de baktım, karşımdaki elemantary bir integral değil. Hımm dedim, o zaman ben bunu önce bir symbolic programa (nam-ı diğer SAGE, openware symbolic language) koyayım. Sage bana ne idüğü belirsiz bir şeyler verdi. Ben de çareyi yine google-da buldum.
Zaten bu entegrasyon da öyle çocuk oyuncağı değilmiş. Üzerine 1976'da yazılmış bir makale var, -yakın zamanda sitemin ilginç/yararlı makaleler kısmına ekleyeceğim.
Bir de tabii güzel bir kaynak buldum. -> Radiance: Integrating the Planck Equation.
Buradan adım adım integralin nasıl alındığını takip edebilirsiniz. Sonuç Riemann-Zeta fonksiyonları cinsinden çıkıyor.
Ayrıca aynı sayfanın alt kısmında ufak bir menü var. Karacisim ışımasıyla ilgili ufak ama kompakt bir başlangıç bilgisinin yanı sıra entegrasyonun C++'da yazılmış kodunu veriyorlar.
İşe yarar. Hem de çok yarar.
Büyük bir utanç içinde kalemi elime aldım ki bir de baktım, karşımdaki elemantary bir integral değil. Hımm dedim, o zaman ben bunu önce bir symbolic programa (nam-ı diğer SAGE, openware symbolic language) koyayım. Sage bana ne idüğü belirsiz bir şeyler verdi. Ben de çareyi yine google-da buldum.
Zaten bu entegrasyon da öyle çocuk oyuncağı değilmiş. Üzerine 1976'da yazılmış bir makale var, -yakın zamanda sitemin ilginç/yararlı makaleler kısmına ekleyeceğim.
Bir de tabii güzel bir kaynak buldum. -> Radiance: Integrating the Planck Equation.
Buradan adım adım integralin nasıl alındığını takip edebilirsiniz. Sonuç Riemann-Zeta fonksiyonları cinsinden çıkıyor.
Ayrıca aynı sayfanın alt kısmında ufak bir menü var. Karacisim ışımasıyla ilgili ufak ama kompakt bir başlangıç bilgisinin yanı sıra entegrasyonun C++'da yazılmış kodunu veriyorlar.
İşe yarar. Hem de çok yarar.
2012-06-12
Linear Regresser!
The following code is a simple linear regression computation in any four models, exponential, power, saturation or linear.
A memory from my numerical class. Have fun!
A memory from my numerical class. Have fun!
2012-05-20
2.2'nin Sonunda Hesaplaşmalar - II
Yorucu bir günün ardından, üstelik daha yapmam gerekenler bitmemişken her şeye dur dedim. Biraz gevezelik edeyim.
Bu dönem bazı açılardan tatmin edici, bazı açılar üzücü oldu. Şu bir gerçek lisansın ilk senesi bana kayda değer pek bir şey katmadı. Çünkü zaten katabileceği şeyleri daha liseden çalışmaya başlamıştım. Dolayısıyla bi'nevi tekrardı. İlk senenin en yararlı dersleri şüphesiz lineer cebir ve olasılık dersleri oldu. Gerçi calculus 2'de görülen integral calculusunu yabana atmamak gerekiyor. Yine de orada kanıtlanan teoremlerin elektromanyetik derslerinde fiziksel uygulamalarını yapınca daha bir yerleşiyor her şey yerli yerine. Öte yandan 1.2.de Barry Stocker'dan aldığım felsefe dersi dönemin tuzu biberi olmuştu.
Ancak dediğim gibi...
Bu dönem bazı açılardan tatmin edici, bazı açılar üzücü oldu. Şu bir gerçek lisansın ilk senesi bana kayda değer pek bir şey katmadı. Çünkü zaten katabileceği şeyleri daha liseden çalışmaya başlamıştım. Dolayısıyla bi'nevi tekrardı. İlk senenin en yararlı dersleri şüphesiz lineer cebir ve olasılık dersleri oldu. Gerçi calculus 2'de görülen integral calculusunu yabana atmamak gerekiyor. Yine de orada kanıtlanan teoremlerin elektromanyetik derslerinde fiziksel uygulamalarını yapınca daha bir yerleşiyor her şey yerli yerine. Öte yandan 1.2.de Barry Stocker'dan aldığım felsefe dersi dönemin tuzu biberi olmuştu.
Ancak dediğim gibi...
2012-04-09
bisection method in finding root
This code is a simple root finder with bisection method. What makes it different from other bisection codes is the control mechanism I implemented into it.
You do not need to know where the root stays nor draw in matlab and find it out.
You need only to type an interval and sensitivity element into it. If the root lies outside of the interval, it enhances the search interval by itself. It makes it for some time and still if there is no response, the program suspects of the sensitivity element, 'delta' and asks for a new element to search again.
Here it's...
You do not need to know where the root stays nor draw in matlab and find it out.
You need only to type an interval and sensitivity element into it. If the root lies outside of the interval, it enhances the search interval by itself. It makes it for some time and still if there is no response, the program suspects of the sensitivity element, 'delta' and asks for a new element to search again.
Here it's...
Newton Raphson Algorithm for Multiple Roots
Hi there,
Following source code is computed in Python. It is a basic NR-Multiple Root Calculator that works with three simultaneous system of equations.
If I have time, I'll work on a general case, (which is tough since it requires to get function from the user).
Following source code is computed in Python. It is a basic NR-Multiple Root Calculator that works with three simultaneous system of equations.
If I have time, I'll work on a general case, (which is tough since it requires to get function from the user).
2012-04-07
Projekent ve Piezo Python
Geçtiğimiz üç gün itü ieee kulübü Projekent etkinliğini düzenledi. Biz de kulübün laboratuvarı olarak Miniprojekent kısmını çıkarttık. Yarışma ve sergilere doymuş bir insan olarak benim için amaç beni geliştirecek bir şeylerle uğraşıyor olmak. Ama madem arkadaşlar bu etkinlik için hazırlanıyorlar, ben de üzerinde çalıştığım projeyi buraya mal edeyim dedim.
Oyun oynamayı sevmem, fakat garip bir şekilde oyun yaratmayı seven bir insan olarak çıktım!..
Oyun oynamayı sevmem, fakat garip bir şekilde oyun yaratmayı seven bir insan olarak çıktım!..
2011-11-20
dokun-gaç
Geçen yazıda sizinle pişti oyun programımı paylaşacağımı söylemiştim.
Ödevi geçtiğimiz çarşamba teslim ettim, pazartesi günü de vizesini verdim. Sınavlar üzerine konuşulmaya gerek olmayan aktiviteler, ancak belirtmem gerekiyor ki lisans hayatında bazı sınavlar gerçekten şık olabilirmiş. Sınav 4 saat sürdü. 7 tane sorumuz vardı, teker teker hepsinin kodlarını yazdık, çalıştırdık, doğruladık. Daha önce hiç böyle bir sınav tecrübelememiştim.
Sadece haftamda değil, uzun süredir diğer meşgul olduğum konu ise şu:
Treachery of Images, Rene Magritte (Resimde "Bu bir pipo değildir" yazılı)
2011-11-09
karalamaca
Uzun zaman yazmayınca geri dönmesi zor oluyor. Bu durumu bu meşgul hayatımda birden fazla kez tecrübeleyerek öğrendim. Bahsedecek çok şeyimin olup bahsedecek vakte sahip olmamam kilit noktası. Evet, ne yazık ki şu sıralar lisans günlüğü tutamıyorum.
Garip bir şekilde bu dönem hiç düşünmediğim kadar yoğunum. Üstelik bu yoğunluk fikrimce tavan yapmış değil! Kısacası bu tarz bir paradoksun içinde dönüp dolaşıyorum. Aldığım kredi sayısı sadece 23! Pazartesi sabahtan, perşembe 10'dan sonra dersim yok. Neredeyse bir günüm boş ve nasıl bu kadar yoğun olduğuma yaklaşık bir aydır anlam veremiyorum. İşin aslı her bir dersin ders yükünün fazla olması ya da bazen benim kendime ders yükü çıkartıyor olmam ve elbette ders dışı etkinliklerim!
Şunu belirtmem gerekiyor ki ders dışı etkinlikler konusunda olması gereken bir metamorfoza girmek üzereyim. Bazı şeyler konusunda hevesimi epeyce aldığımı düşünüyorum ki artık bana epey ağır geliyor yapması ve oturup fizik anlamak/denemek varken bunlarla zaman geçirmek vicdanımda derin çukurlar oluşturuyor, örneğin bir şeylere başkanlık/liderlik etmeye çalışmak gibi. Üniversiteye girmeden önce bir şeyler kurmayı aklımdan geçirmeyeceğim bir yerlere gitmeyi aklıma koymuştum. Bu seçimimde çok başarılı olamasam da konu hakkındaki umursamazlığım sonuna dek sürüyor! Sevdiğim şeylere ve doğal olarak kendime daha fazla vakit ayırmak için toplumsal anlamda sorumsuz olmayı kabul ediyorum. Anlaştık.
Acayip bir C hocam var. Programlama konuları benim için her zaman fiziksel konular arkasında olmasına karşın, kendisi bana bilgisayar işlemcisine komut verebilmenin ne kadar mükemmel bir iş olduğunu gösterdi! Artık MSDOS komut penceresini açtığımda kendimi sadece siyah-beyaz bir ekrana sayılar giriyormuş gibi değil de bu bilgisayarın aklını yönetebiliyormuş gibi hissediyorum. itü'nün kalıplaşmış bazı derslerine (sözümona BIL104 ki çok şanslı olup almadığım için arkadaşlara verilen ödevlerden ve ders işleme tarzlarından biliyorum) devrim niteliğinde bakış açısıyla girdi derse. En başında amacını, niyetini büyük sözlerle anlatan hocaları seviyorum. En azından derse vereceğim haftaların değerli olacağına dair inancım artıyor. O dersin sonunda değişeceğimi biliyorum! Tüm olay da bu değil mi zaten? Değişmek ve değişmemek..
Bu kadar övdüm durdum; ama kafanızda somut bir şey canlanmadı biliyorum. Hoca TI'da çalışmış ve C dersini işlemci tasarlamış, yapmış ve kullanmış bir insandan dinlemek gerçekten ayrı bir zevkmiş. Diğer derslerle olan farkı şuradan biliyorum, bizim ilk ödevimiz C ile bir Pişti programı yazmaktı ki dönemin 5. haftasında verilmiş olmakla beraber o sırada temel her şeyi (pointers dahil olmak üzere bir miktar veri yapıları ve stack gibi hafıza birimleri + bilgisayarın hafızasının gerçekten nasıl çalıştığını kavratacak kavramlar) bitirmiştik. Bu sırada 104 alan arkadaşların ödevi ise basit toplama/çıkartma/bölme/çarpma işlemi yapan program yazmaktı!
Bunu keyfime anlatmıyorum. Problem şu ki, okula 2010'dan itibaren girmiş Elektronik öğrencileri (ki aslında onlar EHB öğrencileri) ile bir sene önce girmiş Elektronik öğrencileri (ki onlar EHB öğrencileri değil) aynı programlama yetisine sahip şekilde yetiştirilmiyorlar. Çünkü ikinci sırada olanlar dediğim ve tüm okuldaki tüm bölümlere verilen C dersini alıyorlar, (104). Benim anlam veremediğim elektronik gibi programlamayla iç içe olacak bir bölüme o kadar sene nasıl hiç düşünmeden 104 dersini vermişler, bu. Benzer durumlar tüm lisans hayatımız için geçerli. Zorunlu Numerical Methods, Data Structure derslerimiz, ilk defa bizimle lisansa verilmeye başlanan Theory of Complex Functions dersi. Kim bilir daha nelerle karşılaşacağım?
Sıradışı kod yazdığımı düşünmüyorum, sadece istekli olarak bu işi öğreniyorum. Zaten ilk programlama deneyimim de değil. İlk programımı Python'da yazmıştım, US'teyken. İşte o programla gurur duyuyorum. Ancak dönüp baktığımda bilgisayar bilimi açısından değil de astronomi açısından müthiş bir program olduğunu da fark etmiyor değilim. Cebirsel bir metod olan yörünge hesaplamada Gauss yöntemini öğrenmiştik, amaç bu yöntemi verdiğimiz datalara uygulayacak olan bir program yazmaktı. Bu programa image processing datalarımızı dahi eklemiştik! Programın sonunda verdiği ise orbit elemanlarıydı. Kocaman bir hesaplama programı yazmıştım kısacası.
Herkes bana ilk C'yi öğrenmek gerek, en temel dil o, falan demişti; ancak ben şans eseri öğrendiğim sıralamadan epey memnunum. Sanırım ilk C ile karşılaşsaydım snytax'ı içinde kaybolurdum. Python baktığınızda anlaması çok kolay bir dil. Nesne tabanlı diller hakkında henüz çok detaylı bilgim yok, temel kavramlarını biliyorum sadece, o nedenle Python'un nasıl çalıştığına dair burada pek bilgi veremeyeceğim şu anda, ancak görüldüğü üzere nasıl çalıştığını bilmeden sadece syntax'ını öğrenerek epey kod yazmışlığım var. İşin aslı klasik bir cümle olacak ama algoritma mantığını oturtmak. Bu gerçekten elinizle bir problem çözmeye kalkıştığınızda dahi işe yarayan bir mantık. Size adım adım ilerlemenizi öğütleyen bir mantık. O nedenle syntax'ı karışık olmayan bir dille bu mantığı oturtmak ardından ikinci bir programlama diline geçmek çok mantıklı geliyor bana. C'yi geçen sene kulüplerde verilen eğitimlerde görmeye başlayınca problem çekmeden ısınıvermiştim. Bu dönem ise aslında dilin bilgisayarla etkileşimini öğreniyorum temel olarak.
Merak edenlere Python'da yazdığım kodu atabilirim, biraz visual öğrendiğimde bu yazdığım kodun renkli ve hareket edenini yazmayı planlıyorum.
Python'u aşağıdaki linkten indirebilirsiniz,
Bir iki hoş eklentiden sonra da Pisti programımın exe.sini paylaşacağım.
Ha tabi nereden nereye geldik? Ama zaten hep böyle oluyor.
Giderayak bir parçacık fiziği yazısı linki vereyim. Hoşuma gittiğini belirmeliyim. Deneysel fizikçi olmak zor.
iyi çalışmalar.
Kaydol:
Kayıtlar (Atom)
