Subject: Programming Paradigms

Scientific Area:

Computing

Workload:

80 Hours

Number of ECTS:

7,5 ECTS

Language:

Portuguese

Overall objectives:

1 - Generic goal: Provide the students with theoretical, methodological and practical knowledge on the development of programs under various paradigms.
2 - Specific goal 1: Introduction to programming in several paradigms: recursive; imperative; functional; by data-centric layers; and with objects.
3 - Specific goal 2: Introduction to the Python programming language.

Syllabus:

1 - Basic elements of Python programming.
2 - Definition of functions.
3 - Structured data types: tuples, strings, lists, and dictionaries.
4 - Recursive programming.
5 - Imperative programming.
6 - Functional programming.
7 - Complementary examples: algorithms for sorting and combination of paradigms.
8 - Layered and data-centric programming method and abstract data types.
9 - Introduction to programming with objects.
10 - Applications and supplements: simulation; graphs; unlimited register machine and programming with go to's; brief introduction to dynamic programming.

Literature/Sources:

J. Carmo , 2023 , Paradigmas da Programação em Python ,
E. Costa , 2015 , Programação em Python: Fundamentos e Resolução de Problemas , FCA
C. Caleiro, J. Ramos , 2016 , Introdução à Programação em Python ,
J. Carmo, A. Sernadas, C. Sernadas, F.M. Dionísio, C. Caleiro , 2014 , Introdução à Programação em Mathematica , IST Press
J. V. Guttag , 2013 , Introduction to Computation and Programming Using Python , MIT Press
M. Lutz , 2013 , Learning Python , O'Reilly Media
D. E. Knuth , 1995 , The Art of Computer Programming , Addison-Wesley
P. Martins , 2019 , Programação em Python: Introdução à programação utilizando múltiplos paradigmas , IST Press
T.H. Cormen, C.E. Leiserson, R.L. Rivest , 2009 , Introduction to Algorithms , MIT Press

Assesssment methods and criteria:

Classification Type: Quantitativa (0-20)

Evaluation Methodology:
Teaching 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. Classification Type: Quantitative (0-20). Evaluation Model: A. The assessment consists of two frequencies and one mini-test to be solved individually. The first frequency is resolved on a computer; the second frequency and the mini-test are solved without using a computer. Each of the frequencies has a weight of 40% in the final classification of the curricular unit, with the mini-test having a weight of 20% in the same final classification. Each frequency constitutes a mandatory assessment element. In the appeal period, the assessment is carried out without using a computer. The student can choose to take an exam on the entire subject (quoted for 20 points), or just on the subject of one and only one of the two frequencies.