Study-unit FUNCTIONAL PROGRAMMING

Course name Mathematics
Study-unit Code A002256
Curriculum Matematica per la crittografia
Lecturer Stefano Marcugini
Lecturers
  • Stefano Marcugini
Hours
  • 42 ore - Stefano Marcugini
CFU 6
Course Regulation Coorte 2023
Supplied 2023/24
Supplied other course regulation
Learning activities Affine/integrativa
Area Attività formative affini o integrative
Sector 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.