Studiare

In questa sezione è possibile reperire le informazioni riguardanti l'organizzazione pratica del corso, lo svolgimento delle attività didattiche, le opportunità formative e i contatti utili durante tutto il percorso di studi, fino al conseguimento del titolo finale.

Queste informazioni sono destinate esclusivamente agli studenti e alle studentesse già iscritti a questo corso.
Se sei un nuovo studente interessato all'immatricolazione, trovi le informazioni sul percorso di studi alla pagina del corso:

Laurea magistrale in Mathematics - Immatricolazione dal 2025/2026

Il piano didattico è l'elenco degli insegnamenti e delle altre attività formative che devono essere sostenute nel corso della propria carriera universitaria.
Selezionare il piano didattico in base all'anno accademico di iscrizione.

CURRICULUM TIPO:

2° Anno   Attivato nell'A.A. 2018/2019

InsegnamentiCreditiTAFSSD
6
B
MAT/05
Final exam
32
E
-
Attivato nell'A.A. 2018/2019
InsegnamentiCreditiTAFSSD
6
B
MAT/05
Final exam
32
E
-
Insegnamenti Crediti TAF SSD
Tra gli anni: 1°- 2°
To be chosen between
Tra gli anni: 1°- 2°
Tra gli anni: 1°- 2°
Other activities
4
F
-

Legenda | Tipo Attività Formativa (TAF)

TAF (Tipologia Attività Formativa) Tutti gli insegnamenti e le attività sono classificate in diversi tipi di attività formativa, indicati da una lettera.




S Stage e tirocini presso imprese, enti pubblici o privati, ordini professionali

Codice insegnamento

4S001438

Docente

Ugo Solitro

Coordinatore

Ugo Solitro

Crediti

6

Lingua di erogazione

Inglese en

Settore Scientifico Disciplinare (SSD)

INF/01 - INFORMATICA

Periodo

I sem. dal 2 ott 2017 al 31 gen 2018.

Obiettivi formativi

Scopo del corso è lo studio dei fondamenti matematici degli algoritmi, dei linguaggi di programmazione e del ruolo dei paradigmi di programmazione nelle tecniche computazionali per la risoluzione dei problemi in una prospettiva metodologica per l'insegnamento e l'applicazione a problemi reali.

A conclusione del corso lo studente avrà acquisito

- dimestichezza con i principi fondamentali dei diversi linguaggi;
- confidenza con i diversi stili di programmazione;
- conoscenza di almeno due linguaggi di programmazione;
- capacità di affrontare un qualunque linguaggio di programmazione o ambiente per lo sviluppo di soluzioni;
- abilità a utilizzare le conoscenze e le abilità conseguite sia in ambito didattico che applicativo.

NOTA.
Le informazioni generali e i riferimenti bibliografici sono in aggiornamento.

Programma

CONTENUTI

Durante lo svolgimento del corso saranno sviluppati i temi e le attività descritti qui di seguito.

- Sistemi di computazione effettiva e algoritmi: macchine astratte, funzioni computabili e ricorsive, sistemi di riscrittura, modelli funzionali e orientati agli oggetti.
- Tipi e Logica.
- Logiche costruttive proposizionali, del I e del II ordine. Sistemi di deduzione naturale.
- Sistemi di Tipo per linguaggi funzionali: tipi semplici, I e II ordine. Inferenza di Tipo.
- Isomorfismo Curry-Howard.
- Paradigmi di programmazione: imperativo, funzionale, funzionale, ad oggetti e (cenni) logico.
- Fondamenti della programmazione orientata agli oggetti.
- Classi e oggetti.
- Linguaggi basati sulle classi e sugli oggetti.
- Tipi e Classi.
- Sotto-classi e sotto-tipi; ereditarietà, polimorfismo, risoluzione statica e dinamica.
- Classi parametriche.
- ...
- Introduzione ad alcuni linguaggi di programmazione paradigmatici con approfondimento di almeno un linguaggio di programmazione orientato agli oggetti.
- Sviluppo di progetti di interesse matematico, educativo e/o applicativo.

MODALITÀ DIDATTICHE

L'attività didattica si svolgerà secondo due distinte modalità.

- Presentazione e studio degli argomenti sopra elencati.
- Sviluppo di attività e progetti in relazione con gli argomenti trattati.

Le attività di approfondimento e di progetto (anche pratico) potranno enfatizzare gli aspetti educativi, teorici o applicativi secondo l'orientamento degli studi dei singoli studenti.

Testi di riferimento
Autore Titolo Casa editrice Anno ISBN Note
Timothy Budd An Introduction to Object-Oriented Programming (Edizione 3) Addison-Wesley 2002 0201760312
Martín Abadi, Luca Cardelli A Theory of Objects Springer Verlag 1996 0387947752
O. Hazzan, T. Lapidot, N. Ragonis Guide to Teaching Computer Science (Edizione 2) Springer 2015 978-1-4471-6629-0
Jean-Yves Girard, Yves Lafont, Paul Taylor Proof and Types Cambridge University Press 1989 9780521371810
Guy Cousineau, Michel Mauny The functional approach to programming (Edizione 1) Cambridge University Press 1998 0-521-5768
H. Rogers Theory of recursive functions and effective computability MIT Press 1988

Modalità d'esame

L'esame finale consiste di norma di una prova scritto e un colloquio orale.
La prova scritta comprende domande generali ed esercizi.
Il colloquio orale riguarda l'elaborato scritto, l'attività svolta e gli argomenti del corso.
L'ammissione al colloquio orale è condizionata dal superamento della prova scritta.

La prova scritta può essere parzialmente sostituita da prove parziali o lo sviluppo di un progetto concordato con il docente.

Il candidato dovrà mostrare di aver conseguito le seguenti conoscenze e abilità.
- Comprendere i principi fondamentali dei linguaggi di programmazione e dei paradigmi, e i fondamenti matematici dei linguaggi di programmazione;
- Essere in grado di utilizzare efficacemente un linguaggio di programmazione orientato agli oggetti, e discuterne i principi e i problemi specifiche, in particolare, in riferimento ai contenuti del corso;
- Saper utilizzare le conoscenze acquisite nelle applicazioni e/o in un ambito educativo.

Le/gli studentesse/studenti con disabilità o disturbi specifici di apprendimento (DSA), che intendano richiedere l'adattamento della prova d'esame, devono seguire le indicazioni riportate QUI