You need to activate javascript for this site.
Menu Conteúdo Rodapé
  1. Home
  2. Courses
  3. Computer Science and Engineering
  4. Programming Paradigms

Programming Paradigms

Code 11484
Year 1
Semester S2
ECTS Credits 6
Workload PL(30H)/T(30H)
Scientific area Informatics
Entry requirements N/A.
Mode of delivery - Face-to-face.
Work placements - N/A.
Learning outcomes ­-Acquire programming skills within the declarative paradigm, and especially within a functional language (Haskell), through the study of advanced topics (programming semantics, higher order functions, type systems, lazy evaluation, compilation principles and execution of declarative programs)
­-Acquire knowledge to explore the properties of a functional program in order to reason about it (e.g., to mathematically
prove one of its properties) and the power to transform it (e.g, to derive an equivalent program, but one that is more efficient)

Syllabus 1. Introduction to the different programming paradigms
2. Programming Semantics: operational, axiomatic and denotational
3. Variables, Functions and values in the functional paradigm
4. Algebraic, polymorphic, and higher­-order data­types, type systems
5. Algorithms and data structures
6. Lazy evaluation
7. Compilation and execution principles of functional programs
8. Algebraic principles of functional programming
9. Calculation and Manipulation of programs
Main Bibliography Teaching material:
Available at the Curricular Unit's Moodle Webpage.

Books:
"Programming in Haskell”, 2nd Edition, Graham Hutton, Cambridge University Press, 2016
“Introduction to Functional Programming Using Haskell”, Richard Bird, Prentice Hall Press, 1998
“Real World Haskell”, Bryan O’Sullivan, Don Stewart, e John Gerzen, O’Reilly, 2008
“Types and Programming Languages”, Benjamin Pierce, The MIT Press.
“The Implemementation of Functional Programming Languages”, Simon Peyton Jones, Prentice­ Hall International.
“Foundation for Programming Languages”, J. Mitchell, Foundations of Computing, MIT Press, 1996.
“Semantics with Applications An Appetizer”, H. R. Nielson and F. Nielson. Springer, 2007
Teaching Methodologies and Assessment Criteria Frequency Assessment:
2 Tests done remotely followed by an interview for each test (Each test is worth 35% of the final grade)
Tests made available and submitted via Moodle. Interview via Zoom.

Practical coursework in groups of a maximum of 2 students (30%), students will defend their practical work remotely (via Zoom).

Exam Evaluation:
Exam (20 points)

Minimum to pass the course:
Frequency >= 9.5 values
Exam >= 9.5 values

Minimum to be admitted for exam:
Average of the two tests >= 7 values
Practical coursework >= 7 values

Language Portuguese. Tutorial support is available in English.
Last updated on: 2020-06-25

The cookies used in this website do not collect personal information that helps to identify you. By continuing you agree to the cookie policy.