Publication in the Diário da República: Despacho n.º 8644/2020 - 08/09/2020
7 ECTS; 1º Ano, 1º Semestre, 42,0 PL + 28,0 TP , Cód. 911931.
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.
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) Vectors and matrices:
a- Definition and manipulation of data sets.
b- Sorting and searching algorithms.
c- Matrix definition and manipulation.
d- Algorithms about matrices.
9) Programming in a high-level language:
a- Introduction to python programming.
b- Processing of simple data structures.
c- Exploration of language modules and packages.
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 , . (2009). Introduction to Algorithms. USA: 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