Seleziona l'Anno Accademico:     2017/2018 2018/2019 2019/2020 2020/2021 2021/2022 2022/2023
Docente
LUDOVICO BORATTO (Tit.)
Periodo
Secondo Semestre 
Modalità d'Erogazione
Convenzionale 
Lingua Insegnamento
ITALIANO 



Informazioni aggiuntive

Corso Percorso CFU Durata(h)
[60/79]  INFORMATICA APPLICATA E DATA ANALYTICS [79/00 - Ord. 2021]  PERCORSO COMUNE 9 84

Obiettivi

Al termine del completamento del corso con successo, lo studente sarà in grado di:
- conoscere gli algoritmi per risolvere problemi computazionali di base su strutture di dati elementari;
- progettare algoritmi efficienti (anche di Intelligenza Artificiale) per risolvere semplici problemi computazionali;
- stimare, in ordine di grandezza, il costo computazionale degli algoritmi;
- analizzare la complessità computazionale di problemi computazionali di base;
- valutare l'efficienza e la correttezza di un algoritmo;
- elaborare e di presentare un progetto per la risoluzione di problemi computazionali di base.

Prerequisiti

Al fine di comprendere gli argomenti trattati nel corso, lo studente deve aver chiari i concetti di base della programmazione. Nello specifico, deve essere in grado di scrivere programmi per la soluzione di semplici problemi e deve saper utilizzare efficacemente la ricorsione. È inoltre richiesta una conoscenza di base della matematica discreta e dell’analisi matematica.

Contenuti

- Ruolo degli algoritmi nell’elaborazione dei dati
- Insertion sort e analisi degli algoritmi
- Crescita delle funzioni
- Divide et impera
- Heapsort
- Quicksort
- Ordinamento in tempo lineare
- Mediane e statistiche d’ordine
- Strutture dati elementari
- Hashing
- Alberi binari di ricerca
- Algoritmi elementari per grafi
- Alberi di connessione minimi
- Cammini minimi da sorgente unica
- Cammini minimi fra tutte le coppie
- String matching
- Programmazione dinamica
- Algoritmi golosi (greedy)

Metodi Didattici

Il corso si svolge nel secondo semestre ed è strutturato in 48 ore di lezioni frontali in aula e 36 ore di laboratorio. Nelle lezioni frontali, vengono presentati gli aspetti teorici degli argomenti trattati. Successivamente, verrà dedicato ampio spazio alla risoluzione di esercizi. Nelle lezioni di laboratorio, gli studenti saranno coinvolti nella progettazione e implementazione degli algoritmi e delle strutture dati presentate durante il corso.

Verifica dell'apprendimento

Per la valutazione della parte teorica, le modalità di verifica prevedono il superamento di due prove in itinere o una prova finale, in entrambi i casi scritte. Per la valutazione della parte di laboratorio, è prevista la discussione con il docente delle esercitazioni fatte a lezione, con modifiche delle stesse fatte al momento.

Testi

- T.H. Cormen, C.E. Leiserson, R.L. Rivest, C. Stein, Introduzione agli algoritmi e Strutture Dati (terza edizione), McGraw-Hill, 2010.

Altre Informazioni

Ciascuna lezione frontale verrà presentata attraverso slide, complementari al testo di riferimento e rilasciate prima di ciascuna lezione. Le lezioni di laboratorio si svolgeranno attraverso la proiezione di slide e di codice sorgente, commentato in maniera interattiva con gli studenti. Durante il corso, sia per la parte teorica che di laboratorio, saranno offerti allo studente esercizi funzionali all’auto-valutazione e alla preparazione dell’esame. È prevista l’interazione con gli studenti anche attraverso strumenti ausiliari, quali forum o canali Telegram.

Questionario e social

Condividi su:
Impostazioni cookie