<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://ekremekc.github.io/feed.xml" rel="self" type="application/atom+xml" /><link href="https://ekremekc.github.io/" rel="alternate" type="text/html" /><updated>2026-04-15T13:26:46+03:00</updated><id>https://ekremekc.github.io/feed.xml</id><title type="html">Ekrem Ekici</title><subtitle>personal description</subtitle><author><name>Ekrem Ekici</name><email>ekrem.ekici@kfupm.edu.sa</email></author><entry><title type="html">New numerical healing metric for wound healing</title><link href="https://ekremekc.github.io/posts/2026/02/post-1/" rel="alternate" type="text/html" title="New numerical healing metric for wound healing" /><published>2026-02-04T00:00:00+03:00</published><updated>2026-02-04T00:00:00+03:00</updated><id>https://ekremekc.github.io/posts/2026/02/post-1</id><content type="html" xml:base="https://ekremekc.github.io/posts/2026/02/post-1/"><![CDATA[<p>We have introduced a new numerical healing metric for wound healing using FEM!</p>

<p>If it is interesting, take a glance at the paper from <a href="https://ekremekc.github.io/files/articles/2025BMM.pdf">here</a>.</p>

<p>We have strong open-source modelling capabilities in our group in KFUPM. If you are interested in wound healing modelling, or hydrogel design for drug delivery applications, please do not hesitate to send us an e-mail to <a href="mailto:ekrem.ekici@kfupm.edu.sa">ekrem.ekici@kfupm.edu.sa</a>!</p>

<p>I am grateful to my colleague Ahmed S. Dalaq for conceptualizing the need for a precise wound healing modeling. Further thanks can go to IRC-Biosystems and Machines for the fruitful environment and Yükseköğretim ve Yurt Dışı Eğitim Genel Müdürlüğü for funding my postgraduate studies.</p>

<p>If you prefer journal format version of the paper, the link is <a href="https://link.springer.com/epdf/10.1007/s10237-025-02029-3?sharing_token=70oM1C-h5SYVQJndAmvvofe4RwlQNchNByi7wbcMAY4UroAo9ToHyHBv-K-wBVlZxjqdFbsvCMxykbTaITmqF1g-6ATB1XiVJVHP0TB_RE9oLBPyLeMsPOyIgAXJqLi3iHJLC6Lk_-WRGlYw_AtQT9VI0lc0ifaJpTmb2_jcXI4%3D">here</a>.</p>]]></content><author><name>Ekrem Ekici</name><email>ekrem.ekici@kfupm.edu.sa</email></author><category term="english" /><summary type="html"><![CDATA[We have introduced a new numerical healing metric for wound healing using FEM!]]></summary></entry><entry><title type="html">We are at IUPESM2025 in Adelaide, AU!</title><link href="https://ekremekc.github.io/posts/2025/10/post-1/" rel="alternate" type="text/html" title="We are at IUPESM2025 in Adelaide, AU!" /><published>2025-10-02T00:00:00+03:00</published><updated>2025-10-02T00:00:00+03:00</updated><id>https://ekremekc.github.io/posts/2025/10/post-1</id><content type="html" xml:base="https://ekremekc.github.io/posts/2025/10/post-1/"><![CDATA[<p>We are presenting at <a href="https://wc2025.org/">IUPESM2025</a> in Adelaide, Australia.</p>

<p>We have two papers:</p>

<ul>
  <li>
    <p><a href="https://microsites.arinex.com.au/iupesm2025/pdf/abstract_163.pdf">Design and performance testing of implantable leads for ventricular assist devices</a>, by Ekrem Ekici, Faleh AlThiyabi and Ammar Alzaydi</p>
  </li>
  <li>
    <p><a href="https://microsites.arinex.com.au/iupesm2025/pdf/abstract_565.pdf">Computational modeling and dispersion tracking of drug within wound dressing hydrogel</a>, by Fatma Alzamel, Ekrem Ekici and Ahmed Dalaq</p>
  </li>
</ul>

<p><a href="/images/posts/2025/IUPESM_entrance.jpeg"><img src="/images/posts/2025/IUPESM_entrance.jpeg" style="border: 1px solid grey; opacity: 0.7; transition: 0.3s;" onmouseover="this.style.opacity=1;" onmouseout="this.style.opacity=0.7;" /></a></p>

<p><a href="/images/posts/2025/IUPESM_motivation.jpeg"><img src="/images/posts/2025/IUPESM_motivation.jpeg" style="border: 1px solid grey; opacity: 0.7; transition: 0.3s;" onmouseover="this.style.opacity=1;" onmouseout="this.style.opacity=0.7;" /></a></p>

<p><a href="/images/posts/2025/IUPESM_acknowledgement.jpeg"><img src="/images/posts/2025/IUPESM_acknowledgement.jpeg" style="border: 1px solid grey; opacity: 0.7; transition: 0.3s;" onmouseover="this.style.opacity=1;" onmouseout="this.style.opacity=0.7;" /></a></p>

<p>For all the abstracts, click <a href="https://microsites.arinex.com.au/iupesm2025/content.html">here</a>.</p>]]></content><author><name>Ekrem Ekici</name><email>ekrem.ekici@kfupm.edu.sa</email></author><category term="english" /><summary type="html"><![CDATA[We are presenting at IUPESM2025 in Adelaide, Australia.]]></summary></entry><entry><title type="html">PhD thesis became online</title><link href="https://ekremekc.github.io/posts/2024/10/post-1/" rel="alternate" type="text/html" title="PhD thesis became online" /><published>2024-10-11T00:00:00+03:00</published><updated>2024-10-11T00:00:00+03:00</updated><id>https://ekremekc.github.io/posts/2024/10/post-1</id><content type="html" xml:base="https://ekremekc.github.io/posts/2024/10/post-1/"><![CDATA[<p>PhD thesis “<em>Shape Optimization of Annular Combustors with an Open Source Parallelized Thermoacoustic Helmholtz Solver</em>” became recently online on Apollo. You can find it in this <a href="https://www.repository.cam.ac.uk/items/6da680ea-f38c-4712-9ac1-3858f1cad1a9">link</a>.</p>

<!-- ![cover](/images/posts/2024/thesis_cover.png) -->
<p><img src="/images/posts/2024/thesis_cover.png" style="border: 1px solid grey;" /></p>]]></content><author><name>Ekrem Ekici</name><email>ekrem.ekici@kfupm.edu.sa</email></author><category term="english" /><summary type="html"><![CDATA[PhD thesis “Shape Optimization of Annular Combustors with an Open Source Parallelized Thermoacoustic Helmholtz Solver” became recently online on Apollo. You can find it in this link.]]></summary></entry><entry><title type="html">British Applied Mathematics Colloquium in Newcastle</title><link href="https://ekremekc.github.io/posts/2024/04/post-1/" rel="alternate" type="text/html" title="British Applied Mathematics Colloquium in Newcastle" /><published>2024-04-10T00:00:00+03:00</published><updated>2024-04-10T00:00:00+03:00</updated><id>https://ekremekc.github.io/posts/2024/04/post-1</id><content type="html" xml:base="https://ekremekc.github.io/posts/2024/04/post-1/"><![CDATA[<p>I was pleased to be invited to British Applied Mathematics Colloquium (BAMC) 2024 in Newcastle, UK. And received nice questions for my presentation “Adjoint Based Shape Optimization for Thermoacoustic Stability of Combustors Using Free Form Deformation”.</p>

