Subject: Programming Paradigms
Scientific area:
Computing
Contact hours:
80 Hours
Number of ECTS:
7,5 ECTS
Language:
Portuguese
General 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.
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.
Contents / 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.
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.
Bibliography / Information 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
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
Assessment 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.
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.


