ECTS @ IUE ECTS @ IUE ECTS @ IUE ECTS @ IUE ECTS @ IUE ECTS @ IUE ECTS @ IUE

Ders Bilgi Formu ( ELM 433 )


   Temel bilgiler
Ders adı: Numerik Hesaplama Yazilimlari
Ders kodu: ELM 433
Öğretim üyesi: Dr. Öğr. Üyesi Önder ŞUVAK
AKTS kredisi: 6
GTÜ kredisi: 3 ()
Yılı, Dönemi: 4, Güz ve Bahar
Dersin düzeyi: Lisans
Dersin tipi: Alan seçmeli
Öğretim dili: İngilizce
Öğretim şekli: Yüz yüze
Ön koşullar: yok
Staj durumu: Yok
Dersin amacı: Elektronik Mühendisliği kapsamında yararlı olabilecek bazı nümerik programlama teknikleri hakkında öğrencilere altyapı sağlanması, özellikle bir prototip dili, C/C++ ve ilgili arayüzlerin kullanımı konularında yetkinlik kazandırılması, ilgili yazılım kütüphanelerinin etkin kullanımı konusunda bilgi edindirilmesi amaçlanmaktadır. İş hayatında yazılım üzerine çalışacak veya lisans sonrası bir yüksek lisans/doktora programına devam etmeyi planlayan bir çok öğrencinin gereksinimi olabilecek yazılım kütüphanelerinin özellikle linux tabanlı işletim sistemleri üzerinde kullanımı tanıtılmak üzere bu ders teknik seçmeli olarak önerilir. Bu derste edinilmesi gereken yazılım kodları organizasyonu bilgileri ile öğrenciler tekrar kullanılabilecek nümerik hesaplama odaklı kodlar oluşturabileceklerdir. IDE'lere küçük/orta ölçekli projeler kapsamında alternatif veya yardımcı olabilecek ve öğrencilere sunulacak kapsayıcı makefile yapıları öğrencilerin daha alt düzeydeki (C/C++ seviyesindeki) kodlarını organize etmelerini kolaylaştırmaktadır ve adeta üst düzeydeki dillerin (örneğin prototip amaçlı scripting dilleri) programcıya sunduğu olanakları, doğrudan program yazmaya odaklanabilmek üzere, sunmaktadır. Ayrıca bir prototip dilinin özellikle C/C++ ile bağlantısını sağlayabilmek amacıyla bu dil ile C/C++ arasındaki arayüzün kullanımı öğretilecektir; burada arayüz aracılığıyla prototip dilinin erişimi bulunmayan kütüphaneleri kullanabilmesi ve etkin olarak prototip dili seviyesinde kullanım rahatlığını sunabilmesi amaç alınacaktır. Bu paradigma için de makefile yapısı hali hazırda öğrencilere sunulmak üzere mevcuttur.
   Öğrenme çıktıları Yukarı

Bu dersi başarıyla tamamlayan öğrenciler, şu yetilere sahip olurlar:

  1. Nümerik hesaplamalarda çok kullanılan bir prototip dili ve C/C++ üzerine bu yönde öğrenciler kendilerini geliştirme imkanı yakalarlar.

    Program Çıktılarına Katkıları

    1. Temel Elektronik Mühendisliği bilgisi edinmek
    2. Matematik, fen ve mühendislik bilgilerini gerçek hayattaki problemlere uygulayabilmek
    3. Sistem tasarımlarını geliştirmek, uygulamak ve sürdürmek
    4. Mühendislik problemlerini formüle edip çözmek
    5. Mühendislik uygulamalarında farklı teknik ve modern araçları kullanma bilgisini geliştirmek

    Değerlendirme Tipi

    1. Yazılı sınav
    2. Ödev
  2. Öğrenciler yazılım prototiplerini hızlı şekilde oluşturup çalıştırabilme, etkin veri yapısı, algoritma bilgisi ve tasarım biçimlerini uygulayabilme, performans kriterlerini sağlamayan yazılım modüllerini daha alt düzeydeki dillerde gerçekleme, makefile tasarımı ve kullanımı üzerine bilgi edinirler.

    Program Çıktılarına Katkıları

    1. Temel Elektronik Mühendisliği bilgisi edinmek
    2. Matematik, fen ve mühendislik bilgilerini gerçek hayattaki problemlere uygulayabilmek
    3. Sistem tasarımlarını geliştirmek, uygulamak ve sürdürmek
    4. Mühendislik problemlerini formüle edip çözmek
    5. Mühendislik uygulamalarında farklı teknik ve modern araçları kullanma bilgisini geliştirmek

    Değerlendirme Tipi

    1. Yazılı sınav
    2. Ödev
  3. Öğrenciler elektronik mühendisliğinin alt bilim dallarında kullanılabilecek yazılım kütüphaneleri konusunda bilgi sahibi olurlar.

    Program Çıktılarına Katkıları

    1. Temel Elektronik Mühendisliği bilgisi edinmek
    2. Matematik, fen ve mühendislik bilgilerini gerçek hayattaki problemlere uygulayabilmek
    3. Sistem tasarımlarını geliştirmek, uygulamak ve sürdürmek
    4. Mühendislik problemlerini formüle edip çözmek
    5. Mühendislik uygulamalarında farklı teknik ve modern araçları kullanma bilgisini geliştirmek

    Değerlendirme Tipi

    1. Yazılı sınav
    2. Ödev
   İçerik Yukarı
