Algoritmi e Principi dell'Informatica
Matteo Pradella (twitter @bzoto, tag #corsoapi)
AVVISI
pagina twitter, #corsoapi
Attenzione! Vi ricordo e segnalo che i corsi Algoritmi e Principi
dell'Informatica (10 crediti) e Progetto di Algoritmi e Strutture Dati (1 credito di Prova Finale)
sono diversi: dovete sostenerli entrambi solo se sono nel vostro piano di studi.
1/4/2020: Potrete trovare il materiale aggiornato sul sito BEEP del corso
Obiettivi
L'informatica ha subito un'evoluzione estremamente rapida dai suoi
albori ai giorni d'oggi. Cio' ha prodotto notevoli benefici alla
qualita' della vita ma ha anche creato problemi legati all'affidabilita'
dei sistemi informatici. Spesso infatti le tecniche di progetto
adottate si sono rivelate inadeguate alla complessita' dei problemi
affrontati. Da piu' parti si e' individuata, tra le cause principali
della scarsa affidabilita' dei sistemi informatici, la mancanza di
solidi principi teorici su cui basare le tecniche di progettazione.
Il corso di algoritmi e principi dell'informatica ha lo scopo di colmare questa lacuna
affrontando in maniera sistematica i problemi fondamentali
dell'informatica e mettendo in evidenza come un approccio rigoroso e
basato sui fondamenti teorici della disciplina abbia grande rilevanza
nelle applicazioni pratiche.
Programma (Modulo I - ex Informatica Teorica)
I modelli dell'informatica
- Automi (a stati finiti, a pila, Macchine di Turing)
- Grammatiche
- Modelli nondeterministici
- Uso della logica matematica per modellare sistemi e descriverne proprieta'
Teoria della computazione
- Potenza dei modelli di calcolo
- Tesi di Church
- Problemi indecidibili
- Tecniche di dimostrazione di indecidibilita'
Programma (Modulo II - ex Informatica 3)
Teoria della complessita'
- Nozioni e notazioni fondamentali per l'analisi di complessita'
- I modelli di calcolo e le relazioni tra le loro complessita' computazionali
- Definizione di complessita' spaziale e temporale per macchina di Turing deterministica
- Astrazioni e notazione asintotica
- Complessita' di automi a stati finiti, a pila e macchina di Turing a nastro singolo Accelerazione lineare
- La macchina RAM
- Valutazione di complessita' con criterio del costo costante
- Il criterio logaritmico
- Il teorema di correlazione polinomiale
- Gerarchie di complessita'
- Cenni all'NP-completezza
Strutture dati e algoritmi fondamentali
- Algoritmi di ricerca e ordinamento
- Strutture dati elementari (pile, code, liste): rappresentazione, algoritmi di ricerca e gestione
- Tabelle hash: funzioni di hash, indirizzamento aperto.
- Alberi e loro gestione
- Alberi binari
- Algoritmi di visita e gestione
- Alberi rosso-neri
- Grafi, loro rappresentazione e gestione
Tecniche avanzate per la progettazione di algoritmi
- Cenni a backtracking, programmazione dinamica e algoritmi greedy
Testi, appunti e materiale vario
Testi, Modulo I:
- D. Mandrioli, P. Spoletini, Informatica Teorica (II edizione), CittàStudi, 2011 (testo ufficiale)
- La vecchia edizione in inglese del testo non è più stampata, però è disponibile sul sito
del primo autore
- L. Lavazza, A. Morzenti, D. Mandrioli, P. San Pietro, Esercizi di Informatica Teorica (terza edizione), Esculapio (eserciziario)
- D. Mandrioli, P. Spoletini, Mathematical logic for computer science - an introduction, Esculapio, 2010 (dispensa sulla logica)
Testo, Modulo II:
- Cormen T., Leiserson C., Rivest R., Stein C., Introduzione agli
algoritmi e strutture dati
(c'è una versione ridotta per il corso: Algoritmi e Principi dell'Informatica, ISBN 9781307547382, McGraw-Hill 2020.)
Appunti, Modulo I:
Appunti, Modulo II:
Temi d'esame ed esercizi
Vecchi temi d'esame ed esercizi (Modulo I/Informatica Teorica)
Vecchi temi d'esame ed esercizi (Modulo II/Informatica 3)
Modalita' di svolgimento delle prove di verifica
Le prove d'esame assegnano 33 punti che corrispondono al voto
massimo di 30 e lode. Le prove constano di una verifica scritta.
Testi e appunti sono consultabili durante l'esame.
Ricevimento
Martedi ore 16.30
N.B. ricevo senza problemi anche su appuntamento - contattatemi pure via
email o datemi un colpo di telefono.
Esercitatore:
Achille Frigeri.