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.
Piano Didattico
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 Informatica - Immatricolazione dal 2025/2026Il 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.
1° Anno
Insegnamenti | Crediti | TAF | SSD |
---|
Architettura degli elaboratori
2° Anno Attivato nell'A.A. 2021/2022
Insegnamenti | Crediti | TAF | SSD |
---|
3° Anno Attivato nell'A.A. 2022/2023
Insegnamenti | Crediti | TAF | SSD |
---|
Un insegnamento a scelta
Insegnamenti | Crediti | TAF | SSD |
---|
Architettura degli elaboratori
Insegnamenti | Crediti | TAF | SSD |
---|
Insegnamenti | Crediti | TAF | SSD |
---|
Un insegnamento a scelta
Insegnamenti | Crediti | TAF | SSD |
---|
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.
Algoritmi (2021/2022)
Codice insegnamento
4S02709
Docente
Coordinatore
Crediti
12
Offerto anche nei corsi:
Lingua di erogazione
Italiano
Settore Scientifico Disciplinare (SSD)
INF/01 - INFORMATICA
Periodo
Primo semestre, Secondo semestre
Obiettivi formativi
Obiettivo del corso è fornire le conoscenze di base per il progetto e l'analisi di algoritmi fondamentali con particolare attenzione al loro utilizzo nella soluzione di semplici problemi in bioinformatica. Gli studenti impareranno come implementare semplici soluzioni algoritmiche a problemi in bioinformatica ed alcune strutture dati fondamentali tramite la programmazione orientata agli oggetti. Il corso si compone di due moduli: Algoritmi per Bioinformatica e Laboratorio di Programmazione II, i cui obiet-tivi specifici sono descritti di seguito. Modulo Algoritmi per Bioinformatica: Gli studenti acquisiranno le conoscenze di base per il progetto e l'analisi di algoritmi fondamentali. Impareranno come strutturare un problema in termini algoritmici; come quantificare le risorse computazionali necessarie per l'esecuzione di un algoritmo e quindi comparare diverse soluzioni algoritmiche. In particolare, lo studente che ha seguito il corso con pro-fitto sarà in grado di valutare l'applicabilità e l'efficacia di tecniche di base per la progettazione degli algoritmi a semplici problemi computazionali. Modulo: Laboratorio di Programmazione II: L'obiettivo del modulo è quello di fornire le conoscenze di base per l'implementazione di algoritmi fondamentali tramite la programmazione orientata agli oggetti. Il corso propone Java come linguaggio di riferimento e prevede la produzione assistita di software e l'implementazione di progetti specifici su problemi di interesse bioinformatico. Al termine dell'inse-gnamento lo studente saprà utilizzare le principali strutture dati presenti in Java e realizzare nuove strutture dati utili per l'implementazione di moduli software specifici.
Programma
Complessità: complessità degli algoritmi, notazione asintotica, metodi di risoluzione delle equazioni di ricorrenza. Ordinamento e selezione: richiamo di insertion sort, richiamo di merge sort, heap sort, quick
sort, quick sort probabilistico. Algoritmi lineari, counting sort, radix sort, bucket sort. Algoritmi di Selezione.
Strutture dati: heap, alberi binari di ricerca, alberi RB, B-alberi heap binomiali, tabelle hash, code con priorita`
insiemi disgiunti, tecniche di estensione di una struttura dati, grafi.
Progetto ed analisi di algoritmi: divide et impera, greedy, programmazione dinamica, ricerca locale, backtracking
e branch and bound.
Algoritmi fondamentali: alberi di copertura di costo minimo (Prim e Kruskal), programmazione lineare (simplesso
e cenno all'algoritmo polinomiale basato sugli ellissoidi) cammini minimi a sorgente singola (Dijkstra e Bellman-
Ford) e multipla (Floyd-Warshall e Johnson), flusso massimo (Ford-Fulkerson, Karp), matching massimale su
grafo bipartito.
Bibliografia
Modalità d'esame
L'esame consiste in una prova scritta di tre ore, suddivisa in due parti, e di un eventuale colloquio orale.
La prima parte della prova scritta è un test a risposte multiple e viene valutata con un punteggio tra 0 e 30. Chi ottiene una valutazione inferiore a 18 è respinto, mentre chi ottiene una valutazione compresa tra 18 e 23 termina l'esame. La seconda parte della prova scritta, alla quale si è ammessi ottenendo una valutazione di almeno 24 nella prima parte, consiste di uno o più esercizi di difficoltà crescente. Viene valutata con un punteggio tra 24 e 30.
La prova orale, facoltativa, è riservata a chi ottiene almeno 27 punti nella seconda parte della prova scritta.
La scala della valutazione finale è la seguente. 18-21 (conoscenza puramente nozionistica), 22-24 (comprensione accettabile degli argomenti), 25-27 (capacità di applicare i concetti appresi), 28-30 (capacità di elaborare idee proprie sulla base dei concetti appresi)