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 2021
Offered
2021/22
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.
Condividi su