<p><img src="/images/posts/2024/BAMC_newcastle.jpeg" alt="BAMC" /></p>
<center>British Applied Mathematics Colloquium (BAMC), 2024</center>]]></content><author><name>Ekrem Ekici</name><email>ekrem.ekici@kfupm.edu.sa</email></author><category term="english" /><summary type="html"><![CDATA[I was pleased to be invited to British Applied Mathematics Colloquium (BAMC) 2024 in Newcastle, UK. And received nice questions for my presentation “Adjoint Based Shape Optimization for Thermoacoustic Stability of Combustors Using Free Form Deformation”.]]></summary></entry><entry><title type="html">Türkçe Sonlu Elemanlar Modülü</title><link href="https://ekremekc.github.io/posts/2023/10/post-4/" rel="alternate" type="text/html" title="Türkçe Sonlu Elemanlar Modülü" /><published>2023-10-29T00:00:00+03:00</published><updated>2023-10-29T00:00:00+03:00</updated><id>https://ekremekc.github.io/posts/2023/10/post-4</id><content type="html" xml:base="https://ekremekc.github.io/posts/2023/10/post-4/"><![CDATA[<p>Yaklaşık 1 yıldır Ahmet Alperen Koç ile birlikte hazırladığımız ‘9 Adımda Sonlu Elemanlar Yönteminin Temelleri ‘ eğitimini tamamlamış bulunuyoruz.</p>

<p>Eğitim, açık kaynaklı kodları kullanabilmek için gerekli olan teorik ve programlama temelini oluşturmak amacıyla Python programlama dilinde Jupyter Notebook kullanılarak yazılmıştır.</p>

<p>Eğitim tamamen açık kaynaklıdır ve hep öyle kalacaktır.</p>

<p>Eğitim hazırlanırken danıştığımız ve fikirlerini aldığımız <a href="https://scholar.google.com.tr/citations?user=NrtpCVQAAAAJ&amp;hl=en">Dr. Fethi Okyar</a> (Yeditepe Üniversitesi), <a href="https://research.itu.edu.tr/tr/persons/ata-mu%C4%9Fan">Dr. Ata Mugan</a> (İstanbul Teknik Üniversitesi) ve <a href="https://users.metu.edu.tr/csert/index.htm">Dr. Cüneyt Sert</a> (Orta Doğu Teknik Üniversitesi)’e teşekkürlerimizi sunuyoruz.</p>

<p>Umarız ki bu eğitim, 100. yılına giren ülkemizde simülasyon becerisinin derinlemesine kazanılmasına ve bu alanda dünyanın en ileri araştırmalarının yapılmasına katkı sağlar.</p>

<p><a href="(https://github.com/seatemelleri/SEA-Temelleri)">Eğitim linkine buradan ulaşabilirsiniz.</a></p>]]></content><author><name>Ekrem Ekici</name><email>ekrem.ekici@kfupm.edu.sa</email></author><category term="turkish" /><summary type="html"><![CDATA[Yaklaşık 1 yıldır Ahmet Alperen Koç ile birlikte hazırladığımız ‘9 Adımda Sonlu Elemanlar Yönteminin Temelleri ‘ eğitimini tamamlamış bulunuyoruz.]]></summary></entry><entry><title type="html">Conference at ETH Zurich in Switzerland</title><link href="https://ekremekc.github.io/posts/2023/09/post-4/" rel="alternate" type="text/html" title="Conference at ETH Zurich in Switzerland" /><published>2023-09-13T00:00:00+03:00</published><updated>2023-09-13T00:00:00+03:00</updated><id>https://ekremekc.github.io/posts/2023/09/post-4</id><content type="html" xml:base="https://ekremekc.github.io/posts/2023/09/post-4/"><![CDATA[<p>It was motivating to present my work “Shape Sensitivity for Thermoacoustic Instability of Annular Combustors using Adjoints” in SoTiC at ETH Zurich.</p>

<p>I again realized that the open-source software development is crucial to understand and solve engineering problems better.</p>

<p>As a hashtag#YLSY proud, I am grateful to be supported by Türkiye Ministry of National Education for my PhD in University of Cambridge.</p>

<p>I would also like to thank University of Cambridge for funding my conference travel.</p>

<p><img src="/images/posts/2023/SOTIC_ETH.jpeg" alt="Symposium on Thermoacoustics in Combustion: Industry meets Academia​" /></p>
<center>Symposium on Thermoacoustics in Combustion: Industry meets Academia, 2023</center>]]></content><author><name>Ekrem Ekici</name><email>ekrem.ekici@kfupm.edu.sa</email></author><category term="english" /><summary type="html"><![CDATA[It was motivating to present my work “Shape Sensitivity for Thermoacoustic Instability of Annular Combustors using Adjoints” in SoTiC at ETH Zurich.]]></summary></entry><entry><title type="html">Python Nasıl Öğrenilir?</title><link href="https://ekremekc.github.io/posts/2022/02/post-1/" rel="alternate" type="text/html" title="Python Nasıl Öğrenilir?" /><published>2022-03-28T00:00:00+03:00</published><updated>2022-03-28T00:00:00+03:00</updated><id>https://ekremekc.github.io/posts/2022/02/post-1</id><content type="html" xml:base="https://ekremekc.github.io/posts/2022/02/post-1/"><![CDATA[<h2 id="giriş">Giriş</h2>
<p>Sanırım Lisans ve Lisansüstü mühendislik öğrencilerinden sıklıkla duyduğumuz sorulardan biri; “Nasıl Python öğreneceğim?”</p>

<p>Bugün kullandığımız hemen her cihazda herhangi bir programlama diliyle yazılmış platformları sıklıkla kullanıyoruz. Örneğin benim bu yazıyı yazdığım platform olan LinkedIn, bize tanıyor olabileceğimiz bağlantıları önerirken Python dilinde yazılmış makine öğrenmesi kütüphanelerinden yararlanılarak oluşturulan modelleri kullanıyor.</p>

<p>Bir önceki yazımın devamı niteliğindeki bu yazıda, Python programlama dilini öğreneceklere bir yol haritası olması amacıyla gerekli adımları kendi tecrübelerimden yola çıkarak belirlemeye çalışacağım.</p>

<h2 id="motivasyon">Motivasyon</h2>
<p>Python programlama dili, bilgisayardaki herhangi bir işlemi gerçekleştirebileceğiniz bir yüksek seviye (high-level) programlama dilidir. İlk sürümü 1991 yılında ortaya çıkarılmıştır [1].</p>

<p>Python programlama dilinin asıl motivasyonu, kolay okunabilen, hızlı hata ayıklanabilen ve ayrıca nesneye dayalı programlama da yapılabilen bir platform olmaktı. Bugün, görece yeni bir programlama dili olmasına rağmen C++ ve Java gibi dilleri sollayarak en çok kullanılan 2. programlama dili olmuştur [2]. Ek olarak, herhangi bir kullanım ücreti yoktur [3]. Aşırı teknik detaya girmeden hızlıca nasıl Python öğrenileceğini anlamaya çalışalım.</p>

<h2 id="python-programlama-dili">Python Programlama Dili</h2>

