CODICE 90546 ANNO ACCADEMICO 2025/2026 CFU 6 cfu anno 1 COMPUTER SCIENCE 11964 (LM-18) - GENOVA SETTORE SCIENTIFICO DISCIPLINARE INF/01 LINGUA Inglese SEDE GENOVA PERIODO 2° Semestre PRESENTAZIONE Agli studenti verrà fornita una conoscenza più profonda e critica dei linguaggi di programmazione, attraverso l'apprendimento di fondamenti teorici e il confronto di diversi paradigmi. OBIETTIVI E CONTENUTI OBIETTIVI FORMATIVI Acquisire una conoscenza più approfondita e critica dei linguaggi di programmazione, attraverso l’apprendimento delle basi teoriche e il confronto tra diversi paradigmi. OBIETTIVI FORMATIVI (DETTAGLIO) E RISULTATI DI APPRENDIMENTO Al termine del corso, lo studente/la studentessa sarà in grado di: Comprendere in modo approfondito i concetti presentati durante il corso. Praticare con una certa competenza i paradigmi di programmazione proposti. PREREQUISITI Non sono necessari prerequisiti specifici. MODALITA' DIDATTICHE Lezioni frontali e piccolo progetto. PROGRAMMA/CONTENUTO Fondamenti: semantica a piccoli passi, sistemi di tipi, correttezza (soundness) Paradigma funzionale: calcolo lambda, call-by-value e call-by-name, lambda-calcolo semplicemente tipato, polimorfismo, inferenza di Hindley-Milner. Programmazione funzionale in Haskell, valutazione lazy, classi di tipi. Effetti: estensioni del calcolo lambda con caratteristiche imperative e gestione delle eccezioni Paradigma orientato agli oggetti: sottotipizzazione, Featherweight Java Paradigma logico: sintassi di Prolog, semantica modello-teorica, risoluzione SLD Coinduzione e programmazione logica coinduttiva TESTI/BIBLIOGRAFIA Appunti del corso. Benjamin Pierce, Types and Programming Languages. DOCENTI E COMMISSIONI FRANCESCO DAGNINO Ricevimento: Su appuntamento per email LEZIONI INIZIO LEZIONI In accordo con il calendario didattico approvato dal Consiglio dei Corsi di Studio in Informatica: https://corsi.unige.it/corsi/11964/studenti-orario Orari delle lezioni L'orario di questo insegnamento è consultabile all'indirizzo: Portale EasyAcademy ESAMI MODALITA' D'ESAME L’esame consisterà in una prova orale e, eventualmente, nello sviluppo di un piccolo progetto. ndicazioni per studenti con certificazione di DSA, di disabilità o di altri bisogni educativi speciali sono disponibili a partire da https://corsi.unige.it/corsi/11964/studenti-disabilita-dsa MODALITA' DI ACCERTAMENTO L’esame orale verifica la corretta comprensione dei concetti e la capacità di presentarli in modo appropriato. Lo sviluppo di un piccolo progetto attesta che lo studente ha sperimentato i paradigmi di programmazione proposti. ALTRE INFORMAZIONI Per ulteriori informazioni, consultare il modulo Aulaweb dell'insegnamento o contattare il docente.