Skip to Main Content (Press Enter)

Logo UNINSUBRIA
  • ×
  • Home
  • Degrees
  • Courses
  • Jobs
  • People
  • Outputs
  • Organizations
  • Third Mission
  • Projects
  • Expertise & Skills

UNI-FIND
Logo UNINSUBRIA

|

UNI-FIND

uninsubria.it
  • ×
  • Home
  • Degrees
  • Courses
  • Jobs
  • People
  • Outputs
  • Organizations
  • Third Mission
  • Projects
  • Expertise & Skills
  1. Courses

SCV0627 - FUNCTIONAL PROGRAMMING

courses
ID:
SCV0627
Duration (hours):
48
CFU:
6
SSD:
LOGICA MATEMATICA
Year:
2025
  • Overview
  • Syllabus
  • Degrees
  • People

Overview

Date/time interval

Secondo Semestre (23/02/2026 - 29/05/2026)

Syllabus

Course Objectives

This course provides an introduction to functional programming and the related programming techniques. The primary goal is to provide students with the necessary knowledge to understand and to develop programs in the functional programming languages using Scala as case study. The course is thus formed by lessons that illustrate the fundamentals of functional programming and the related programming techniques and programming exercises using the Scala programming language.


Expected learning outcomes. Students will be able to.
(1) demonstrate their understanding of the basic principle of functional programming languages and their computational model;
(2) demonstrate their understanding of the principal programming techniques and data-structure in the functional programming setting;
(3) formulate and solve problems proposing the most suitable abstractions for their formalization in a functional programming setting;
(4) recognize and use the proper terminology of functional languages and functional programming.

Course Prerequisites

The prerequisites for a profitable learning and for achieving the objectives of the course include the knowledge of the Java Programming Language presented in the fundamental teaching of Programmazione, which is therefore a pre-requisite. Moreover, the student is expected to have a good knowledge of discrete mathematics and basic data structures provided in the courses of Algebra e geometria and Algoritmi e strutture dati.

Teaching Methods

The teaching activities consists of lectures (48h). The arguments presented during lectures are applied through class exercises; students are expected to actively participate in exercises discussion. The presented exercises have an essential role in preparing the final exam.

Assessment Methods

The exam aims to verify the acquisition and the correct understanding of the contents of the course. The exam is written and structured as follows: (part A) three questions concerning the theoretical aspects of functional programming languages; (part B) three exercises of the kind discussed during class exercises.

The final grade will be determined as follows: 50% from the knowledge of definitions and examples of the concepts dealt during the course (part A); 50% from the proper conduct of the exercises.

The final grade is expressed in a score out of 30, where 18 represents the minimum and 30 the maximum.

Contents

The acquisition of various knowledge and expected skills will develop in parallel throughout the teaching, during which the following topics will be covered:
• Fundamentals concepts of imperative, object-oriented and functional programming languages. (4h, goal 1)
• Fundamentals of functional programming languages: recursion and tail-recursion. (6h, goal 2)
• Substitution model, evaluation strategies (call-by-name and call-by-value). (4h, goals 1,3,4)
• Higher-order functions and currying. (6h, goals 1,4)
• Functional programming and objects. Type hierarchy, type parameters, polymorphism and constraints. Implementation in Scala. (6h, goals 2,4)
• The decomposition problem and pattern matching. (4h, goals 3,4)
• Mutable and immutable data structures. List, Vector, Trees, Maps. (8h, goal 2)
• Map, reduce and filter. (6h, goals 2,3)
• Correctness. (4h, goal 1)

Course Language

Italian

More information

Office hours: by appointment via email. Appointment requests must be sent from the institutional email address (domain studenti.uninsubria.it) .

Degrees

Degrees

COMPUTER SCIENCE 
Bachelor’s Degree
3 years
No Results Found

People

People

FERRARI MAURO
Goal 4: Quality education
Settore MATH-01/A - Logica matematica
Gruppo 01/MATH-01 - LOGICA MATEMATICA, DIDATTICA E STORIA DELLA MATEMATICA
AREA MIN. 01 - Scienze matematiche e informatiche
PE1_1 - Logic and foundations - (2020)
PE6_4 - Theoretical computer science, formal methods, and quantum computing - (2020)
Docenti di ruolo di Ia fascia
No Results Found
  • Accessibility
  • Use of cookies

Powered by VIVO | Designed by Cineca | 26.4.5.0