<p>Birinci adım olarak, “Ben Python öğrenip ne yapacağım?” sorusuna öncelikle kendiniz yanıt verebilmelisiniz. Çoğu kişi aslında bu aşamayı düşünmeden bir programlama dilini öğrenmeye çalışıyor. Hedefsiz ve programsız olarak başlayan öğrenme süreci de herhangi bir kazanım ile tamamlanmayan bir zaman kaybına yol açarak sona eriyor.</p>

<p>Kendi tecrübelerim ile başlayacak olursam, şu anda üzerinde çalıştığım bir projedeki basitleştirilmiş bir kısmı programlarken, Python’ı, nasıl problemimi çözerken bir araç olarak kullandığımı alternatif çözümleri (Python kullanmasaydım ne olurdu?) göstererek anlatacağım;</p>

<p><img src="/images/posts/post2/1.png" alt="Resim 1" /></p>
<center>Resim 1: 3 boyutlu geometri</center>

<p>Resim 1’deki 3 boyutlu geometri açık kaynaklı ve Python arayüzüne sahip CAD platformu FreeCAD [4] yazılımı ile oluşturulmuştur. Gördüğünüz gibi resimde içinden 2 silindir çıkarılmış bir büyük silindir yer almaktadır. Fakat yaptığım iş gereği benim bu silindirlerin boyutlarını sürekli değiştirerek yeni geometriler denemem gerekiyor. Bu durumda yapabileceğim 2 alternatif var;</p>

<ol>
  <li>
    <p>Her seferinde FreeCAD’i açıp parçayı tekrar düzenlemek.</p>
  </li>
  <li>
    <p>Bir Python programı yazıp aynı işlemi belirlediğimiz parametreler doğrultusunda bir tıkla bitirmek.</p>
  </li>
</ol>

<p>İkinci seçenek güzel görünüyor değil mi? Şimdi nasıl yapılabilir anlamaya çalışalım. Aşağıda aynı işlemi yapan Python dosyasına bakabiliriz;</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kn">from</span> <span class="nn">FreeCAD</span> <span class="kn">import</span> <span class="n">Base</span>
<span class="kn">import</span> <span class="nn">Part</span>

