2025
Advanced Programming
Name: Advanced Programming
Code: INF13279D
6 ECTS
Duration: 15 weeks/156 hours
Scientific Area:
Informatics
Teaching languages: Portuguese
Languages of tutoring support: Portuguese
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
Lectures and tutoring, with each student being responsible for reading the bibliography advised by the teacher.
For some topics there may be seminars focused in specific points of the course program.
Evaluation: Homework and development of a numerical code, with final discussion.
For some topics there may be seminars focused in specific points of the course program.
Evaluation: Homework and development of a numerical code, with final discussion.
Teaching Staff (2024/2025 )
- João Pedro Lebre Magalhães Pereira [responsible]