PROGRAMMAZIONE BASE DI DATI E SISTEMI INFORMATIVI

Scheda dell'insegnamento

Anno accademico di regolamento: 
2015/2016
Anno di corso: 
3
Anno accademico di erogazione: 
2017/2018
Tipo di attività: 
Obbligatorio
Lingua: 
Italiano
Crediti: 
9
Ciclo: 
Primo Semestre
Ore di attivita' didattica: 
63
Prerequisiti: 

non sono previsti prerequisiti

Moduli

Metodi di valutazione

Modalita' di verifica dell'apprendimento: 

E'previsto un esame orale

Valutazione: 
Voto Finale

Obiettivi formativi

 Conoscenza e comprensione: principali tecniche algoritmiche per la soluzione di problemi
e tecnologie informatiche

 Capacità di applicare conoscenza e comprensione: uso di strumenti informatici hardware e software

 Autonomia di giudizio: identificazione degli strumenti hardware e software più adatti

 Abilità comunicative: con strumenti informatici

 Capacità di apprendimento: buona capacità di adattamento al variare delle tecnologie IT

Contenuti

Programma dell’insegnamento
I PARTE: Basi di Dati
Concetti generali. Sistemi informativi e sistemi informatici. Concetto di informazione e dato. Introduzione a basi di dati e DBMS. Modello dei dati, concetto di schema e istanza. Indipendenza logica e fisica dei dati e tipologia di linguaggi per basi di dati.
Modelli logici. Modello relazionale: relazioni e tabelle, schemi ed istanze, informazione incompleta e valori nulli, chiavi, vincoli intra/interrelazionali.
Algebra relazionale: operatori di base e operatori derivati. Interrogazioni in algebra relazionale ed equivalenza di espressioni algebriche.
Definizione dei dati in SQL. Definizione di interrogazioni in SQL: interrogazioni semplici, con operatori insiemistici, nidificate e con raggruppamento. Operazioni di inserimento, modifica e cancellazione. Definizione di viste.
Metodologie di progettazione di basi di dati. Il modello Entità-Relazione, costrutti principali.
Ristrutturazione schemi E-R: eliminazione delle gerarchie, degli attributi composti e multivalore. Traduzione da schemi E-R a schemi relazionali.

II PARTE: Programmazione avanzata in C
Struttura di un programma - Tipi di dati – Espressioni, istruzioni semplici e strutture di controllo - Funzioni - Struttura dinamica dell’esecuzione di un programma – puntatori – Strutture dati dinamiche.
III PARTE: Programmazione in Java
Introduzione alla programmazione a oggetti - Primi esempi di programmi in Java - Invocazioni di metodi - Invocazione di costruttori - Prototipi, segnature, overloading - Tipi di variabili: primitivi, riferimenti - Il tipo boolean e operatori logici - Cicli: while, do, for - Lazy evaluation - Metodi statici - Classi involucro - Array con esempi - Introduzione alle classi astratte - Riepilogo: gerarchia delle classi, gerarchia dei tipi - Classe Object - Dynamic binding - Cenni ai package - Implementazione di un'interfaccia - Ereditarietà - Costruttori e ereditarietà - Estensioni di classi astratte - Adombramento di variabili: uso di this - Overloading di metodi e costruttori - Introduzione alle eccezioni.

Programma esteso

Programma dell’insegnamento
I PARTE: Basi di Dati
Concetti generali. Sistemi informativi e sistemi informatici. Concetto di informazione e dato. Introduzione a basi di dati e DBMS. Modello dei dati, concetto di schema e istanza. Indipendenza logica e fisica dei dati e tipologia di linguaggi per basi di dati.
Modelli logici. Modello relazionale: relazioni e tabelle, schemi ed istanze, informazione incompleta e valori nulli, chiavi, vincoli intra/interrelazionali.
Algebra relazionale: operatori di base e operatori derivati. Interrogazioni in algebra relazionale ed equivalenza di espressioni algebriche.
Definizione dei dati in SQL. Definizione di interrogazioni in SQL: interrogazioni semplici, con operatori insiemistici, nidificate e con raggruppamento. Operazioni di inserimento, modifica e cancellazione. Definizione di viste.
Metodologie di progettazione di basi di dati. Il modello Entità-Relazione, costrutti principali.
Ristrutturazione schemi E-R: eliminazione delle gerarchie, degli attributi composti e multivalore. Traduzione da schemi E-R a schemi relazionali.

II PARTE: Programmazione avanzata in C
Struttura di un programma - Tipi di dati – Espressioni, istruzioni semplici e strutture di controllo - Funzioni - Struttura dinamica dell’esecuzione di un programma – puntatori – Strutture dati dinamiche.
III PARTE: Programmazione in Java
Introduzione alla programmazione a oggetti - Primi esempi di programmi in Java - Invocazioni di metodi - Invocazione di costruttori - Prototipi, segnature, overloading - Tipi di variabili: primitivi, riferimenti - Il tipo boolean e operatori logici - Cicli: while, do, for - Lazy evaluation - Metodi statici - Classi involucro - Array con esempi - Introduzione alle classi astratte - Riepilogo: gerarchia delle classi, gerarchia dei tipi - Classe Object - Dynamic binding - Cenni ai package - Implementazione di un'interfaccia - Ereditarietà - Costruttori e ereditarietà - Estensioni di classi astratte - Adombramento di variabili: uso di this - Overloading di metodi e costruttori - Introduzione alle eccezioni.

Bibliografia consigliata

A. Bellini, A. Guidi: Linguaggio C guida alla programmazione.
G. Pighizzini, M. Ferrari: Dai fondamenti agli oggetti. Corso di programmazione JAVA
P. Crescernzi, G. Gambosi, R. Grossi, Strutture di dati e algoritmi, Pearson

Metodi didattici

lezione frontale in aula