1. hafta: Nümerik hesaplama yazılım biçimlerinin tanıtımı
2. hafta: Etkin prototip dili kullanımına örnekler: path ayarlama, sınıflar, nesnel yönelimli veya müsvedde özelliğine sahip testlerin oluşturulması
3. hafta: Nümerik hesaplamaya yönelik C/C++ kullanımının tekrarı, test ve kütüphane oluşturulması
4. hafta: C/C++ tasarım biçimlerine örnekler, etkin veri yapısı ve algoritma kullanımı
5. hafta: C/C++ kodlarının derlenmesi/link edilmesi için genel ve kapsayıcı makefile örnekleri
6. hafta: Prototip dili ve C/C++ arasındaki arayüzün kullanımı: giriş, örnekler ve kapsayıcı makefile yapıları
7. hafta: Arasınav
8. hafta: Bir prototip dili, C/C++ ve arayüzler ile proje ortaya çıkarılması üzerine bilgiler ve örnekler
9. hafta: it++ kütüphanesi kullanım örnekleri: giriş, haberleşme örnekleri ve C++ kapsamında bir prptotip dili stilinde programlama
10. hafta: it++ kütüphanesi kullanım örnekleri: it++ ve alternatifleri aracılığı ile uygulama geliştirme
11. hafta: OpenCV kütüphanesi kullanım örnekleri: veri yapıları ve kütüphane içerisinde gerçeklenmiş algoritmalara giriş
12. hafta: OpenCV kütüphanesi kullanım örnekleri: öncelikli olarak görüntü işleme odaklı algoritmaların tanıtımı
13. hafta: Scuff-EM kütüphanesi kullanım örnekleri: hesaplamalı elektromagnetik kütüphanesinin kullanımı
14. hafta: Scuff-EM kütüphanesi kullanım örnekleri: sınır elemanları yöntemi odaklı örnekler
15. hafta*: Eksik kalan konuların telafisi veya tekrarı
16. hafta*: Final sınavı
Ders kitapları ve materyaller: Introduction to Algorithms 3ed., Cormen et al.
C++ reference : http://en.cppreference.com/w/
makefile manual : https://www.gnu.org/software/make/manual/make.html
it++ documentation : http://itpp.sourceforge.net
opencv documentation : http://opencv.org/
scuff em documentation : http://homerreid.github.io/scuff-em-documentation/
Önerilen kaynaklar: https://www.mathworks.com/help/matlab/
https://www.mathworks.com/matlabcentral/
  * 15. ve 16. haftalar arası final sınavına hazırlık haftası bulunmaktadır.
Değerlendirme Yukarı
Değerlendirme tipi Hafta numarası Ağırlık (%)
Ara sınavlar (Vizeler): 4, 7, 10, 13 48
Dönem içi diğer çalışmalar: 1, 2, 3, 5, 6, 8, 9, 11, 12, 14 24
Proje: 0
Ödev: 11, 12, 13, 14 16
Kısa sınav (Quiz): 0
Final sınavı: 16 12
  Toplam ağırlık:
(%)
   İş yükü Yukarı
Etkinlik Süre (Haftalık saat) Toplam hafta sayısı Dönem boyu toplam iş yükü
Dersler (Yüz yüze öğretme): 3 14
Ders dışı bireysel çalışma: 3 14
Uygulama, Rehberli problem çözme: 1 14
Ödev: 2 14
Dönem projesi: 0 0
Dönem projesi sunumu: 0 0
Kısa sınav (Quiz): 1 4
Ara sınav için bireysel çalışma: 5 1
Ara sınav (Vize): 2 1
Final sınavı için bireysel çalışma: 11 1
Final sınavı: 2 1
    Toplam işyükü:
    Toplam AKTS kredisi:
*
  * AKTS kredisi, toplam iş yükünün 25'e bölümüdür. (1 AKTS = 25 saatlik iş yükü)
-->