<span class="n">R1</span> <span class="o">=</span> <span class="mi">10</span> <span class="c1">#mm en büyük silindirin yarıçapı
</span><span class="n">R2</span> <span class="o">=</span> <span class="mi">8</span>  <span class="c1">#mm ortadaki büyük silindirin yarıçapı
</span><span class="n">R3</span> <span class="o">=</span> <span class="mi">2</span>  <span class="c1">#mm alt tabandaki boşluğu oluşturan silindirin yarıçapı
</span>
<span class="n">H1</span> <span class="o">=</span> <span class="mi">15</span> <span class="c1">#mm en büyük silindirin yüksekliği
</span><span class="n">H2</span> <span class="o">=</span> <span class="mi">13</span> <span class="c1">#mm ortadaki büyük silindirin yüksekliği
</span><span class="n">H3</span> <span class="o">=</span> <span class="mi">2</span>  <span class="c1">#mm alt tabandaki boşluğu oluşturan silindirin yüksekliği
</span>
<span class="c1"># Silindirleri oluşturma
</span><span class="n">silindir1</span> <span class="o">=</span> <span class="n">Part</span><span class="p">.</span><span class="n">makeCylinder</span><span class="p">(</span><span class="n">R1</span><span class="p">,</span> <span class="n">H1</span><span class="p">)</span>
<span class="n">silindir2</span> <span class="o">=</span> <span class="n">Part</span><span class="p">.</span><span class="n">makeCylinder</span><span class="p">(</span><span class="n">R2</span><span class="p">,</span> <span class="n">H2</span><span class="p">,</span><span class="n">Base</span><span class="p">.</span><span class="n">Vector</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">2</span><span class="p">))</span>
<span class="n">silindir3</span> <span class="o">=</span> <span class="n">Part</span><span class="p">.</span><span class="n">makeCylinder</span><span class="p">(</span><span class="n">R3</span><span class="p">,</span> <span class="n">H3</span><span class="p">)</span>

<span class="c1"># En büyük silindirden ortadaki silindiri çıkarma
</span><span class="n">fark</span> <span class="o">=</span> <span class="n">silindir1</span><span class="p">.</span><span class="n">cut</span><span class="p">(</span><span class="n">silindir2</span><span class="p">)</span>
<span class="c1"># Kalan şekilden alttaki küçük silindiri çıkarma
</span><span class="n">son_sekil</span> <span class="o">=</span> <span class="n">fark</span><span class="p">.</span><span class="n">cut</span><span class="p">(</span><span class="n">silindir3</span><span class="p">)</span>

<span class="c1"># Oluşturulan şekli dosya olarak kaydetme
</span><span class="n">son_sekil</span><span class="p">.</span><span class="n">exportStep</span><span class="p">(</span><span class="s">"sonuc.step"</span><span class="p">)</span>
</code></pre></div></div>

<p>Yukarıda yer alan ve boşluklar dahil 23 satır olan Python kodu, 1. seçenekte yapılan herşeyi uygulama ekranını açmaya gerek dahi kalmadan aynı şekilde yaptı. Bundan sonra üreteceğimiz her geometride sadece yarıçap ve yükseklik değerlerini değiştirerek istediğiniz parçayı saniyeden daha kısa sürede oluşturabilirsiniz. Ayrıca bunun gibi birbirine bağlı onlarca parça ile çalıştığınızı farzederseniz, işinizin epey hızlanacağını ve kolaylaşacağını görmek mümkündür.</p>

<p>Bir başka örnek verelim; Ben yeni bir şirkette işe başlamış olayım. Bu şirkette personellerle alakalı bilgilerin tutulduğu 6 adet excel dosyası olsun. Ben de şirkette işe giren 81. kişi olayım. Bu durumda benim isim ve soyismimin her bir excel dosyasının 81. satırının 1. ve 2. sütununa girilmesi gereksin. Bu problemi de yine 2 şekilde ele alabiliriz;</p>

<ol>
  <li>
    <p>Her bir excel dosyasını tek tek açıp, 81. satıra gidip, 1. sütuna ismimi 2. sütuna da soyismimi girmek.</p>
  </li>
  <li>
    <p>Aynı işlemi yapan bir Python programı yazmak ve işlemi bilgisayara yaptırmak.</p>
  </li>
</ol>

<p>Yine 2. seçenek göze hoş görünüyor değil mi? Şimdi bu işlemi yapan Python koduna bakalım;</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kn">import</span> <span class="nn">openpyx</span>

<span class="c1"># Klasörde bulunan excel dosyalarının isimleri
</span><span class="n">dosyalar</span> <span class="o">=</span> <span class="p">[</span><span class="s">"dosya1.xlsx"</span><span class="p">,</span><span class="s">"dosya2.xlsx"</span><span class="p">,</span><span class="s">"dosya3.xlsx"</span><span class="p">,</span>\
            <span class="s">"dosya4.xlsx"</span><span class="p">,</span><span class="s">"dosya5.xlsx"</span><span class="p">,</span><span class="s">"dosya6.xlsx"</span><span class="p">]</span>

<span class="c1"># Eklenmesi gereken bilgi
</span><span class="n">isim</span> <span class="o">=</span> <span class="s">"Ekrem"</span>
<span class="n">soyisim</span> <span class="o">=</span> <span class="s">"Ekici"</span>
<span class="n">satir</span> <span class="o">=</span> <span class="mi">81</span>

<span class="c1"># Her bir dosya için işlemi gerçekleştiren for döngüsü
</span><span class="k">for</span> <span class="n">dosya_ismi</span> <span class="ow">in</span> <span class="n">dosyalar</span><span class="p">:</span>
    <span class="n">dosya</span> <span class="o">=</span> <span class="n">openpyxl</span><span class="p">.</span><span class="n">load_workbook</span><span class="p">(</span><span class="n">dosya_ismi</span><span class="p">)</span>
    <span class="n">sayfa</span> <span class="o">=</span> <span class="n">dosya</span><span class="p">[</span><span class="s">'Sayfa1'</span><span class="p">]</span>
    <span class="n">sayfa</span><span class="p">.</span><span class="n">cell</span><span class="p">(</span><span class="n">row</span><span class="o">=</span><span class="n">satir</span><span class="p">,</span> <span class="n">column</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">value</span><span class="o">=</span><span class="n">isim</span><span class="p">)</span>
    <span class="n">sayfa</span><span class="p">.</span><span class="n">cell</span><span class="p">(</span><span class="n">row</span><span class="o">=</span><span class="n">satir</span><span class="p">,</span> <span class="n">column</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span> <span class="n">value</span><span class="o">=</span><span class="n">soyisim</span><span class="p">)</span>
    <span class="n">dosya</span><span class="p">.</span><span class="n">save</span><span class="p">(</span><span class="n">dosya_ismi</span><span class="p">)</span>
</code></pre></div></div>
<p>Yine boşluklar dahil 18 satırdan oluşan yukarıdaki kod, aynı işlemi yaklaşık 0.436 saniyede yaptı. Aynı şekilde yüzlerce excel dosyanızın olduğunu düşünürseniz, yukarıdaki kısa programın oldukça kolay ve hata payının düşük olacak olması, yapılan işlemin hem hızını hem de kalitesini arttıracaktır.</p>

<p>Tıpkı yukarıda bahsedilen uygulamalar gibi siz de günlük yaptığınız veya tekrar gerektiren herhangi bir bilgisayar işlemini Python dosyalarına yaptırabilirsiniz. Python programlarıyla yapacağınız otomasyondan kazanacağınız zamanı ve gittikçe ilerleyecek olan programlama bilginizi farklı yerlerde de kullanabileceğinizi düşünmek oldukça motive edicidir.</p>

<h2 id="faydalı-olduğu-düşünülen-çevrimiçi-kaynaklar">Faydalı olduğu düşünülen çevrimiçi kaynaklar</h2>

<p>Yazarak öğrenmenin ne kadar etkili bir yöntem olduğu herkesce bilindiği gibi araştırmalar da bu kanıyı doğrulamaktadır [5]. Buradan hareketle Python’ı öğrenirken de kod yazarak el hafızamızı geliştirmek güzel bir başlangıç olacaktır. Ben kişisel olarak Python’ı ilk öğrenmeye başladığımda aşağıdaki YouTube kanallarından yararlandım;</p>

<h3 id="1-sentdex">1. Sentdex</h3>

<p>YouTube’daki en popüler kanallardan biri olan Sentdex, ilk başlayanlar için çok güzel ve sıkıcı da olmayan bir başlangıç olabilir. Ayrıca kanaldaki diğer videolara bakarak (Python kodu ile bilgisayara GTA oynatma) işin nerelere kadar gidebileceği hakkında bilgi sahibi olabilirsiniz.</p>

<h3 id="2-corey-schafer">2. Corey Schafer</h3>

<p>Bu kanal ise temel programlama bilgisi ve Python öğrenmek isteyenler için orta seviye bir başlangıç olabilir.</p>

<p>Bu iki kanaldaki videoları solda video, sağda kendi kod ekranınız olacak şekilde yazılanların aynısını yazarak ve programları çalıştırıp aynı sonuçları almaya çalışarak bitirmenizi tavsiye ediyorum. Sürecin sonunda programlama ile ilgili temel bilgileri elde etmiş olacaksınız.</p>

<p>Sonrasında ise size asıl programlamayı öğretecek olan şeyi, yani kendi herhangi bir işinizi Python ile yapmaya çalışmanız, Python programlama becerisini kazanmanız için en önemli kilometre taşı olacaktır.</p>

<h2 id="sonuç">Sonuç</h2>
<p>Python programlama dilinin nasıl öğrenilebileceğinin tartışıldığı bu yazıda, mühendislik uygulamalarından ve günlük örneklerden yola çıkarak sürecin nasıl başlayacağı, nasıl devam edeceği ve sonunda hangi becerilerin kazanılacağını anlatmaya çalıştım.</p>

<p>İster bir savunma firmasında tasarım mühendisi olarak çalışın, ister başka bir yerde evrak-kayıt işlerinden sorumlu bir birey olarak görev alın, Python bilgisi, hatta programlama tecrübesi, yaptığınız hemen hemen her işte işinizi kolaylaştıracak ve katmadeğerli çıktıları ortaya koymanız için yardımcı olacaktır.</p>

<p>Ayrıca Python programlamayı öğrenirken;</p>

<ol>
  <li>
    <p>Karşılaştığınız teknik problemleri küçük parçalara ayırarak çözümleme becerisi</p>
  </li>
  <li>
    <p>Mantık (logic) bilginizin pekişmesiyle birlikte algoritmik düşünme yetinizin ilerlemesi</p>
  </li>
  <li>
    <p>Mühendis iseniz geliştirmek zorunda kalacağınız ileri matematik, geometri ve fizik bilgisi</p>
  </li>
</ol>

<p>gibi kazanımlar da süreç ilerlerken elde edilecektir.</p>

<p>Ek olarak Python programlamada belli yol katettikten sonra bilgisayarınıza Linux/Ubuntu işletim sistemini kurmanızı ve yapacağınız işleri bu işletim sisteminde sürdürmenizi şiddetle tavsiye ederim.</p>

<p>Bir dahaki yazıda görüşmek dileğiyle, iyi çalışmalar..</p>

<h2 id="referanslar">Referanslar</h2>
<p>[1] Van Rossum, G. (2007, June). Python Programming language. In USENIX annual technical conference (Vol. 41, No. 1, pp. 1-36).</p>

<p>[2] https://bootcamp.berkeley.edu/blog/most-in-demand-programming-languages/</p>

<p>[3] https://support.datacamp.com/hc/en-us/articles/360038816113-Is-Python-free-</p>

<p>[4] https://wiki.freecadweb.org/Main_Page</p>

<p>[5] Graham, S., Kiuhara, S. A., &amp; MacKay, M. (2020). The effects of writing on learning in science, social studies, and mathematics: A meta-analysis. Review of Educational Research, 90(2), 179-226.</p>]]></content><author><name>Ekrem Ekici</name><email>ekrem.ekici@kfupm.edu.sa</email></author><category term="turkish" /><summary type="html"><![CDATA[Giriş Sanırım Lisans ve Lisansüstü mühendislik öğrencilerinden sıklıkla duyduğumuz sorulardan biri; “Nasıl Python öğreneceğim?”]]></summary></entry><entry><title type="html">TOEFL Sınavına Hazırlık</title><link href="https://ekremekc.github.io/posts/2020/12/post-1/" rel="alternate" type="text/html" title="TOEFL Sınavına Hazırlık" /><published>2020-12-10T00:00:00+03:00</published><updated>2020-12-10T00:00:00+03:00</updated><id>https://ekremekc.github.io/posts/2020/12/post-1</id><content type="html" xml:base="https://ekremekc.github.io/posts/2020/12/post-1/"><![CDATA[<h1 id="özet">Özet</h1>
<p>Günümüzde birçok yurtdışı eğitim kurumu ingilizce yeterliliği istemektedir. Bu bağlamda yabancı dil kabiliyetinin karşı tarafa sergilenilebilmesi için belirli sınavlar yürütülmektedir. Genellikle Birleşik Krallık ve Amerika Birleşik Devletleri’nde öğrenim görmek isteyen öğrencilerden TOEFL veya IELTS adlı ingilizce sınavlarında yetkinlik gösterilmesi beklenmiştir. Bu yazı, belirli bir ingilizce altyapısına sahip kişileri TOEFL sınavına hazırlamaya yönelik kaleme alınmıştır. Yer alan tüm yorumlar ve tavsiyeler kişiseldir.</p>

