Mühendislik Fiziği veya Mühendislik Matematiği
Yeterince anlaşılamamış bir bilim sihirden ayırt edilemez.
Biliyorum şu ana kadar alışılagelmişin dışında bir öneri olacak ancak lisede matematik ve fizik dersleri, üniversitede fizik ve matematik mühendisliği bölümleri birleştirilmeli, Mühendislik vb bölümlerde fizik ve matematik dersleri mühendislik fiziği adı altında birleştirilmelidir.
Temel doğa bilimlerini yeterince özümsememiş ve açıklama getirememiş toplumlar, inançlar hiçbir zaman gerçek anlamda yükselemezler aksine zaman içerisinde yok olurlar.
Fizik ve Matematik ilişkisi tavuk-yumurta ikilemine oldukça benzemektedir. Hangisinin hangisinin atası olduğu, hangisinin daha önemli, değerli olduğu baya bir polemik konusu olsa da; matematik basit bir sayılar kümesi değildir, matematik özünde fiziksel olayları bir mükemmellik içerisinde/çervesinde anlatan bir dildir.
Örneğin doğada yani fiziki dünyada mükemmel bir üçgen yoktur. Ancak matematik’te vardır. Matematik biz mükemmel bir üçgen çizebilir veya mükemmel bir üçgeni tarif edebilir. Bu ve buna benzer birçok örnek ile Matematik, fiziksel olayları mükemmel bir şekilde açıklama dilidir deriz. Ancak herşeye rağmen bana göre Fizik’sel gelişmeler ve ihtiyaçlar yeni matematik teorilerini yaratmıştır veanlamlandırmıştır. Fizik burada biraz daha itici güçtür diyebilirim.
Fizik vs Matematik Disiplinleri
Bu bağlamda Fizik ile Matematik çok ayrı disiplinlerdir, birleştirilmemelidir itirazına da kısa bir cevap vermeyi deneyeyim. Değillerdir, birisi olmadan diğerini kesinlikle gerçek anlamda anlayamayız. Fizik eğitimi alanlar bir Matematikçi’den çok Matematik bilirler, öğrenirler. Buna yönelik çok ağır dersleri vardır, benim vardı. Matematiği yetersiz birisi asla iyi bir Fizikçi olamaz. Yani ikisi bir arada olmak zorundadır. Matematik’te Fizik dersi yok diyeceksiniz. Benim itiraz ettiğim eksilikte budur. Matematikçiler, Matematiğin gerçek/fiziksel etkilerini öğrenmediklerinden Matematiği anlamış ya da özümsemişlerdir diyemeyiz, ezberlemişlerdir diyebiliriz. Aradaki farkı da siz bilin. 🙂
Fizik/Matematik dersleri gerçek anlamda öğrenilmez, özümsenmez sadece ezberlenir. Özellikle matematik bu konuda oldukça öksüzdür, yetimdir. Çünkü her öğrenci bu iki disiplin için aklında daima gizli bir ajanda, bir itiraz taşır. “İyi de hocam biz bunu nerede kullanacağız?“. İnşaat Mühendisliğindeki statik hesapları, işlemcilerdeki çekirdek kuralları Fizik kurallarının Matematiksel olarak ifade edilmesi midir, değil midir? Müteahit çok olduğundan inşaattan örnek vermesem bu yazı öksüz kalırdı gibi…
Örneğin lise/üniversitelerin bazı evrelerindeki matematik derslerinde çeşitli fonksiyonlar aracılığı ile bazı garip grafikler çizdirilir ya da “i” sayısından yani hayali/sanal sayılardan bahsedilir.
Hepimiz eminiz ki tüm öğrenciler bu derslerde, ders süresi boyunca kendi kendilerine “bizi bunu nerede kullanacağız” diye tekrarlı bir döngüye girdiklerinden dersi dinlemiyorlar, dinleseler de kullanacakları yeri bilmediklerinden yani gerçek/fiziksel dünya ile ilişkilendiremediklerinden özümseyemiyorlar. Sadece sınavlar için ezberliyorlar.
Not: Ezber ilk ve orta dereceli okullar için harika bir beyin jimnastiğidir.
Fizik ve Matematik birleştirildiğinde…
O derslerde o garip grafikler çizdirilirken, grafiğin aslında hangi fiziksel olayları açıkladığı ya da hangi fizikler durumlarda kullanılabileceği örneklense öğrenciler/genç beyinler konuyu daha hızlı kavrayacak ve özümseyecektir. Belki 10 sene sonra o grafik hesaplamalarını unutacaklar ancak grafik ile fizik arasındaki ilişkiyi unutmayacaklardır.
İki tane net örnek üzerinden tartışalım.
1- Sanal Sayılar, Fizik’sel anlam açısından kısa bir bakacağız.
2- 1’den 2 milyara kadar olan sayıların toplanması, “Yazılım Mühendisliği” çerçevesinden bakacağız.
Bu iki örneği kendi uzmanlık alanlarım olan farklı disiplinlerden seçtim. Ancak meraklıları bilecektir ki Fizik ya da Matematik’in dahil olmadığı bir disiplin ya da örnek yoktur. İnşaat Mühendisliğindeki statik hesaplamaları nereden geldi sanıyorsunuz? Ya da elektronik mühendisliğindeki kapasitörler, ya da işlemcilerdeki çekirdeklerdeki kuralları kim belirliyor?
Sanal Sayılar – Karmaşık Sayılar
Matematikte sanal sayılar var, bazıları bunlara ingilizce “complex numbers” dan ötürü karmaşık sayılar dese de “üstün sayılar” demek daha doğru bir çeviri olacaktır kanaatindeyim. Üstün sayılara aynı zamanda sanal denmesinin nedenini sorsam bir matematikçinin hiç araştırma yapmadan, doğrudan, bir çırpıda cevap veremeyeceklerine eminim.
Sanal sayılar tanımlamasını yapmayacağım ancak Fizik bilimi ile hızlı bir bağ kuracağım. Işık hızının ötesindeki durumlarda bizim bildiğimiz gerçeklikten uzaklaşırız. Yani “gerçek sayılar”dan uzaklaşır “sanal sayılar”a geçiş yaparız.
Işık hızı geçilemez kısmına hiç girmeyelim, orası ayrı bir başlık. Bu konu için Evrim Ağacının aşağıdaki videosunu izlemenizi tavsiye ederim. Paylaştığım andan itibaren 1dk sını bile izleseniz yeterli olabilir.
Işık hızının ötesinde kütleler negatif bir sayının kareköküne bağlı olarak olarak hesaplandığından gerçek dünyadan çıkıp hayali yani sanal bir dünyaya giriş yapıyoruz. Şimdi bir öğretmen ya da akademisyen olarak Matematik’te “karmaşık sayılar”ı anlatırken gerçek/fizik’sel bir örnek ile açıklama yapsak nasıl olurdu, hiç hayal ettiniz mi? Desek ki karmaşık sayılar ile seviye fizik’sel hesaplamalar yapabiliyoruz. Örneğin ışık hızının ötesindeki takyon’ların davranışlarını hesaplamak için karmaşık-sanal sayılar’ı kullanıyoruz.
Burada akla gelebilecek bir iki soruya kısaca açıklık getirelim.
Karmaşık sayıların ile takyon’ların icadı aynı zamanlarda değil, o nedenle bu örnek geçmişte çalışmaz diyenlerimiz olacaktır. Ben bu örneği özellikle kullandım.
Birincisi kendisini güncellemeyen öğretmen/akademisyen çok gereksiz bir canlı türüdür. Mümkün olduğunca hızlı şekilde eğitim ve akademik camiadan men edilmelidir. Bu gereksiz canlılar dün gerçek/fizik’sel dünya dan örnek mi veriyorlardı ki bugün, yarın versinler.
İkincisi çok ileri bir konu olan Parçacık Fiziğinden örnek verdim ki Matematiğin tüm evreni mükemmel şekilde anlatmaya çalışan bir dil olduğuna dair bir kıvılcım yakabileyim. Fizik “gerçeklik” olmadan Matematik sadece ezberlenmiş bir peri masalından öteye gidemez.
Yazılım Mühendisliği
Birçok konferansta ya da iş görüşmesinde sorduğum bir soru vardı. Artık baya bilinir olduğundan pek sormam ama örneklerim. Sorduğum zamanlarda ise neredeyse hiçbir yazılım mühendisinden doğru cevabı alamadım. Soru ” 1’den 2 milyar’a kadar olan sayıları 10 defa toplayınız“. Aldığım cevap for döngüsü ile yazılan kodlardı. Bir yazılmcıya 1’den 2 milyara kadar olan sayıları 10 defa topla dediğinizde refleks olarak aşağıdaki gibi bir kod yazıyor. “Daha önceki birkaç makalede JavaScript ile örnekleme yaptım. Birkaç civcivli nokta nedeniyle bu sefer Java ile yapalım. ”
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
public static void main(String[] args) { int max = 2147483647, defa=10, toplam = 0; for(int i = 0; i < 10; ++i){ for(int j = 0; j <= max; ++j){ toplam += j; } } System.out.println("Toplam = " + toplam); } |
Yazılımsal olarak çalışır mı? Çalışır. Algoritma ve verimlilik açısından yeterli mi? Berbat.
(n * (n + 1) / 2) ardışık sayıların toplamı formülü değil miydi? Yazılım Mühendisliğinde matematik dersi yok mu? Var. Peki neden ilk bu aklımıza gelmiyor. Çünkü matematik dersleri anlatılırken veri mimarileri, veri algoritmaları ve hesaplama algoritmaları ile ilişkilendirilmiyor. Yazılım Mühendisliğinde çok katlı integrali kimsenin anlatamayacağı kadar detaylı ya da iyi anlatmanın bir değeri yok. Ey akademik camia! O integral hesaplamasını bir yazılım problemi, bir yazılım algoritması veya bir veri algoritması ile birlikte örnekleyemiyor, açıklayamıyor iseniz; anlatmayın. Sizin de çocukların da vaktine yazık.
1 + 2 + 3 + …n = (n * (n + 1) / 2) * 10
Gelin yukarıdaki basit matematiksel formülü kullanmadığımızda neler olabileceğini birkaç madde ile konuşalım. Yani yukarıdaki for döngüsünün üzerine birkaç yorum yapalım.
1 2 3 4 5 6 7 |
int max = 2147483647, defa=10, toplam = 0; long max = 2147483647, defa=10, toplam = 0; Long max = 2147483647, defa=10, toplam = 0; |
For döngüsündeki ilk atama satırında int, long, Long vb bir çok veri tipi kullanabiliriz. Java kullanacağımız veri tipine bağlı olarak işleyeceği verilere farklı davranacaktır. int, long’a primitive davranırken Long’a object olarak davranacaktır. Object’lere Java’da en pahalı en çok kaynak tüketen veri tipleridir diyebiliriz. Bu da for döngüsünün işlem süresi ve tüketeceği kaynağa doğrudan etki edecek bir ön tanımdır. Bu kural C# vb Java’dan kopya çekmiş birçok dil için geçerlidir. Elimizdeki verilerler ile 3 farklı senaryoyu karşılaştıralım.
- Doğrudan Matematiksel formül ile hesaplama
- int, long gibi primitive veri tipleri ile hesaplama
- Long gibi object tipi ile hesaplama
Yukarıdaki kodu herhangi bir main sınıfta çalıştırıp çalışma sürelerini nano saniye üzerinden ölçerseniz. Cihazınıza bağlı olarak 1. senaryonun 0.2-0.3 nanosaniye, 2. senaryonun 3-4 saniye, 3.senaryonun ise 60-70 saniye de hesaplama işlemini tamamladığını görebilirsiniz. Ben bu testleri yaklaşık 15 sene falan önce yaptım, o zaman ki rakamları paylaşıyorum.
- Sizler kendiniz test ederek, güncel cihazlardaki güncel sonuçlara ulaşabilirsiniz. Ancak süreler kısalsa da orantısal farkların çok azalmayacağını düşünüyorum.
- Buradaki kritik nokta side effects yani yan etkiler. Tanıdığım tüm tester ve yazılımcıların daima görmezden geldiği yan etkiler.
Bu testi yaptığınızda hesaplama süresi açısından nano saniyelerden saniyeler seviyesine çıktığımızı çok net görürsünüz. Aman ne olacak birkaç saniye bekleyiversinler diyebilirsiniz. Peki en iyi ve en kötü senaryo altındaki hesaplamalardaki kaynak tüketimi ne olacak. Topluma açık bir uygulamada benzer bir hesaplamayı 1 kullanıcı çalıştırdığınızda ne olacak hüç düşündünüz mü? Ben söyleyeyim.
Böylesine basit gibi görülen bir hesaplama kodunu bile aynı anda 1 milyon kişi çağırırsa sunucunuz ağlar, öyle böyle değil patlayıncaya kadar ağlar. Denemesi de beyin de bedava. Testi yaparken tekil kaynak tüketiminizi takip edin ve 1 milyon ile çarpın bakalım ne oluyor. Ben bu açıyı burada bırakıp ana konumuza döneyim, detay araştırmaları size kalmış.
Temel Fizik ve Temel Matematik öğretimi lise ve üniversite düzeyinde kesinlikle birlikte olmalıdır. Birine matematiği ya da fiziği ayrı ayrı öğretmek yerine Matematik; Fizik’teki konu akışına bağlı olarak belirli bir ilişki ve düzen içerisinde öğrencilere gereçek/fiziksel örnekler eşliğinde anlatılmalıdır.
Mühendislik vb tüm özelleştirilmiş bilim dallarında ise Matematik veya Fizik ilgili bilim dalındaki konuların içerisinde ya da çok ciddi bir planlama ile pararlel bir akış içerisinde anlatılmalıdır. Böylece genç dimağları ezber kalıplarıdan, ezber zorlamalarından kurtarmış oluruz. Örneğin bir yazılım mühendisiliği öğrencisine ilk yıl tüm matematiği, teorik matematik dayamanın hiç kimseye bir faydası yoktur. Size de onlara da yazık.
Yeterince gelişmiş bir teknoloji sihirden ayırt edilemez.
Arthur C. Clarke
Belki de en sevdiğim sözlerden bir tanesi “Yeterince gelişmiş bir teknoloji sihirden ayırt edilemez” dir. Gerçektentende çağlar öncesine ve ötesine uzanan bir derinliği vardır. Bunu makalemize uyarlamasını da yaptım.
Yeterince anlaşılamamış bir bilim sihirden ayırt edilemez.
Aslında yaptım da denilemz. Teknology kelimesinin kökenine, etimolojisine bakarsak öğrenilmiş yetenek, bilgi ya da sanat gibi anlamlar görürüz. Öğrenilmiş olan herşey aslında bir bilim değil midir? Buradan bir başka makalemize örnek verelim “Bilimin gerçek güç çarpanı DİL“.
Aslında batı kültürleri bilim ile sihri her zaman birbirine karıştırmışlardır. Şifacıları bile büyücü diye az yakmadılar. Vaktim olursa bir gün bu konuya birgün bir makale yazarım. İlginç ve hiç irdelenmemiş bir konu. Aslında bu konu tam bir akademik tez çalışması olabilirdi.
Batı kültürleri bilim ile sihri her zaman birbirine karıştırmışlardır. “Alper Akalın”
Evren ve İnsan doğası bizi bir döngüye sokuyor. “Anlayış“. Etrafızmıdakileri anlamlandırma, anlama şeklimiz; bilimimizi, teknolojimizi ve gelişmişlik seviyemizi belirliyor.
Sevgiler
Alper