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.
Lecturer
- Paulo Sérgio Correia Monteiro (2)
- António Manuel Rodrigues Manso (1)(2)
(1) Docente Responsável
(2) Docente que lecciona
Prerequisites
Not applicable
Objectives
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.
Program
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.
d- Recursion.
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.
Evaluation Methodology
Practical assessment: 50%
- Construction of a portfolio of algorithms
- Resolution of practical tests
- Minimum grade in the practical assessment: 10 out of 20.
Theoretical evaluation: 50%
- Theoretical test without consultation.
- Minimum grade in the theoretical evaluation: 7 out of 20.
Bibliography
- 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
Teaching Method
Lectures focusing on content presentation and demonstration. Practicals to apply and validate theoretical concepts.
Software used in class
Algorithmi
Google Colab
Pycharm
eLearning platform