<h1 id="1-giriş">1. Giriş</h1>

<p>Son yıllarda yurtdışında eğitim görmek birçok öğrenci tarafından tercih edilmektedir. Belirli imkanlar sağlanması durumunda hem yurtdışından yaşanılan ülkeye bakabilmenin ve birçok coğrafyadan gelmiş insanlarla tanışma imkanının bireyin kalitesini artırdığı yadsınamaz bir gerçektir. Fakat bu aşamada bu kültürel etkileşim alanına girebilmek için iletişim yeteneği olmazsa olmaz bir kişisel beceri olmuştur. Özellikle yurtdışındaki eğitim kurumları, uluslararası öğrencilerden iletişim becerilerini kanıtlamış olmalarını beklemektedir. Bu amaçla çok bilinen 2 ingilizce sınavı olan TOEFL ve IELTS sınavları bu yetkinliği ölçme amaçlı kullanılmaktadır. Sırasıyla giriş yapacak olursak TOEFL sınavının açılımı “Test Of English as a Foreign Language”, IELTS sınavının açılımı ise “International English Language Testing System” şeklindedir.
Bu yazı, TOEFL sınavına genel bir bakış sunmakla beraber hedeflenen puana nasıl ulaşılabileceğini gerekli ücretsiz materyalleri öne çıkarıp yol haritası sunmaya çalışarak tartışacaktır.</p>

<h1 id="2-sınav-i̇çeriği">2. Sınav İçeriği</h1>
<p>Her uluslararası kabul görmüş ingilizce sınavında olduğu gibi TOEFL sınavı’da 4 bölümden oluşmaktadır;</p>

<ul>
  <li>
    <p>Reading(Okuma)</p>
  </li>
  <li>
    <p>Listening(Dinleme)</p>
  </li>
  <li>
    <p>Speaking(Konuşma)</p>
  </li>
  <li>
    <p>Writing(Yazma)</p>
  </li>
</ul>

<p>Her bir bölüm 30 puan değerindedir ve maksimum alınabilecek puan 120dir. Şimdi herbir bölümde nelerle karşılaşılacağına bir göz atalım;</p>

<h2 id="21-readingokuma">2.1 Reading(Okuma)</h2>
<p>TOEFL’ın okuma bölümünde öğrenciden 3 veya 4 adet bilimsel okuma parçasından gerekli çıkarımları yapıp yapamadığı test edilmektedir. Her bir bilimsel metin yaklaşık 5-6 paragraftan oluşmaktadır. Bu paragraflardan okurun anlam bütünlüğünü kavrayıp kavramadığı, kelime bilgisi ve bahsedilmeyen bilgileri de fark edip edemediği ölçülmektedir. Genellikle metinler, biyoloji, astronomi ve tarih alanları hakkında bilgi içermektedir. Sınava ilk bu bölümden başlanır ve eğer 3 metin varsa 54 dakika, 4 metin var ise 72 dakika süre verilmektedir. Her bir metin, o metinle ilgili 10 soru içermektedir. Her metinin son kısmında bahsedilen ana fikirleri çoktan seçmeli olarak sorulmaktadır.</p>

<h2 id="22-listeningdinleme">2.2 Listening(Dinleme)</h2>
<p>Bu bölümde 5 veya 7 adet diyaloğu anlayıp gerekli bilgilerin süzülüp süzülmediği test edilmektedir. Bu diyaloglardan 2 tanesi üniversite kampüsündeki herhangi bir durumu(park yeri yapımı, konser düzenleme, kütüphanenin tatil nedeniyle kapalı olması gibi) anlatmaktadır. Bu diyaloglar genelde 1 öğrenci ve 1 görevlinin karşılıklı konuşması şeklindedir. Diğer diyaloglar ise üniversitede yürütülen herhangi bir ders esnasından belirli bir kesiti içermektedir. Bu kesit öğrencilerle interaktif biçimde de olabilir. Bu diyaloglar, genelde konu olarak sanat tarihi, mühendislik, biyoloji, astronomi gibi disiplinleri kapsamaktadır.</p>

<p>Bu bölümde öğrenciden beklenen bu diyolagları dinlerken en önemli noktaları not alıp, gelebilecek soruları kestirebilmesidir. Bu diyaloglardan her biri 5 veya 6 soru içermektedir. Bu bölüm  beklemelerle birlikte yaklaşık 45 dakika sürmektedir.</p>

<h2 id="23-speakingkonuşma">2.3 Speaking(Konuşma)</h2>
<p>Bu bölüm TOEFL’ın en kısa bölümüdür. Yaklaşık 15 dk sürer. 4 bölümden oluşur.
İlk bölümde herhangi bir konu hakkındaki fikrinizi sorar ve 15 saniyede hazırlanıp 45 saniyelik bir cevap vermeniz beklenmektedir. Ardından 2. bölümde kampüsteki bir olay hakkında bir metin ve bir konuşma verilir. Sonra 30 saniye hazırlanıp bu metin ve konuşmayı karşılaştırdığınız 1 dakikalık konuşma yapmanız istenir. Ardından 3. bölümde de bilimsel bir metin okutulur ve ardından bir dersten dinleme parçası dinletilir. 2. bölümdeki gibi bu ikisini yine 30 saniyede hazırlanıp 60 saniyede karşılaştırmanız gerekmektedir. Son bölümde ise bir ders kesiti verilir ve buna da yine 30 saniyede hazırlanıp 60 saniyede özetlemeniz istenmektedir.
Konular genellikle tıpkı reading ve listening deki gibi çeşitli alanlardan gelebilir. Bu alanda başarılı olmaktaki kriter olayları bir akış içerisinde kıyaslayıp sonuca bağlamaktır.</p>

