Publication in the Diário da República: Despacho n.º 12805/2021 - 29/12/2021
5 ECTS; 1º Ano, Anual, 55,0 TP , Cód. 60244.
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