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:
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 assessment consists of two frequencies to be solved, individually, on the computer (one hour each), and a project to be solved in groups of a maximum of 2 students, with oral presentation and discussion with group members and individual assessment. Designating by F1 the student's classification in frequency 1, by F2 the student's classification in frequency 2 and by P the student's classification in the project and oral (with each of the three components quoted for 20 values), then: a) To obtain approval in the UC, it is necessary to satisfy, cumulatively, the conditions: F1 >= 7.5, F2>= 7.5 and 0.4 F1 + 0.45 F2 >= 9.5; b) The final classification, for those approved in the UC, is given by: 0.4 F1 + 0.45 F2 + 0,15 P.