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ı
|
|
Bu dersi başarıyla tamamlayan öğrenciler, şu yetilere sahip olurlar:
-
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ı
-
Elektronik Mühendisliği kavramlarını uzmanlık derecesinde açıklamak ve uygulamak
-
Orjinal, bağımsız ve kritik düşünme becerisi kazanıp teorik kavram ve araçlar geliştirmek
-
Karmaşık problemler için yaklaşımlar tanımlayıp farklı disiplinlerden gruplara liderlik etmek
-
Mühendislik problemlerini yorumlamak ve çözmek üzere uygun teknikler geliştirmek, yaratıcı çözümler bulmak
-
Çalışma alanı ile ilgili araştırma metodolojileri ve teknikleri anlayıp uygulayabilmek
-
Bilimsel bilgiye ulaşmak ve bağımsız çalışmak
-
Disiplinlerarası etkileşim bulunan araştırma takımlarında etkin şekilde çalışmak
-
Modern teknolojiyle sürekli öğrenme bilinci geliştirmek
-
Mevcut bilgiyi geliştirme yöntemleri bulmak
-
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
-
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
-
Yazılı sınav
-
Ödev
-
Öğ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ı
-
Elektronik Mühendisliği kavramlarını uzmanlık derecesinde açıklamak ve uygulamak
-
Orjinal, bağımsız ve kritik düşünme becerisi kazanıp teorik kavram ve araçlar geliştirmek
-
Karmaşık problemler için yaklaşımlar tanımlayıp farklı disiplinlerden gruplara liderlik etmek
-
Mühendislik problemlerini yorumlamak ve çözmek üzere uygun teknikler geliştirmek, yaratıcı çözümler bulmak
-
Çalışma alanı ile ilgili araştırma metodolojileri ve teknikleri anlayıp uygulayabilmek
-
Sorgulayıcı, yenilikçi yaklaşımlar ortaya koymak
-
Bilimsel bilgiye ulaşmak ve bağımsız çalışmak
-
Disiplinlerarası etkileşim bulunan araştırma takımlarında etkin şekilde çalışmak
-
Bağımsız olarak araştırma projeleri tasarlamak ve yürütmek
-
Modern teknolojiyle sürekli öğrenme bilinci geliştirmek
-
Mevcut bilgiyi geliştirme yöntemleri bulmak
-
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
-
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
-
Yazılı sınav
-
Ödev
-
Öğ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ı
-
Elektronik Mühendisliği kavramlarını uzmanlık derecesinde açıklamak ve uygulamak
-
Orjinal, bağımsız ve kritik düşünme becerisi kazanıp teorik kavram ve araçlar geliştirmek
-
Karmaşık problemler için yaklaşımlar tanımlayıp farklı disiplinlerden gruplara liderlik etmek
-
Mühendislik problemlerini yorumlamak ve çözmek üzere uygun teknikler geliştirmek, yaratıcı çözümler bulmak
-
Çalışma alanı ile ilgili araştırma metodolojileri ve teknikleri anlayıp uygulayabilmek
-
Sorgulayıcı, yenilikçi yaklaşımlar ortaya koymak
-
Bilimsel bilgiye ulaşmak ve bağımsız çalışmak
-
Disiplinlerarası etkileşim bulunan araştırma takımlarında etkin şekilde çalışmak
-
Bağımsız olarak araştırma projeleri tasarlamak ve yürütmek
-
Modern teknolojiyle sürekli öğrenme bilinci geliştirmek
-
Mevcut bilgiyi geliştirme yöntemleri bulmak
-
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
-
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
-
Yazılı sınav
-
Ödev
|
|
İçerik
|
|
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
|
|
|
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ü
|
|
|
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ü)
|
|
|
-->