Sayısal yöntemler için blok tabanlı programlama aracının tasarımı
Design of a block-based programming tool for numerical methods
Yazar: ALTAN KARAALP
Danışman: DOÇ. DR. MUSTAFA HİKMET BİLGEHAN UÇAR
Kocaeli Üniversitesi / Fen Bilimleri Enstitüsü / Elektronik-Bilgisayar Eğitimi Ana Bilim Dalı
Derece: Yüksek Lisans, 2024
Konu: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control

Özet:
Sayısal yöntemler, modern matematiğin ve mühendisliğin mihenk taşıdır. Bu teknikler özellikle kesin çözümler mümkün olmadığında, çeşitli bilimsel ve mühendislik uygulamalarında çok önemli yeri olan integraller, diferansiyel denklemler, doğrusal veya doğrusal olmayan denklemler gibi matematiksel denklemleri çözmek için gereklidir. 1950 öncesinde sayısal hesaplamalar el yordamıyla yapılırken, günümüzde bu hesaplamalarda kullanılan yöntemler için hazırlanan algoritmalar ve yazılımlar sayesinde çok hızlı şekilde sonuca ulaşılabilmektedir. Birçok sayısal yöntem, programlama kullanılarak kodlanır ve bilgisayarlar aracılığıyla çözümlenir. Modern yüksek hızlı bilgisayarlar, var olan sayısal yöntemlerin uygulanabilirliğini artırmış ve yeni yöntemlerin geliştirilmesinin önünü açmıştır. Tez çalışmasında, mühendislikte sık kullanılan sayısal yöntemler için blok tabanlı görsel programlama aracı tasarımı ve uygulaması gerçekleştirilmiştir. Bu araç, Node.js platformunda çalışan bir görsel programlama arayüzü, Python derleyicisi, Python için kod çıktısı ve sonuç üreten arabirime sahiptir. Bu araç sayesinde kullanıcılar sayısal yöntemlerde kullanılan matrisler, matrislerle işlemler, doğrusal denklemler, kök bulma yöntemleri, sayısal türev, sayısal integral, enterpolasyon ve eğri uydurma gibi matematiksel işlemlerin bloklarını kontrol edebilir, Python kodu üretebilir, onu çalıştırabilir ve çıktılarını gözlemleyebilir. Uygulama arayüzü blok tabanlı programlama çerçevesi kullanılarak tasarlanmıştır ve her bir işlem bloklar üzerinden yürütülür. Kullanıcı, yönteme ait bloğu çalışma alanına sürükler ve ilgili kodlar kod penceresinde görünür. Çalıştır butonuna tıklanınca üretilen Python çıktısı ise çıktı penceresinde görünür. Uygulama, yeterince programlama becerisi olmayan kullanıcıların karmaşık matematiksel işlemleri hiçbir kod yazmadan yöntem blokları aracılığıyla kolayca çözmesine olanak tanır.

Abstract:
Numerical methods are the cornerstone of modern mathematics and engineering. These techniques are necessary, especially when there are not particularly precise solutions possible, to solve mathematical equations such as integrals, differential equations, linear or nonlinear equations, which have a very important place in various scientific and engineering applications. While numerical calculations were carried out by hand before 1950, the results can be reached very quickly thanks to the algorithms and software prepared for the methods used in these calculations today. Many numerical methods are coded using programming and solved through computers. Modern high-speed computers have increased the applicability of existing numerical methods and paved the way for the development of new methods. This thesis presents the design and implementation of a visual and block-based programming tool for numerical methods commonly used in engineering. This tool has a visual programming interface running on the Node.js platform, Python compiler, code output for Python, and a result generating interface. Thanks to this tool, users can control the blocks of mathematical operations such as matrix, linear equations, root-finding methods, numerical derivative, numerical integral, interpolation used in numerical methods, generate python code, and so on, it can run it and display its outputs. The application interface is inspired by the block-based programming framework, and each process is executed through blocks. The user drags the code block into the workspace and the corresponding codes are shown in the code window. When you click the Run button, the generated Python output is shown in the output window. The application allows users without qualified programming expertise to easily create and run complex mathematical operations without writing any code by means of method blocks.