<h2 id="24-writingyazma">2.4 Writing(Yazma)</h2>
<p>Bu kısımda da adayın ingilizce yazma bilgisi ölçülmektedir. 2 kısımdan oluşmaktadır. 1. kısımda yine bilimsel bir olay ve bu olaya sebep olan 3 neden verilir. 3 dakika okuma süresinden sonra bir dinleme parçası dinletilir ve genellikle bu 3 argüman konuşmacı tarafından desteklenir veya çürütülür. Ardından 20 dakikalık süre içinde adaydan bu metin ve dinleme parçasını kıyaslayan bir metin yazması beklenir.</p>
<ol>
  <li>kısımda ise belirli bir argüman üzerine tartışıp, fikrinizi örneklerle desteklemeniz gereken bir essay yazmalısınız. Bu kısımda essay için verilen süre 30 dakikadır ve bu süre bitince sınav sona erer.</li>
</ol>

<h1 id="3-sınava-hazırlık">3. Sınava Hazırlık</h1>
<p>Bu kısımda sınava nasıl hazırlanılabileceği konusunda kendi tecrübelerimden aktarabildiğim kadarıyla bilgi vereceğim;</p>

<h2 id="31-readingokuma">3.1 Reading(Okuma)</h2>
<p>Bu bölümde parçayı tamamen okumadan soru soru yaparak ilerlemek gerekmektedir. Ayrıca skimming denilen tarama yöntemi sürekli deneme yaparak geliştirilmelidir. Reading bölümünde hemen hemen her parçada kelime sorusu olacaktır. Bu kelimelere aşağıdaki uygulama ile birlikte çok iyi biçimde hazırlanılabilir;
TOEFL- Magoosh
Ayrıca öğrenilen kelimeler ingilizce anlamları ve 2 örnek cümle ile bir kağıda yazılıp çalışılabilir. Bu benim 2 yıldır uyguladığım bir öğrenme yöntemi ve oldukça faydasını gördüğümü söyleyebilirim. Son olarak reading denemeleri için şu kitaptaki denemelerin süre tutarak çözülmesi çok faydalı olacaktır;</p>

<p><em>The official guide to the TOEFL test - Fifth Edition (2017, McGraw-Hill Education</em></p>

<p>Bu kitap güncel TOEFL sistemini yansıtmamaktadır fakat sınava hazırlık açısından çok faydalıdır.</p>

<h2 id="32-listeningdinleme">3.2 Listening(Dinleme)</h2>
<p>Bu bölüm benim ilk başta en zorlandığım bölüm olmuştu. Fakat sıkılmadan deneme çözmeye devam ettiğiniz takdirde rahatlıkla 25 bandına çıkacağınızı söyleyebilirim. Ama sınavdaki şans faktörünü de es geçmemek gerekiyor. Bana girdiğim bir sınavda 17.yy daki bir yağlı tablo üzerine tartışma gelmişti ve problem yaşamıştım.</p>

<p>Bu bölümde bence olabildiğince önemli noktaları yakalayıp not almak gerekmektedir. Çünkü TOEFL’da parçaları sadece 1 kez dinleyebilirsiniz ve önemli noktaları kaçırdığınız takdirde bunları yanıtlamanız mümkün olmayacaktır. O yüzden gerekli noktaları hızlı bir şekilde not alabilme kabiliyetinin kazanılması gerekmektedir. Ben yine burada Reading için bahsettiğim kitaptaki Listening denemelerini tavsiye edeceğim.</p>

<p>Bundan ayrı bol bol TED konuşmaları izlemelisiniz. BBC Radio 4 uygulamasını telefonunuza indirip gündelik işlerinizi yaparken dinleyebilirsiniz. Önemli olan ilgi duyduğunuz alanları ingilizce dinleme isteğidir. Ben sürekli programlama dersleri ve videoları izleyerek geçirdiğim için sınavdaki ders konseptini de kavramış oldum.</p>

<h2 id="33-speakingkonuşma">3.3 Speaking(Konuşma)</h2>
<p>Bu bölüm en çok zorlanılan bölümdür. Ama doğru çalışmayla rahatlıkla halledilecektir. İlk başta konsepti ve kalıpları kavramanız için TOEFL Resources adlı YouTube kanalını takip edin.</p>

<p><a href="https://www.youtube.com/watch?v=Hn1aP8l8yqI&amp;list=PLOLkS2kLE0FaxdOpF9WIi1tIzXq2IUqG8">TOEFL Resources - Speaking Taslakları ve Stratejileri</a></p>

<p>Taslakları kavradıktan sonra şu aşağıdaki uygulama ile bu bölüme harika bir şekilde hazırlanabilirsiniz.</p>

<ul>
  <li>TOEFL Speaking App</li>
</ul>

<p>Bu uygulama sizi hem süre bakımından hem taslakları zihinde oturtma açısından güzel bir şekilde hazırlayacaktır. Bu uygulamayı sürekli kullanmanız ve kendinizi zorlamanız gerekmektedir.</p>

<h2 id="34-writingyazma">3.4 Writing(Yazma)</h2>
<p>Bu bölüme hazırlık için yine TOEFL Resources adlı YouTube kanalını tavsiye edebilirim;</p>

<p><a href="https://www.youtube.com/watch?v=UhrglEZyFyo&amp;list=PLOLkS2kLE0FaVy6fIXxBWmaXEAH3wXYGm">TOEFL Resources - Writing Taslakları ve Stratejileri</a></p>

<p>Bu oynatma listesindeki tüm videoları sindirdikten sonra hergün bakarak 1 tane örnek essay yazın. Ardından yavaş yavaş öğrendiğiniz kalıpları baktığınız essaylere eklemeye çalışın. Bu sizin el hafızanızı geliştirecektir. Örnek essayler için yine reading bölümünde önerdiğim ETS’in resmi TOEFL’a hazırlık kitabındaki essayleri kullanabilirsiniz. Aşağıdaki linkten de süre ile yazarak alıştırma yapabilirsiniz;
Writing Denemeleri</p>

<p>Kendi tecrübemden yola çıkarak söyleyecek olursam olabildiğince fazla kelime yazın. Ayrıca if conjunction ve linking wordleri mümkün olduğunca sık kullanın. Mümkünse kişisel hayatınızdan örnek vermeye çalışın, bu sizde olay kurgusu kurma kolaylığı sağlayacaktır.</p>

<h1 id="4-son-adım">4. Son Adım</h1>
<p>Tüm bu hazırlık aşamalarına ek olarak kesinlikle hergün reddit adlı websitedeki ToeflAdvice subreddit’ini mutlaka takip etmelisiniz. Burada insanlar aldıkları puanları ve nasıl çalıştıklarını detaylıca anlatarak tecrübe paylaşımında bulunuyorlar. Ben buraya hergün mutlaka 1 kere göz attım.</p>

<p><a href="https://www.reddit.com/r/ToeflAdvice/">TOEFL-Reddit Linki</a></p>

<p>Speking için mutlaka ilginizi çeken videolarda veya film sahnelerinde geçen diyalogları mutlaka taklit etmeye çalışın. Bu size telafuz ve akışkanlık hususunda müthiş fayda sağlacaktır. Telafuz için benim ara ara baktığım şu kanalı da size tavsiye edebilirim;</p>

<p><a href="https://www.youtube.com/@ETJEnglish">ETJ English</a></p>

<p>Tüm bu aşamalar geçildikten sonra sınav ortamını tamamen simüle etmek için yapay zeka destekli bir TOEFL deneme platformu olan TestGlider’daki denemeleri çözmelisiniz. Bu denemeler sınavın konsept olarak tamamen aynısıdır ve size yapay zeka tabanlı bir algoritma üzerinden her bölüm için puanlama yapabilmektedir. Buradaki denemeler biraz zordur ve bu denemelerden aldığınız puanın 10 puan üstünü alacağınızı söyleyebilirim.</p>

<h1 id="5-son-söz">5. Son Söz</h1>

<p>Bahsettiklerimin üzerine belki de ilk lazım olan şey aslında ingilizceyi niye öğreneceğinizdir. Başka bir ülkedeki bir okula kabul almak için bu sınava çalışma motivasyonu size yüksek ihtimalle gerekli puanı aldıracaktır. Ama bu sürecin sıkılmadan devam istediğini ve sizin için değecek birşey için yapıldığına emin olmadan ilerlemeyeceğini söyleyebilirim. Long story short, bu sınava hazırlanırken sabır çok önemli bir parametredir. Yukarıdaki bahsettiğim süreç yaklaşık 2 aylık bir süreçtir ve buna mümkünse hergün vakit ayırmanız gerekmektedir.
Sabırla bu yazıyı okuduğunuz için teşekkür ederim, kariyer ve hayat yolunuzun bu aşamasında fayda sağlamış olmak dileğiyle…</p>]]></content><author><name>Ekrem Ekici</name><email>ekrem.ekici@kfupm.edu.sa</email></author><category term="turkish" /><summary type="html"><![CDATA[Özet Günümüzde birçok yurtdışı eğitim kurumu ingilizce yeterliliği istemektedir. Bu bağlamda yabancı dil kabiliyetinin karşı tarafa sergilenilebilmesi için belirli sınavlar yürütülmektedir. Genellikle Birleşik Krallık ve Amerika Birleşik Devletleri’nde öğrenim görmek isteyen öğrencilerden TOEFL veya IELTS adlı ingilizce sınavlarında yetkinlik gösterilmesi beklenmiştir. Bu yazı, belirli bir ingilizce altyapısına sahip kişileri TOEFL sınavına hazırlamaya yönelik kaleme alınmıştır. Yer alan tüm yorumlar ve tavsiyeler kişiseldir.]]></summary></entry><entry><title type="html">Yazılım Dünyası ve Makine Mühendisliği</title><link href="https://ekremekc.github.io/posts/2020/03/post-1/" rel="alternate" type="text/html" title="Yazılım Dünyası ve Makine Mühendisliği" /><published>2020-03-04T00:00:00+03:00</published><updated>2020-03-04T00:00:00+03:00</updated><id>https://ekremekc.github.io/posts/2020/03/post-1</id><content type="html" xml:base="https://ekremekc.github.io/posts/2020/03/post-1/"><![CDATA[<h2 id="giriş">Giriş</h2>
<p>Günümüz dünyasında yazılımın önemi herkes tarafından bilinmekte. Sadece bilgisayar ve elektronik mühendislerinin değil aynı zamanda diğer mühendislik branşları için de ( makine mühendisliği, endüstri mühendisliği) uygulama alanı oluşmuş durumda olan bilgisayar bilimleri , katma değeri yüksek işler yapabilmek için vazgeçilmez bir araç haline geldi. Öğrenilmesi durumunda, örneğin mühendislik branşlarında, mevcut deneysel çalışmaları bilgisayar ortamında doğrulayıp üzerine deney yapmaksızın, hangi deneysel parametrelerin çıktıya nasıl etki ettiği belirlenebiliyor.</p>

