Publication in the Diário da República: Despacho n.º 12805/2021 - 29/12/2021
5 ECTS; 1º Ano, Anual, 55,0 TP
- José Carlos de Sousa Rodrigues de Almeida
- António Manuel Rodrigues Manso
1) Know and understand the principles of structured programming.
2) Design and analyze algorithms for solving problems using pseudocodes and flowcharts.
3) Learning to develop programs in a structured way.
1) Introduction to algorithms and problem solving.
2) Natural and formal languages:
a- Natural and formal languages
b- Pseudocodes and flowcharts.
c- Programming languages.
3) Computational calculation and simple data types:
a- Definition of data types.
b- Operators and functions.
c- Computational expressions.
4) Sequential processing:
a- Definition of variables.
b- Instructions for reading data.
c- Computational calculation instructions.
d- Instructions for writing information.
5) Conditional decision:
a- Relational operators and logical operators.
b- Instructions for simple decisions.
c- Instructions for multiple decisions.
6) Repetition and iteration:
a- Iteration of a set of values.
b- Repetition with initial conditions.
c- Repeat with final conditions.
d- Instructions for changing the flow of cycles.
7) Modularization of programs:
a- Top-down approach to problem solving.
b- Functions and procedures.
c- Parameters and function return.
8) Structured data types : Arrays
a- Definition and manipulation of data sets.
b- Sorting and searching algorithms.
c- Matrix definition and manipulation.
d- Algorithms about matrices.
Practical assessment: 70%
- Construction of a portfolio of algorithms
- Resolution of practical tests
- Minimum grade in the practical assessment: 10 out of 20.
Theoretical evaluation: 30%
- Theoretical test without consultation.
- Minimum grade in the theoretical evaluation: 7 out of 20.
- Cormen, T. e Leiserson, C. e Rivest, R. e Stein, C. (2009). Introduction to Algorithms, 3rd edition. (pp. 1-1000). MIT Press: MIT Press
- Costa, E. (2015). Programação em Python - Fundamentos e Resolução de Problemas. Lisboa: FCA
Lectures focusing on content presentation and demonstration. Practicals to apply and validate theoretical concepts.
Software used in class
Algorithmi learning System