Subject: Programming Paradigms

Scientific Area:



80 Hours

Number of ECTS:

7,5 ECTS



Overall objectives:

1 - Generic goal: Provide the students with theoretical, methodological and practical knowledge on the development of programs under various paradigms.
2 - Specific objective 1: Introduction to programming in Python (recursive, imperative, functional, object oriented);
3 - Specific objective 2: Applications in different areas, such as symbolic and numerical computation.


1 - Introduction to the Python programming language using basic numerical computation and function visualization examples.
2 - Definition of functions and manipulation of lists.
3 - Recursive, imperative and functional programming.
4 - Comparison and combination of paradigms.
5 - Examples of additional programming: sorting, numerical methods.
6 - Method of programming based on data-centric layers.
7 - Brief notions of object-oriented programming.
8 - Examples of complementary programming (and combination of paradigms): First example: towers of Hanoi.
9 - Abstract data types.
10 - Applications and supplements: simulation; graphs; brief introduction to dynamic programming;


J. Carmo, A. Sernadas, C. Sernadas, F.M. Dionísio e C. Caleiro , 2004 , Introdução à Programação em Mathematica , IST Press
S. Wolfram , 2000 , The Mathematica book , Wolfram Media
J. Carmo, A. Sernadas, C. Sernadas, F. M. Dionísio, C. Caleiro , 2014 , Introdução à Programação em Mathematica (3a edição) , IST Press
E. Costa , 2015 , Programação em Python, Fundamentos e Resolução de Problemas , FCA
J. V. Guttag , 2013 , Introduction to Computation and Programming Using Python (revised and expanded edition) , MIT Press
M. Lutz , 2013 , Learning Python (fifth edition) , O'Reilly Media
C. Rossant , 2013 , Learning IPython for Interactive Computing and Data Visualization , Packt Publishing
D. E. Knuth , 1998 , The Art of Computer Programming: , Addison-Wesley

Assesssment methods and criteria:

Classification Type: Quantitativa (0-20)

Evaluation Methodology:
In the theoretical classes the teaching of the programming paradigms is always done through examples. The practical classes consist in developing, programs on the computer by students. The evaluation consists of two frequencies to solved individually, in which the practical component is performed on the compute (one and half hours each). Exam/Test n.º 1: 50% - minumum 7.5. Exam/Test n.º 2: 50% - minumum 7.5. Approval in the UC: 9.5 values in the average of the two frequencies.