<p>İlk yazım olan bu yazımda yazılım dünyasına makine mühendisi bakış açısı ile yaklaşmaya çalışacağım. Ayrıca bu uzun yolda ihtiyacımıza göre hangi yazılım dillerini öğrenmemizin uygun olacağını, aylardır yaptığım araştırmaların neticesi olarak sizlere aktarmaya çalışacağım.</p>

<h2 id="motivasyon">Motivasyon</h2>
<p>Yıllardır devam eden teknolojik gelişmeleri elimden geldiğince takip eden birisiyim. Yazılımın bu teknolojilerin hepsinin ortak paydasında olduğunu farkettiğim zamandan beri bu bilime ilgim sürekli olarak artmıştı. Gerek arayüz tasarımı ve nümerik yöntemler ile mühendislik problemlerine (bizim branşımızda ısı transferi, akışkanlar nekaniği, aerodinamik problemleri) yaklaşımdaki etkinliği gerekse endüstride duyulan ihtiyaç beni bu alanı araştırmaya ve öğrenmeye heveslendirdi.</p>

<p>Biz lisans egitiminin ilk döneminde MATLAB programlama dilinin eğitimini almıştık. MATLAB, kolay syntax’ı ve çok da yavaş olmamasıyla ilk adım olarak öğrenilmesi bir tık kolay bir dildir. Özellikle içerdiği özel toolboxlar (Simulink, AI toolboxları) bakımından rakipsiz olabilir. Fakat sonradan MATLAB hem programlamaya hakimiyet konusunda hem de lisans problemlerinden ötürü bana çok cezbedici gelmemeye başladı.</p>

<p>Bu yüzden ben de Python, Java, C++ ve son olarak ısı-akış dünyasının vazgeçilmez platformlarından biri olan OpenFoam gibi açık kaynaklı yazılımlara yöneldim. Bu bahsettiğim yazılım dillerinin hangisinin ne işe yaradığını kendi tecrübelerimden aktarabildiğim kadarıyla size sırasıyla anlatacağım;</p>

<h2 id="python-programlama-dili">Python Programlama Dili</h2>

<p>Grafik 1’de görüldüğü üzere şu anda bilişim dünyasında kullanımı her gün hızla artmakta olan yazılım dilidir. Veri bilimleri (data science) ve makine öğrenmesi (machine learning) konularında çok fazla halihazırda kütüphanesi olduğu için oldukça fazla talep görmektedir. Ayrıca özellikle dikkat çekmek istediğim bir nokta olarak, internette en fazla problem-çözüm ikilisine sahip yazılım dillerinden biridir. Yapmak istediğiniz herhangi birşeyi çok yüksek ihtimalle daha önce birisi denemiştir ve stackoverflow.com adlı internet sitesinde problemine yardım istemiştir. Bu yüzden geri-beslemesi çok fazla olan bu dil, benim de en çok ilgimi çeken ve üzerinde uzmanlaşmaya çalıştığım yazılım dili olmuştur.
<img src="/images/posts/post1/1.png" alt="Grafik 1 – Yazılım Dillerinin Kullanımının Yıllara Göre Dağılımı [1]" /></p>
<center>Grafik 1 – Yazılım Dillerinin Kullanımının Yıllara Göre Dağılımı [1]</center>

<p>Bu programlama dilinin Anaconda adında birçok geliştirme ortamını içinde bulunduran bir platformu vardır. Bu platform içinden MATLAB’e yapı olarak çok benzeyen ve birçok bilimsel fonksiyonları ve mühendislik sabitlerini içeren kütüphaneleri içinde bulunduran Spyder adlı geliştirme ortamı hemen hemen mühendisler için bütün hesaplama taleplerini doğrudan (kütüphane kurmaksızın) karşılamaktadır.</p>

