2025
Advanced Programming
Name: Advanced Programming
Code: INF13279D
6 ECTS
Duration: 15 weeks/156 hours
Scientific Area:
Informatics
Teaching languages: Portuguese, English
Languages of tutoring support: Portuguese, English
Regime de Frequência: Presencial
Sustainable Development Goals
Learning Goals
Develop the students knowledge and skills of algorithmic thinking and programming, using languages directed for numerical computation.
Provide tools which make possible to write and implement computational codes with high complexity.
When finishing the course the student must be capable of developing a computer program allowing to solve an advanced engineering problem.
Provide tools which make possible to write and implement computational codes with high complexity.
When finishing the course the student must be capable of developing a computer program allowing to solve an advanced engineering problem.
Contents
- Programming languages: The programming languages paradigms, sequential, object oriented. Examples using (according the most recent standards) Fortran, C, Java, Matlab and Phyton.
- Algorithms implementation: Data structure, problem subdivision, definition of classes and objects, definition of the computation sequence. Numerical libraries. Languages interoperability. Graphical interface and results visualization packages. Automatic code documentation.
- Parallel computing: Motivation. Fundamental aspects of parallel processing architectures. Parallelization of algorithms. Tools for message passing between processors. Performance issues. Examples. GRID. Libraries for numerical parallel processing.
- Algorithms implementation: Data structure, problem subdivision, definition of classes and objects, definition of the computation sequence. Numerical libraries. Languages interoperability. Graphical interface and results visualization packages. Automatic code documentation.
- Parallel computing: Motivation. Fundamental aspects of parallel processing architectures. Parallelization of algorithms. Tools for message passing between processors. Performance issues. Examples. GRID. Libraries for numerical parallel processing.
Teaching Methods
The lectures combine theory and practice, which include time for questions and answers. Formative worksheets are administered on a regular basis. Students are responsible for studying the bibliography provided by the instructor. Depending on the topic, seminars focused on specific points of the syllabus may also be organized.
Assessment
Continuous Assessment:
* Short tests (3, throughout the semester, on current material): 50%
* Exam period test (covering the entire syllabus): 30%
* Final project: 20%
Final grade = 0.5 × Average of short tests + 0.3 × Final test + 0.2 × Project
The student passes if the final grade is greater than or equal to 10 (out of 20).
There is a minimum grade requirement of 7.5 (out of 20) both for the average of the short tests and for the final test.
* Short tests (3, throughout the semester, on current material): 50%
* Exam period test (covering the entire syllabus): 30%
* Final project: 20%
Final grade = 0.5 × Average of short tests + 0.3 × Final test + 0.2 × Project
The student passes if the final grade is greater than or equal to 10 (out of 20).
There is a minimum grade requirement of 7.5 (out of 20) both for the average of the short tests and for the final test.
Teaching Staff
- António Manuel Ribeiro dos Anjos [responsible]