Informazioni generali
Nome insegnamento Fondamenti di Informatica II
Anno 2012/2013
Propedeuticità Fondamenti di Informatica I
Carico didattico
CFU 12
Ore totali lezione 60
Ore totali esercitazione 36
Ore totali laboratorio 24
Obiettivi
Conoscenze: . L’insegnamento ha l’obiettivo di fornire le conoscenze di base sulle strutture dei dati e gli algoritmi più comuni, sulla progettazione concettuale e logica di basi di dati relazionali e sul linguaggio SQL; inoltre fornisce le conoscenze teoriche per la valutazione della complessità computazionale di un algoritmo.
Capacità: L'insegnamento ha l'obiettivo di sviluppare da un lato le capacità progettuali, di apprendimento e di studio sistematico, e dall’altro le capacità di analisi dei risultati del progetto.
Comportamenti: L'insegnamento ha l'obiettivo di sensibilizzare gli studenti sulla necessità di un approccio rigoroso (basato su modelli precisi) alle  tecnologie e alle applicazioni informatiche.
Programma

MODULO DI ALGORITMI E STRUTTURE DATI

TEORIA DI BASE DELLA COMPLESSITA’ COMPUTAZIONALE: Complessità computazionale concreta: tempo di esecuzione dei programmi, espressioni O-grande, classi di complessità. Complessità di programmi iterativi e ricorsivi. Relazioni di ricorrenza del metodo divide et impera e lineari. Limiti inferiori. NP-completezza.  (L: 6, E: 4)
STRUTTURE DATI ED ESEMPI DI ALGORITMI CON LORO VALUTAZIONE: Algoritmi di ricerca e di ordinamento. Alberi Binari, Generici. Alberi binari di ricerca e Heap. Grafi orientati e non orientati, visita in profondità, componenti connesse e minimo albero di copertura. (L: 18; E:8)
Progetto di algoritmi. Metodologie di progetto orientate agli oggetti. Librerie C++. (L:6; E:6; S:12)

MODULO DI BASI DI DATI

PROGETTAZIONE CONCETTUALE: Basi di dati e Sistemi informativi. Sistemi di Gestione delle basi di dati e loro architetture. Livelli di astrazione per la progettazione. Il livello concettuale e il modello Entità-Relationship. Acquisizione e analisi dei requisiti. Strategie di progettazione. (L:6, E:6)
IL MODELLO RELAZIONALE E LA PROGETTAZIONE LOGICA: Tabelle e relazioni. Schema e istanza di una relazione. Vincoli di integrità intrarelazionali e interrelazionali. Reazione alla violazione di un vincolo. Ristrutturazione di uno schema E-R. Traduzione verso il modello relazionale. (L:6, E:4)
FORME NORMALI E TECNICHE DI NORMALIZZAZIONE DI RELAZIONE: Dipendenze funzionali. Relazioni in forma di normale di Boyce-Codd e in terza forma normale. Tecniche di normalizzazione (L:6, E:4)
LINGUAGGI DI INTERROGAZIONE E LORO MODELLI: Il linguaggio SQL. SQL e i linguaggi di programmazione. Calcolo relazionale dei domini e delle tuple. Algebra relazionale. (L: 12, E:4, S:12)

Materiale didattico

N. De Francesco, G. Vaglini, lucidi delle lezioni e delle esercitazioni (sito web del corso)
Atzeni, et al. Basi di Dati: modelli e linguaggi di interrogazione, McGraw-Hill, 2002-2006
N. De Francesco, A. Bechini, appunti di Algoritmi e strutture dati  (sito web del corso)
Martorini, Vaglini. Basi di dati  SEU 2005

Modalità di Esame
Progettazione concettuale di una base di dati e Progettazione di algoritmi in C++.
Prova pratica di impiego del query language SQL. 
Prova scritta  di Basi di dati e Prova scritta e orale di Algoritmi e strutture dati
Link utili
Ultime modifiche: martedì, 15 gennaio 2013, 13:22