<p>Bu platform açık kaynaklı bir geliştirme ortamıdır ve MIT lisansı altında tamamen ücretsizdir. Oldukça zengin bir grafik çizme kütüphanesi (matplotlib) vardır ve bana göre diğer yazılım dillerindeki grafik paketlerine kıyasla ezici üstünlüğe sahiptir.</p>

<p>Ben genelde derslerimdeki ödevleri ve bilimsel araştırmaları Spyder ile yapıyorum. Grafik 2’de Spyder geliştirme ortamını kullanarak Python programlama dilinden faydalanıp yazdığım bazı programların görsel çıktıları gösterilmiştir.</p>

<p><img src="/images/posts/post1/2.png" alt="Grafik 2.a" /></p>
<center>(a)</center>

<p><img src="/images/posts/post1/3.png" alt="Grafik 2.b" /></p>
<center>(b)</center>

<center>Grafik 2. Bir plakadaki sıcaklık dağılımının sonlu farklar yöntemi ile (a) zamana bağlı olarak ve (b) sürekli hal durumuna göre çözülmesi</center>

<p>İlk başta MATLAB kullanmış biri olarak sadece numpy ve matplotlib kütüphanelerini yükleyerek Spyder’ı neredeyse MATLAB’ e çevirip (toolboxlar hariç tabiki) her işimi gördüğümü söyleyebilirim.</p>

<p>Ayrıca Python’da kod yazan birinin MATLAB’in programlama diline hakim olması da çok zor olmayacaktır.</p>

<h2 id="java-programlama-dili">Java Programlama Dili</h2>

<p>Arayüz geliştirmek isteyenler için bana göre en iyi yazılım dilidir. Grafik 3’de görüleceği üzere en çok kullanılan programlama dilidir (Mart, 2019). Bu programlama dili, işletim sistemi farketmeksizin (Windows, Linux – Ubuntu, Mac OS) her yerde çalışabilmektedir. Zaten sloganı “Write Once, Run Anywhere” (Bir kere yaz, her yerde çalıştır) şeklindedir. Mikro-işlemcisi biraz güçlü gömülü sistemlerde, makine diline (machine code) çok da yakın olmamasına rağmen şakır şakır çalışmaktadır. NetBeans adında Oracle (şu anda büyük oranda Java’yı geliştiren şirket) tarafından desteklenen çok kullanışlı bir geliştirme ortamı vardır. Ayrıca arayüz (GUI) geliştirmek için JavaFX adlı süper bir kütüphanesi mevcuttur.</p>

<p>Bu yazılım diline hakim olunması durumunda diğer mühendislik branşlarına yönelik ticari yazılımlar üretmek mümkündür. Fakat büyük sistemler için veritabanı (database) kullanabilme ve yönetebilme becerisine sahip olmak gerekir.</p>

<p><img src="/images/posts/post1/4.png" alt="Grafik 3" /></p>
<center>Grafik 3 - Programlama dillerinin kullanım sıklığı (Mart, 2019) [2]</center>

<h2 id="c-ve-openfoam">C++ ve OpenFoam</h2>

<p>Öncelikle C++ ile başlayacak olursak öğrenmesi en zor yazılım dillerinden biridir. Makine diline yakın olduğu için olaya çok daha fazla hakimsinizdir ve diğer yazılım dillerine kıyasla hızlıdır. Fakat syntax’ının ve hata ayıklamanın kolay olmayışından ötürü elektronik ve bilgisayar mühendislikleri haricinde kalan mühendislikler tarafından çok tercih edilmemektedir. CodeBlocks adlı geliştirme ortamı epey popülerdir. C++, genellikle oyun grafiklerinde ve gerçek zamanlı gömülü sistemlerde sıklıkla kullanılmaktadır.</p>

<p>OpenFoam’a gelecek olursak genelde bilimsel araştırmalar için kullanılan, tamamen açık kaynaklı (ücretsiz), C++ dili ile yazılmış bir platformdur. 2 tane versiyonu mevcuttur ve birisi 2004 yılında Imperial College London’daki doktora öğrencilerince geliştirildikten sonra ilk sürüm olarak çıkarılmıştır. Genelde ısı-akış problemleri, aerodinamik ve yanma gibi ileri mühendislik problemlerine sık rastlanılan alanlarda kullanılan ve içinde bulunan çözücüleri (solver) C++ dili ile geliştirilebilen bir programdır. İçerisinde geometri oluşturma (CAD), hücrelere ayırma (meshing) ve çözücü (solver) kütüphaneleri mevcuttur. Simulasyonlar sonrasında üretilen sonuçlar yine açık kaynaklı bir platform olan Paraview ile görsellenebilir (post-processing).</p>

<p>Ubuntu işletim sistemi ile çalışmakta olan bu program, arayüzü olmaması dolayısıyla sürekli terminalden işlem yapmayı gerektirir. Bu da yıllardır Windows kullanan ve programlama altyapısı olmayan kişilerce öğrenilmesini zorlaştırmaktadır. Bu programın rakibi olan ve oldukça pahalı fiyata sahip ANSYS-Fluent programı çok gelişmiş arayüzü ve kolay öğrenilebilme özelliklerinden ötürü endüstride ve akademide çokça tercih edilmektedir.</p>

<p>Kişisel kanaatimce mümkün olduğu kadar açık kaynaklı yazılımları kullanmamız, zor da olsa öğrenmemiz hem yazılım ithalatımızı azaltacak hem de mühendislik problemlerine derinlemesine hakim olmamızı sağlayacaktır. Çünkü insan, en iyi öğreterek öğrenir ve yeni başladığınızda bilgisayara yazılım dili kullanarak (arayüz olmadan) bir mühendislik problemini anlatmak hiç de kolay değildir. Fakat sabırlı olunması ve motive eden bir hedefe yönelik çalışılması durumunda istenilen hakimiyetin elde edilmesi mümkün olacaktır.</p>

<p>Şimdilik bu yazımda 3 programlama dilini genel bir bakışla özetlemeye çalıştım, bir dahaki yazıda bu dillerin nasıl öğrenilebileceği konusunda bilgi vermeye çalışacağım.</p>

<p>Herkese çalışmalarında kolaylıklar dilerim..</p>

<h2 id="referanslar">Referanslar</h2>

<p>[1] https://stackoverflow.blog/2017/09/06/incredible-growth-python/</p>

<p>[2] https://towardsdatascience.com/visualize-programming-language-popularity-using-tiobeindexpy-f82c5a96400d</p>]]></content><author><name>Ekrem Ekici</name><email>ekrem.ekici@kfupm.edu.sa</email></author><category term="turkish" /><summary type="html"><![CDATA[Giriş Günümüz dünyasında yazılımın önemi herkes tarafından bilinmekte. Sadece bilgisayar ve elektronik mühendislerinin değil aynı zamanda diğer mühendislik branşları için de ( makine mühendisliği, endüstri mühendisliği) uygulama alanı oluşmuş durumda olan bilgisayar bilimleri , katma değeri yüksek işler yapabilmek için vazgeçilmez bir araç haline geldi. Öğrenilmesi durumunda, örneğin mühendislik branşlarında, mevcut deneysel çalışmaları bilgisayar ortamında doğrulayıp üzerine deney yapmaksızın, hangi deneysel parametrelerin çıktıya nasıl etki ettiği belirlenebiliyor.]]></summary></entry></feed>