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

Functional Programming

Code 14348
Year 1
Semester S2
ECTS Credits 6
Workload PL(30H)/T(30H)
Scientific area Informatics
Entry requirements N/A
Learning outcomes The general learning objectives are
• Understand the fundamentals of functional programming for solving computational problems.
• Understand the differences between the imperative and functional programming paradigms.
• Understand the basic concepts of the functional paradigm using a functional language.
• Develop functional programming skills through programs that use algebraic data types.
• Develop functional programming skills using dynamic programming or backtracking techniques.
Syllabus • OCaml basics (bindings, conditionals, records, functions)
• Recursive functions and recursive types
• Benefits of immutability
• Algebraic data types, pattern matching
• Terminal recursion
• Higher-order functions; closures
• Lexical scope
• Currying
• Syntactic sugar
• Equivalence and effects
• Parametric polymorphism
• Type inference
• Abstract types and modules
Main Bibliography Jean-Christophe Filliâtre, Sylvain Conchon. Apprendre à programmer avec OCaml, Eyrolle, 2014. ISBN-13: 978-2212136784

Emmanuel Chailloux, Pascal Manoury, and Bruno Pagano. Developing Applications With Objective Caml. O'Reilly France, 2002. ISBN-13: 978-2841771219

Anil Madhavapeddy and Yaron Minsky. Real World OCaml: Functional Programming for the Masses. 2nd ed. Cambridge: Cambridge University Press, 2022. ISBN-13: 978-1009129220.

John Whitington. OCaml From the Very Beginning. Coherent Press, 2013. ISBN-13: 978-0957671102.

Michael R. Clarkson. OCaml Programming: Correct + Efficient + Beautiful. Self-Publishing, 2024.
Teaching Methodologies and Assessment Criteria In order to evaluate the acquired competencies, the Teaching-Learning activities will evaluate both the understanding of the theoretical concepts exposed and the ability to put them into practice.

Fraud
The teaching team emphasizes that any type of fraud in any of the evaluation items of this course implies the automatic disapproval of the defaulting student, who may also be the subject of a disciplinary procedure.
Language Portuguese. Tutorial support is available in English.
Last updated on: 2026-03-27

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