Skip to Main Content (Press Enter)

Logo UNINSUBRIA
  • ×
  • Home
  • Corsi
  • Insegnamenti
  • Professioni
  • Persone
  • Pubblicazioni
  • Strutture
  • Terza Missione
  • Attività
  • Competenze

UNI-FIND
Logo UNINSUBRIA

|

UNI-FIND

uninsubria.it
  • ×
  • Home
  • Corsi
  • Insegnamenti
  • Professioni
  • Persone
  • Pubblicazioni
  • Strutture
  • Terza Missione
  • Attività
  • Competenze
  1. Insegnamenti

SCV0627 - PROGRAMMAZIONE FUNZIONALE

insegnamento
ID:
SCV0627
Durata (ore):
48
CFU:
6
SSD:
LOGICA MATEMATICA
Anno:
2024
  • Dati Generali
  • Syllabus
  • Corsi
  • Persone

Dati Generali

Periodo di attività

Secondo Semestre (17/02/2025 - 30/05/2025)

Syllabus

Obiettivi Formativi

Questo corso fornisce un’introduzione alla programmazione funzionale e alle relative tecniche di programmazione. L'obiettivo primario è quello di fornire agli studenti le conoscenze necessarie alla comprensione e all’utilizzo dei linguaggi funzionali utilizzando il linguaggio Scala come caso di studio. Il corso affianca quindi all'insegnamento teorico dei linguaggi funzionali e delle tecniche di programmazione funzionali esercitazioni basate sull'utilizzo del linguaggio Scala.

Al termine del corso lo studente sarà in grado di:
(1) dimostrare la comprensione dei principi di base dei linguaggi di programmazione funzionali e del loro modello computazionale;
(2) dimostrare la conoscenza delle principali tecniche di programmazione e delle strutture dati utilizzate nel contesto della programmazione funzionale;
(3) formulare e risolvere problemi utilizzando le astrazioni più adatta per la loro formalizzazione nel contesto della programmazione funzionale;
(4) riconoscere e utilizzare la terminologia utilizzata nell’ambito dei linguaggi di programmazione funzionale e delle loro applicazioni.

Lo studente svilupperà inoltre le capacità necessarie a comunicare in modo compiuto e con la corretta terminologia le caratteristiche di un linguaggio di programmazione funzionale e la struttura delle applicazioni

Prerequisiti

Per un proficuo apprendimento di questo insegnamento lo studente deve padroneggiare la programmazione in linguaggio Java oggetto dell’insegnamento fondamentale di Programmazione del primo anno, che dunque costituisce propedeuticità obbligatoria. Inoltre, alcuni degli argomenti del corso richiedono la conoscenza delle principali nozioni matematiche e tecniche dimostrative, delle strutture dati di base e dei relativi algoritmi; per questa ragione è consigliabile che lo studente abbia frequentato e sostenuto gli insegnamenti fondamentali di Algebra e Geometria e Algoritmi e Strutture Dati del primo anno di corso

Metodi didattici

Il corso si articola in lezioni frontali (48 ore). Nelle lezioni frontali la presentazione dei vari argomenti è costantemente alternata alla loro applicazione attraverso la presentazione di esempi e lo sviluppo di esercizi che prevedono la partecipazione attiva degli studenti. Gli esercizi presentati costituiscono una fondamentale linea guida per la preparazione dell’esame.

Verifica Apprendimento

L’esame consiste in una prova scritta. La prova scritta ha o scopo di verificare la conoscenza e la comprensione degli aspetti teorici dei linguaggi funzionali (parte A, 3 domande) e la capacità dello studente di applicare la programmazione funzionale alla risoluzione di piccoli problemi (parte B, 3 esercizi).

Il voto finale sarà determinato per il 50% dalla valutazione della parte A, per il 50% dalla valutazione della parte B.

Il voto finale è espresso in trentesimi.

Contenuti

L'acquisizione delle diverse conoscenze ed abilità attese si svilupperà in modo parallelo lungo tutto l'insegnamento, in cui verranno trattati i seguenti argomenti:
• Caratteristiche dei linguaggi di programmazione imperativi, ad oggetti e funzionali. (4h, obiettivo 1)
• Elementi di base dei linguaggi di programmazione funzionale: ricorsione e tail-recursion. (6h, obiettivo 2)
• Modello di sostituzione valutazione, strategie di valutazione (call-by-name e call-by-value). (4h, obiettivi 1, 3, 4)
• Funzioni all'ordine superiore e currying. (6h, obiettivi 1 e 4)
• Programmazione funzionale e oggetti. Gerarchia dei tipi, tipi parametro, polimorfismo e vincoli. Implementazione in Scala. (6h, obiettivi 2, 4)
• Il problema della decomposizione e pattern matching. (4h, obiettivi 2, 3 e 4)
• Strutture dati mutable e immutable: List, Vector, Trees, Maps. (8h, obiettivo 2)
• Funzioni map, reduce e filter. (6h, obiettivi 2 e 3)
• Correttezza. (4h, obiettivo 1)

Lingua Insegnamento

ITALIANO

Altre informazioni

Il docente riceve su appuntamento, previa richiesta via e-mail a nome.cognome@uninsubria.it. Il docente risponde solo alle e-mail firmate e provenienti dal dominio studenti.uninsubria.it.

Corsi

Corsi

INFORMATICA 
Laurea
3 anni
No Results Found

Persone

Persone

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
  • Accessibilità
  • Utilizzo dei cookie

Realizzato con VIVO | Designed by Cineca | 25.6.0.0