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.
Tipologia di Attività formativa D e F
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 in Matematica applicata - Immatricolazione dal 2025/2026Nella scelta delle attività di tipo D, gli studenti dovranno tener presente che in sede di approvazione si terrà conto della coerenza delle loro scelte con il progetto formativo del loro piano di studio e dell'adeguatezza delle motivazioni eventualmente fornite.
anni | Insegnamenti | TAF | Docente | |
---|---|---|---|---|
1° 2° | Storia e didattica della geologia | D |
Guido Gonzato
(Coordinatore)
|
|
1° 2° 3° | Algoritmi | D |
Roberto Segala
(Coordinatore)
|
|
1° 2° 3° | Conoscenza scientifica e strategie di apprendimento attivo | F |
Francesca Monti
(Coordinatore)
|
|
1° 2° 3° | Genetica | D |
Massimo Delledonne
(Coordinatore)
|
anni | Insegnamenti | TAF | Docente |
---|---|---|---|
1° 2° 3° | Algoritmi | D |
Roberto Segala
(Coordinatore)
|
1° 2° 3° | Linguaggio programmazione Python | D |
Vittoria Cozza
(Coordinatore)
|
1° 2° 3° | Organizzazione aziendale | D |
Giuseppe Favretto
(Coordinatore)
|
anni | Insegnamenti | TAF | Docente | |
---|---|---|---|---|
1° | Conoscenze per l'accesso: matematica | D |
Rossana Capuani
|
|
1° 2° 3° | ECMI modelling week | F | Non ancora assegnato | |
1° 2° 3° | ESA Summer of code in space (SOCIS) | F | Non ancora assegnato | |
1° 2° 3° | Google summer of code (GSOC) | F | Non ancora assegnato | |
1° 2° 3° | Introduzione all'analisi non standard | F |
Sisto Baldo
|
|
1° 2° 3° | Linguaggio Programmazione C | D |
Pietro Sala
(Coordinatore)
|
|
1° 2° 3° | Linguaggio Programmazione LaTeX | D |
Enrico Gregorio
(Coordinatore)
|
Programmazione con laboratorio (2020/2021)
Codice insegnamento
4S02751
Crediti
12
Lingua di erogazione
Italiano
Settore Scientifico Disciplinare (SSD)
INF/01 - INFORMATICA
L'insegnamento è organizzato come segue:
Teoria
Laboratorio
Obiettivi formativi
L'insegnamento si propone fornire gli strumenti fondamentali per analizzare e risolvere problemi attraverso l'utilizzo di strumenti computazionali e, in particolare, lo sviluppo di programmi.
Scopo del corso è l'apprendimento dei principi fondamentali della programmazione imperativa e ad oggetti, dei linguaggi di programmazione e l'acquisizione delle seguenti competenze:
- comprensione e analisi dei problemi, la loro descrizione rigorosa per mezzo del linguaggio matematico e la definizione delle specifiche delle eventuali soluzioni;
- progettazione delle soluzioni e confronto di possibili soluzioni secondo diverse metodologie;
- codifica delle soluzioni per mezzo di linguaggi di programmazione sia imperativi che orientati agli oggetti;
- sviluppo di soluzioni articolate per problemi di piccole e medie dimensioni per mezzo di opportuni ambienti software;
- valutazione degli algoritmi, sia in termini di efficienza che di correttezza.
Programma
------------------------
MM: Teoria
------------------------
CONTENUTI INTRODUZIONE: aspetti generali - Problemi e soluzioni: caratterizzazione matematica, analisi di problemi descritti in linguaggio naturale e loro descrizione rigorosa nel linguaggio della matematica, specifica della soluzione. - Modelli di computazione: modelli informali, macchina astratta, nozione di algoritmo. - Linguaggi: introduzione ai linguaggi formali e alle grammatiche BNF, compilatore e interprete. Linguaggi di programmazione: introduzione elementare al Python; il linguaggio Java. PARTE I - Problemi, algoritmi e programmi. - Principi di programmazione strutturata: costanti, variabili, espressioni; istruzioni fondamentali: assegnamento, composizione sequenziale, condizionale e iterazione, raggruppamento; struttura di un semplice programma. - I tipi di dati. Nozione generale di tipo; rappresentazione dei dati; caratterizzazione dei tipi di dati; tipi di dati astratti. - I tipi di dati primitivi: caratteristiche, uso e problemi; tipi di dati numerici e non; tipi enumerativi. - Tipi di dati strutturati: array (e record), file, puntatori, stringhe, definizione di tipo. - I sotto-programmi: funzioni, procedure e metodi; struttura di un sottoprogramma; passaggio dei parametri; regole di località e di visibilità; ricorsione. - Introduzione agli oggetti (in Java): oggetti e classi; componenti di classe e di istanza; costruttori, campi e metodi; modificatori principali. - Strutture dati avanzate: rappresentazione di sequenze, vettori, matrici. caratterizzazione induttiva di tipi; definizione ricorsiva di strutture dati; realizzazione concreta in Java. - Introduzione alla programmazione ad oggetti avanzata: estensione di classi; ereditarietà e polimorfismo; interfacce e classi astratte (introduzione) PARTE II - Analisi degli algoritmi. - Correttezza degli algoritmi: terminazione; proprietà logiche; correttezza parziale e totale rispetto alle specifiche. - Efficienza degli algoritmi. Introduzione alla valutazione dell'efficienza degli algoritmi: prestazioni e complessità. Elementi di complessità: misure di tempo e spazio; costo computazionale in tempo e spazio; stime asintotiche del costo computazionale; caso peggiore e caso medio; costo ammortizzato. - Casi di studio rilevanti Sequenze statiche e dinamiche: definizione astratta; implementazione; operazioni di base; Algoritmi di ricerca (semplice e binaria), ordinamento (insertion, selection, merge, quick sort), concatenazione e fusione. Sequenze, Matrici e Vettori: implementazione, operazioni e algoritmi. Liste: definizione astratta e implementazione; operazioni di base; introduzione a Pile e Code. Alberi (introduzione): definizione astratta di alberi binari e implementazione; operazioni di base; alberi bilanciati e di ricerca. Introduzione ai grafi: definizione matematica; implementazione elementare.
------------------------
MM: Laboratorio
------------------------
Il programma del modulo di laboratorio ricalca quello del modulo di teoria.
-----------------------------------------
Attività didattiche a distanza
-----------------------------------------
In caso di difficoltà nel presenziare personalmente alle lezioni, lo studente potrà comunque partecipare alle attività didattiche in modalità remota.
Bibliografia
Attività | Autore | Titolo | Casa editrice | Anno | ISBN | Note |
---|---|---|---|---|---|---|
Teoria | Bertossi, Alan e Montresor, Alberto | Algoritmi e strutture di dati (Edizione 3) | Città Studi Edizioni, De Agostini Scuola | 2014 | 978-8-825-17395-6 | |
Teoria | Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein | Introduction to Algorithms (Edizione 3) | MIT Press | 2009 | 978-0-262-53305-8 | Testo di sola consultazione |
Teoria | Walter Savitch | Programmazione di base e avanzata con Java (Edizione 2) | Pearson | 2018 | 978-8-891-90457-7 | |
Laboratorio | Walter Savitch | Programmazione di base e avanzata con Java (Edizione 2) | Pearson | 2018 | 978-8-891-90457-7 |
Modalità d'esame
------------------------
MM: Teoria
------------------------
L'esame finale consiste in un colloquio orale al quale si accede dopo aver superato una prova scritta di ammissione La prova scritta può essere sostituite, anche parzialmente, da attività che si svolgono durante l'anno. La modalità d'esame potrebbe subire delle variazioni in funzione dell'evolversi della situazione sanitaria.
------------------------
MM: Laboratorio
------------------------
Gli studenti dovranno consegnare un progetto svolto come attività di gruppo e sostenere un breve orale in cui presenteranno e discuteranno il progetto svolto. La modalità d'esame potrebbe subire delle variazioni in funzione dell'evolversi della situazione.