Seleziona l'Anno Accademico:     2016/2017 2017/2018 2018/2019 2019/2020 2020/2021 2021/2022
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

- Introduzione agli algoritmi
- Analisi degli algoritmi
- Strutture dati
- Analisi ammortizzata
- Alberi
- Alberi binari di ricerca
- Grafi
- Hashing
- Insiemi
- Divide-et-impera
- Strutture dati speciali
- Programmazione dinamica
- Strutture di dati e progettazione di algoritmi
- Algoritmi greedy
- Ricerca locale
- Algoritmi probabilistici
- Problemi NP-Completi
- Soluzioni per problemi intrattabili
- Algoritmi di ordinamento

Metodi Didattici

Il corso si svolge nel secondo semestre ed è strutturato in 48 ore di lezioni frontali in aula e 24 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 preparazione di un progetto di gruppo, da discutere con il docente.

Testi

- A.A. Bertossi, A. Montresor, Algoritmi e Strutture di Dati, Citta' Studi Edizioni, Torino. Terza edizione. 2014.
- C. Demetrescu, I. Finocchi, G. F. Italiano, Algoritmi e strutture dati, McGraw-Hill - seconda edizione. 2008.
- T.H. Cormen, C.E. Leiserson, R.L. Rivest, Introduzione agli algoritmi e Strutture Dati, McGraw-Hill, 2005.

Altre Informazioni

Ciascuna lezione frontale verrà presentata attraverso slide, complementari ai testi 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: