2023

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.

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.

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.