First cycle
degree courses
Second cycle
degree courses
Single cycle
degree courses
School of Science
Course unit
SCP6076299, A.A. 2018/19

Information concerning the students who enrolled in A.Y. 2018/19

Information on the course unit
Degree course Second cycle degree in
SC1176, Degree course structure A.Y. 2014/15, A.Y. 2018/19
bring this page
with you
Number of ECTS credits allocated 6.0
Type of assessment Mark
Course unit English denomination FUNCTIONAL LANGUAGES
Website of the academic structure
Department of reference Department of Mathematics
Mandatory attendance No
Language of instruction English
Single Course unit The Course unit can be attended under the option Single Course unit attendance
Optional Course unit The Course unit can be chosen as Optional Course unit

Teacher in charge GILBERTO FILE' INF/01

ECTS: details
Type Scientific-Disciplinary Sector Credits allocated
Core courses INF/01 Computer Science 6.0

Course unit organization
Period First semester
Year 1st Year
Teaching method frontal

Type of hours Credits Teaching
Hours of
Individual study
Laboratory 1.0 10 15.0 No turn
Lecture 5.0 40 85.0 No turn

Start of activities 01/10/2018
End of activities 18/01/2019
Show course schedule 2018/19 Reg.2014 course timetable

Examination board
Board From To Members of the board
3 a.a. 2018/2019 01/10/2018 28/02/2020 FILE' GILBERTO (Presidente)
BALDAN PAOLO (Membro Effettivo)
CRAFA SILVIA (Supplente)
2 a.a. 2017/2018 01/10/2017 28/02/2019 FILE' GILBERTO (Presidente)
BALDAN PAOLO (Membro Effettivo)
BALLAN LAMBERTO (Membro Effettivo)
CRAFA SILVIA (Membro Effettivo)
RANZATO FRANCESCO (Membro Effettivo)

Prerequisites: Imperative and object oriented programming
Target skills and knowledge: To appreciate the functional programming paridigm. In particular the language Haskell is studied. Students learn to appreciate the importance of types for debugging their programs and learn about polymorphism and lazy evaluation. The concept of Monad is also introduced and its use for generic and modula programming is explained. They also get to understand the run-time support of programs execution.
Examination methods: The exam has a written and an oral part. The written part counts for 80% of the final grade and concerns the concepts and exercises studied during the course. The oral part is a discussion about the project that consists of a parser for a functional language.
Assessment criteria: The exam aims to evaluate the degree to which students have understood the concepts taught in the course and are able to use them to solve problems related to functional languages and their use for producing modular and generic programs.
Course unit contents: The course introduced the functional language Haskell. In particular the following aspects are studied:
Pattern matching.
Curryfied and higher-order functions.
Type inference: what it is and how it is done.
Parametric polymorphism.
Lazy evaluation.
Functors, applied functors and monads.
Run-time support.
Parsing with Monads
Planned learning activities and teaching methods: The course consists of 50 hours. Of these, about 35 hours are of traditional lectures. The remaining 15 hours are used for solving interactively some interesting exercises and for presenting the project.
Additional notes about suggested reading: Programming in Haskell
by Graham Hutton
Cambridge University Press, 2nd edition
Textbooks (and optional supplementary readings)
  • Graham Hutton, Programming in Haskell. --: Cambridge University Press, --. Cerca nel catalogo
  • Miran Lipovaca, Learning you a Haskell for great good. --: --, --.

Innovative teaching methods: Teaching and learning strategies
  • Lecturing
  • Problem based learning
  • Interactive lecturing
  • Questioning
  • Problem solving
  • Active quizzes for Concept Verification Tests and class discussions

Innovative teaching methods: Software or applications used
  • Moodle (files, quizzes, workshops, ...)

Sustainable Development Goals (SDGs)
Industry, Innovation and Infrastructure