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

Ders Bilgi Formu ( ELM 631 )


   Temel bilgiler
Ders adı: İleri Düzey Numerik Hesaplama Yazılımları
Ders kodu: ELM 631
Öğretim üyesi: Dr. Öğr. Üyesi Tuba GÖZEL
AKTS kredisi: 7.5
GTÜ kredisi: 3 (3+0+0)
Yılı, Dönemi: 1/2, Güz ve Bahar
Dersin düzeyi: Doktora
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 MATLAB/C/C++ dilleri üzerine bu yönde öğrenciler kendilerini geliştirme imkanı yakalarlar.

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

    1. Elektronik Mühendisliği kavramlarını uzmanlık derecesinde açıklamak ve uygulamak
    2. Orjinal, bağımsız ve kritik düşünme becerisi kazanıp teorik kavram ve araçlar geliştirmek
    3. Karmaşık problemler için yaklaşımlar tanımlayıp farklı disiplinlerden gruplara liderlik etmek
    4. Mühendislik problemlerini yorumlamak ve çözmek üzere uygun teknikler geliştirmek, yaratıcı çözümler bulmak
    5. Çalışma alanı ile ilgili araştırma metodolojileri ve teknikleri anlayıp uygulayabilmek
    6. Bilimsel bilgiye ulaşmak ve bağımsız çalışmak
    7. Disiplinlerarası etkileşim bulunan araştırma takımlarında etkin şekilde çalışmak
    8. Modern teknolojiyle sürekli öğrenme bilinci geliştirmek
    9. Mevcut bilgiyi geliştirme yöntemleri bulmak
    10. Fikirlerini farklı argümanlar ile destekleyip resmi/gayri resmi şekilde bir grup dinleyiciye çeşitli teknikler kullanarak açık ve net bir biçimde sunmak
    11. Diğer araştırma ve araştırmacıların etik, sahiplik, gizlilik, atıf ve telif gibi haklarının farkında olmak

    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. Elektronik Mühendisliği kavramlarını uzmanlık derecesinde açıklamak ve uygulamak
    2. Orjinal, bağımsız ve kritik düşünme becerisi kazanıp teorik kavram ve araçlar geliştirmek
    3. Karmaşık problemler için yaklaşımlar tanımlayıp farklı disiplinlerden gruplara liderlik etmek
    4. Mühendislik problemlerini yorumlamak ve çözmek üzere uygun teknikler geliştirmek, yaratıcı çözümler bulmak
    5. Çalışma alanı ile ilgili araştırma metodolojileri ve teknikleri anlayıp uygulayabilmek
    6. Sorgulayıcı, yenilikçi yaklaşımlar ortaya koymak
    7. Bilimsel bilgiye ulaşmak ve bağımsız çalışmak
    8. Disiplinlerarası etkileşim bulunan araştırma takımlarında etkin şekilde çalışmak
    9. Bağımsız olarak araştırma projeleri tasarlamak ve yürütmek
    10. Modern teknolojiyle sürekli öğrenme bilinci geliştirmek
    11. Mevcut bilgiyi geliştirme yöntemleri bulmak
    12. Fikirlerini farklı argümanlar ile destekleyip resmi/gayri resmi şekilde bir grup dinleyiciye çeşitli teknikler kullanarak açık ve net bir biçimde sunmak
    13. Diğer araştırma ve araştırmacıların etik, sahiplik, gizlilik, atıf ve telif gibi haklarının farkında olmak

    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. Elektronik Mühendisliği kavramlarını uzmanlık derecesinde açıklamak ve uygulamak
    2. Orjinal, bağımsız ve kritik düşünme becerisi kazanıp teorik kavram ve araçlar geliştirmek
    3. Karmaşık problemler için yaklaşımlar tanımlayıp farklı disiplinlerden gruplara liderlik etmek
    4. Mühendislik problemlerini yorumlamak ve çözmek üzere uygun teknikler geliştirmek, yaratıcı çözümler bulmak
    5. Çalışma alanı ile ilgili araştırma metodolojileri ve teknikleri anlayıp uygulayabilmek
    6. Sorgulayıcı, yenilikçi yaklaşımlar ortaya koymak
    7. Bilimsel bilgiye ulaşmak ve bağımsız çalışmak
    8. Disiplinlerarası etkileşim bulunan araştırma takımlarında etkin şekilde çalışmak
    9. Bağımsız olarak araştırma projeleri tasarlamak ve yürütmek
    10. Modern teknolojiyle sürekli öğrenme bilinci geliştirmek
    11. Mevcut bilgiyi geliştirme yöntemleri bulmak
    12. Fikirlerini farklı argümanlar ile destekleyip resmi/gayri resmi şekilde bir grup dinleyiciye çeşitli teknikler kullanarak açık ve net bir biçimde sunmak
    13. Diğer araştırma ve araştırmacıların etik, sahiplik, gizlilik, atıf ve telif gibi haklarının farkında olmak

    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 prototip 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*: Proje sunumları
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: MATLAB documentation : https://www.mathworks.com/help/matlab/
MATLAB Central : 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: 1 14
Uygulama, Rehberli problem çözme: 1 14
Ödev: 5 14
Dönem projesi: 10 1
Dönem projesi sunumu: 1 1
Kısa sınav (Quiz): 1 4
Ara sınav için bireysel çalışma: 15 1
Ara sınav (Vize): 2 1
Final sınavı için bireysel çalışma: 18 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ü)
-->