Corsi di Laurea Corsi di Laurea Magistrale Corsi di Laurea Magistrale
a Ciclo Unico
Scuola di Scienze
INFORMATICA
Insegnamento
FUNCTIONAL LANGUAGES
SCP6076299, A.A. 2018/19

Informazioni valide per gli studenti immatricolati nell'A.A. 2018/19

Principali informazioni sull'insegnamento
Corso di studio Corso di laurea magistrale in
INFORMATICA
SC1176, ordinamento 2014/15, A.A. 2018/19
N0
porta questa
pagina con te
Crediti formativi 6.0
Tipo di valutazione Voto
Denominazione inglese FUNCTIONAL LANGUAGES
Sito della struttura didattica http://informatica.scienze.unipd.it/2018/laurea_magistrale
Dipartimento di riferimento Dipartimento di Matematica
Obbligo di frequenza No
Lingua di erogazione INGLESE
Sede PADOVA
Corso singolo È possibile iscriversi all'insegnamento come corso singolo
Corso a libera scelta È possibile utilizzare l'insegnamento come corso a libera scelta

Docenti
Responsabile GILBERTO FILE' INF/01

Dettaglio crediti formativi
Tipologia Ambito Disciplinare Settore Scientifico-Disciplinare Crediti
CARATTERIZZANTE Discipline Informatiche INF/01 6.0

Organizzazione dell'insegnamento
Periodo di erogazione Primo semestre
Anno di corso I Anno
Modalità di erogazione frontale

Tipo ore Crediti Ore di
didattica
assistita
Ore Studio
Individuale
LABORATORIO 1.0 10 15.0
LEZIONE 5.0 40 85.0

Calendario
Inizio attività didattiche 01/10/2018
Fine attività didattiche 18/01/2019
Visualizza il calendario delle lezioni Lezioni 2019/20 Ord.2014

Commissioni d'esame
Commissione Dal Al Membri
3 a.a. 2018/2019 01/10/2018 28/02/2020 FILE' GILBERTO (Presidente)
BALDAN PAOLO (Membro Effettivo)
BALLAN LAMBERTO (Supplente)
CRAFA SILVIA (Supplente)
RANZATO FRANCESCO (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)

Syllabus
Prerequisiti: Programmazione imperativa ed orientata agli oggetti
Conoscenze e abilita' da acquisire: Apprezzare il paradigma funzionale di programmazione. In particolare viene studiato il linguaggio Haskell. Gli studenti imparano ad apprezzare l'importanza dei tipi come fondamentale mezzo per scoprire gli errori e imparano concetti quali il polimorfismo parametrico e la valutazione lazy. Viene introdotto anche il concetto di Monade e il suo uso per la programmazione generica e modulare. Imparano anche a capire la gestione run time dei programmi.
Modalita' di esame: L'esame consiste di una parte scritta (80% del voto finale) e di una orale (20% del voto finale). L'esame scritto verte sulle nozioni generali e gli esercizi visti nel corso, mentre la parte orale è una discussione sul progetto che consiste nella realizzazione di un parser per un linguaggio funzionale.
Criteri di valutazione: L'esame mira a valutare il grado di comprensione dei concetti insegnati, raggiunto dagli studenti, e la capacità di usare questi concetti per affrontare problemi relativi ai linguaggi funzionali e al loro uso per definire programmi modulari e generici.
Contenuti: Nel corso viene illustrato il linguaggio funzionale Haskell. In particolare si studiano i seguenti aspetti:
Pattern matching.
Curryficazione e funzioni di ordine superiore.
Inferenza di tipo: cos'è e come viene fatta.
Input e output.
Polimorfismo parametrico.
Valutazione pigra.
Funtori, funtori applicativi e monadi.
Supporto run-time.
Parsing con le Monadi.
Attivita' di apprendimento previste e metodologie di insegnamento: Il corso prevede 50 ore totali. Di queste, circa 35 sono di lezioni frontali. Le restanti ore sono impiegate per la soluzione interattiva di esercizi e per la presentazione e discussione del progetto.
Eventuali indicazioni sui materiali di studio: Programming in Haskell
by Graham Hutton
Cambridge University Press, 2nd edition
Testi di riferimento:
  • Graham Hutton, Programming in Haskell. --: Cambridge University Press, --. Cerca nel catalogo
  • Miran Lipovaca, Learning you a Haskell for great good. --: --, --.

Didattica innovativa: Strategie di insegnamento e apprendimento previste
  • Lecturing
  • Problem based learning
  • Interactive lecturing
  • Questioning
  • Problem solving
  • Active quiz per verifiche concettuali e discussioni in classe

Didattica innovativa: Software o applicazioni utilizzati
  • Moodle (files, quiz, workshop, ...)

Obiettivi Agenda 2030 per lo sviluppo sostenibile
Industria, innovazione e infrastrutture