Syllabus ( ELEC 631 )
|
Basic information
|
|
Course title: |
Advanced Numerical Computation Software |
Course code: |
ELEC 631 |
Lecturer: |
Assist. Prof. Tuba GÖZEL
|
ECTS credits: |
7.5 |
GTU credits: |
3 (3+0+0) |
Year, Semester: |
1/2, Fall and Spring |
Level of course: |
Third Cycle (Doctoral) |
Type of course: |
Area Elective
|
Language of instruction: |
English
|
Mode of delivery: |
Face to face
|
Pre- and co-requisites: |
none |
Professional practice: |
No |
Purpose of the course: |
Our aim is to help electronics engineering students gain knowledge on numerical software utilities and design, particularly information will be imparted on a prototyping language, C/C++, and pertaining interfaces and relevant software libraries through examples. This course is especially recommended to those students who plan to work in the software industry or those who would like to proceed to graduate studies, the common sought-for benefit being the utilization of software library inside a linux-oriented platform. The software organization knowledge to be acquired in this course will help students formulate reusable numerical computing codes. Generic makefile structures, which either provide alternatives for IDEs or which can be used as auxiliaries, will be supplied to students and help them organize their lower level (C/C++) codes and focus immediately on programming, as is the case for scripting languages (e.g., a prototyping language). Also interface usage examples will be taught and this is going to help students utilize software libraries written in C/C++ from a protyping language, which does not have direct access to such libraries, the experience being enhanced by the programming facilities of the language. The instructor will provide the makefile necessary for this paradigm as well. |
|
|
|
Learning outcomes
|
|
Upon successful completion of this course, students will be able to:
-
Students benefit from the opportunity to gain deeper insight into the pertaining aspects of the most commonly used programming languages in numerical computing: MATLAB/C/C++
Contribution to Program Outcomes
-
Define and manipulate advanced concepts of Electronics Engineering in a specialized way
-
Gain original, independent and critical thinking, and develop theoretical concepts and tools,
-
Identify approaches for complex problems and lead multidisciplinary teams.
-
Interpret engineering problems, formulate appropriate techniques to solve them and find out creative solutions
-
Understand relevant research methodologies and techniques and their appropriate application within his/her research field
-
Acquire scientific knowledge and work independently
-
Work effectively in multi-disciplinary research teams
-
Develop an awareness of continuous learning in relation with modern technology
-
Find out new methods to improve his/her knowledge
-
Support his/her ideas with various arguments and present them clearly to a range of audience, formally and informally through a variety of techniques
-
Be aware of issues relating to the rights of other researchers and of research subjects e.g. confidentiality, attribution, copyright, ethics, malpractice, ownership of data
Method of assessment
-
Written exam
-
Homework assignment
-
Students gain knowledge on constructing software prototypes rapidly, effective utilization of data structures, algorithms, and design patterns, implementing in a lower-level language those software modules that do not meet the performance criteria, makefile design and utilization.
Contribution to Program Outcomes
-
Define and manipulate advanced concepts of Electronics Engineering in a specialized way
-
Gain original, independent and critical thinking, and develop theoretical concepts and tools,
-
Identify approaches for complex problems and lead multidisciplinary teams.
-
Interpret engineering problems, formulate appropriate techniques to solve them and find out creative solutions
-
Understand relevant research methodologies and techniques and their appropriate application within his/her research field
-
Question and find out innovative approaches.
-
Acquire scientific knowledge and work independently
-
Work effectively in multi-disciplinary research teams
-
Design and conduct research projects independently
-
Develop an awareness of continuous learning in relation with modern technology
-
Find out new methods to improve his/her knowledge
-
Support his/her ideas with various arguments and present them clearly to a range of audience, formally and informally through a variety of techniques
-
Be aware of issues relating to the rights of other researchers and of research subjects e.g. confidentiality, attribution, copyright, ethics, malpractice, ownership of data
Method of assessment
-
Written exam
-
Homework assignment
-
Students gain knowledge on the software libraries that could be used in the application of subdisciplinary topics of electronics engineering.
Contribution to Program Outcomes
-
Define and manipulate advanced concepts of Electronics Engineering in a specialized way
-
Gain original, independent and critical thinking, and develop theoretical concepts and tools,
-
Identify approaches for complex problems and lead multidisciplinary teams.
-
Interpret engineering problems, formulate appropriate techniques to solve them and find out creative solutions
-
Understand relevant research methodologies and techniques and their appropriate application within his/her research field
-
Question and find out innovative approaches.
-
Acquire scientific knowledge and work independently
-
Work effectively in multi-disciplinary research teams
-
Design and conduct research projects independently
-
Develop an awareness of continuous learning in relation with modern technology
-
Find out new methods to improve his/her knowledge
-
Support his/her ideas with various arguments and present them clearly to a range of audience, formally and informally through a variety of techniques
-
Be aware of issues relating to the rights of other researchers and of research subjects e.g. confidentiality, attribution, copyright, ethics, malpractice, ownership of data
Method of assessment
-
Written exam
-
Homework assignment
|
|
Contents
|
|
Week 1: |
Introduction to numerical computing software styles |
Week 2: |
Examples for effective prototyping language usage styles: path setting, OOP oriented or scratch tests construction |
Week 3: |
C/C++ review oriented towards numerical computing, introduction to tests and library construction |
Week 4: |
C/C++ design patterns examples, effective data structure and algorithm construction |
Week 5: |
Generic makefiles for compiling/linking C/C++ code |
Week 6: |
Interface between a prototyping language and C/C++: introduction, examples, generic makefiles |
Week 7: |
Midterm |
Week 8: |
Information and examples on building a project with a prototyping language, C/C++, and relevant interfaces |
Week 9: |
it++ library utilization examples: introduction, communication examples and prototyping-language-oriented coding in C++ |
Week 10: |
it++ library utilization examples |
Week 11: |
OpenCV library examples |
Week 12: |
OpenCV library examples |
Week 13: |
Scuff-EM utilization examples: introduction to the computational electromagnetics library |
Week 14: |
Scuff-EM utilization examples |
Week 15*: |
Project presentations |
Week 16*: |
Final Exam |
Textbooks and materials: |
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/ |
Recommended readings: |
MATLAB documentation : https://www.mathworks.com/help/matlab/ MATLAB Central : https://www.mathworks.com/matlabcentral/ |
|
* Between 15th and 16th weeks is there a free week for students to prepare for final exam.
|
|
|
|
Assessment
|
|
|
Method of assessment |
Week number |
Weight (%) |
|
Mid-terms: |
4, 7, 10, 13 |
48 |
Other in-term studies: |
1, 2, 3, 5, 6, 8, 9, 11, 12, 14 |
24 |
Project: |
|
0 |
Homework: |
11, 12, 13, 14 |
16 |
Quiz: |
|
0 |
Final exam: |
16 |
12 |
|
Total weight: |
(%) |
|
|
|
Workload
|
|
|
Activity |
Duration (Hours per week) |
Total number of weeks |
Total hours in term |
|
Courses (Face-to-face teaching): |
3 |
14 |
|
Own studies outside class: |
1 |
14 |
|
Practice, Recitation: |
1 |
14 |
|
Homework: |
5 |
14 |
|
Term project: |
10 |
1 |
|
Term project presentation: |
1 |
1 |
|
Quiz: |
1 |
4 |
|
Own study for mid-term exam: |
15 |
1 |
|
Mid-term: |
2 |
1 |
|
Personal studies for final exam: |
18 |
1 |
|
Final exam: |
2 |
1 |
|
|
|
Total workload: |
|
|
|
Total ECTS credits: |
* |
|
* ECTS credit is calculated by dividing total workload by 25. (1 ECTS = 25 work hours)
|
|
|
-->