| 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.
|