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

Information concerning the students who enrolled in A.Y. 2017/18

Information on the course unit
Degree course Second cycle degree in
SC1176, Degree course structure A.Y. 2014/15, A.Y. 2017/18
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

Mode of delivery (when and how)
Period First semester
Year 1st Year
Teaching method frontal

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

Start of activities 02/10/2017
End of activities 19/01/2018

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. They also get to understand the run-time support of programs execution.
Examination methods: The exam has a written and an oral part. Each part counts for 50% of the grade. The written part is on the general concepts taught in the course, whereas the oral part is a discussion on homeworks assigned during the course.
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 programming and programming languages.
Course unit contents: Two functional languages are taught: ML and especially Haskell.
Pattern matching;
Curryfied and higher-order functions;
Type inference: what it is and how it is done;
Lazy evaluation;
Functors, applied functors and monads;
Exceptions and I/O;
Run-time support.
Planned learning activities and teaching methods: The course consists of 40 hours of lessons. In addition to these lessons, at least 8 hours are used for assigning exercises to students, then letting the students work on them and after that, discussing their solutions with the teacher. Every week some homeworks are assigned that will be discussed during the oral part of the exam.
Additional notes about suggested reading: Real World Haskell
by Bryan O'Sullivan, Don Stewart, and John Goerzen
O'Reilly Editor
free at:
Textbooks (and optional supplementary readings)
  • Bryan O'Sullivan, Don Stewart, and John Goerzen, Real World Haskell. --: --, --. Cerca nel catalogo