Publication in the Diário da República: Despacho n.º 6191/2020 - 09/06/2020
5 ECTS; 1º Ano, Anual, 68,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) Implement and test algorithms in high-level programming languages.
1) Introduction to algorithms and problem solving.
2) Computational calculation and simple data types:
a- Definition of data types.
b- Operators and functions.
c- Computational expressions.
3) Sequential processing:
a- Definition of variables.
b- Instructions for reading data.
c- Computational calculation instructions.
d- Instructions for writing information.
4) Conditional decision:
a- Relational operators and logical operators.
b- Instructions for simple decisions.
c- Instructions for multiple decisions.
5) 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.
6) Modularization of programs:
a- Top-down approach to problem solving.
b- Functions and procedures.
c- Parameters and function return.
7) Vectors and matrices:
a- Definition and manipulation of data sets.
b- Sorting and searching algorithms.
c- Matrix definition and manipulation.
d- Algorithms about matrices.
8) Programming in a high-level language:
a- Introduction to python programming.
b- Processing of simple data structures.
c- Exploration of language modules and packages.
1.Construction of an algorithm portfolio : 70% (minimum of 10/20)
2. Written test: 30% (minimum of 7/20)
Assessment by exam:
1.Written proof: 100%
- 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 for presentation and demonstration of the syllabus. Classes practices for implementation and validation of theoretical concepts by solving small exercises.
Software used in class