Unit FUNCTIONAL PROGRAMMING
- Course
- Mathematics
- Study-unit Code
- A002256
- Curriculum
- Matematica per la crittografia
- Teacher
- Stefano Marcugini
- Teachers
-
- Stefano Marcugini
- Hours
- 42 ore - Stefano Marcugini
- CFU
- 6
- Course Regulation
- Coorte 2024
- Offered
- 2024/25
- Learning activities
- Affine/integrativa
- Area
- Attività formative affini o integrative
- Academic discipline
- INF/01
- Type of study-unit
- Obbligatorio (Required)
- Type of learning activities
- Attività formativa monodisciplinare
- Language of instruction
- English
- Contents
- Functional programming paradigm.
Ocaml language.
Recursion.
Pattern matching.
Lists.
Trees.
Backtracking.
Graphs.
Search algorithms.
Elements of lambda-calculus.
Implementation of a parser. - Reference texts
- M. Cialdea Mayer, C. Limongelli. Introduzione alla Programmazione Funzionale. Esculapio.
http://caml.inria.fr/ (to download programming environment and English documentation) - Educational objectives
- Understanding the concepts of functional programming.
Ability to build applications.
Ability to develop complex data stuctures.
Ability to develop intelligent applications. - Prerequisites
- None
- Teaching methods
- Lectures, laboratory exercises
- Other information
- Website: www.unistudium.unipg.it
For the exam schedule, see:
www.informatica.unipg.it - Learning verification modality
- Final project and oral exam.
The final project is designed to test the ability to correctly apply the theoretical knowledge and understanding of the issues proposed.
The oral exam is a discussion lasting about 30 minutes designed to ascertain the level of knowledge and understanding about the theoretical contents of the course reached by the student. Also the oral exam will test the ability of communication of the student and the ability of autonomous organization of the speech.
At the request of the student the exam may be taken also in English. - Extended program
- Functional programming paradigm.
Ocaml language.
Recursion.
Pattern matching.
Lists.
Trees.
Backtracking.
Graphs.
Search algorithms.
Depth-first search and breadth-first search, euristich search. Branch and bound, A* algorithm.
Elements of lambda-calculus.
Implementation of a parser.