SISTEMI INFORMATIVI

SISTEMI INFORMATIVI

_
iten
Codice
97163
ANNO ACCADEMICO
2020/2021
CFU
9 cfu al 2° anno di 10716 INGEGNERIA GESTIONALE (L-9) GENOVA
SETTORE SCIENTIFICO DISCIPLINARE
ING-INF/05
LINGUA
Italiano (Inglese a richiesta)
SEDE
GENOVA (INGEGNERIA GESTIONALE )
periodo
2° Semestre
materiale didattico

PRESENTAZIONE

ll corso introduce elementi avanzati di programmazione in Python quali la programmazione ad oggetti, l'utilizzo efficiente di strutture dati, la creazione ed utilizzo di eccezioni e le librerie per la manipolazione di file; il corso introduce anche alla gestione dei database, fornendo cenni di progettazione e implementazione delle basi di dati relazionali.

OBIETTIVI E CONTENUTI

OBIETTIVI FORMATIVI

L’obiettivo del corso è quello di introdurre lo studente ai concetti fondamentali relativi alla gestione di grandi moli di dati su calcolatori (database) e al loro utilizzo nell’ambito di strumenti applicativi sviluppati per consentire l’immissione, la gestione e l’elaborazione di tali dati. Il corso fornirà le conoscenze sui principali database utilizzati (modello relazionale e associativo), sulle relative caratteristiche teoriche e pratiche. Verrà inoltre fornita la conoscenza della programmazione ordientata agli oggetti in linguaggio Python come strumento principale per l’interazione con i database e lo sviluppo di applicativi che possano prescindere dalle strutture dati predefinite nel linguaggio. Nell’ambito del corso lo studente acquisirà le competenze per progettare e realizzare semplici database e per interagire con gli stessi tramite applicativi scritti in Python. In termini di capacità, lo studente saprà valutare la scelta del modello migliore (relazionale o associativo) per un particolare compito, e a decidere la migliore realizzazione delle strutture dati per l’interazione con un particolare database.

OBIETTIVI FORMATIVI (DETTAGLIO) E RISULTATI DI APPRENDIMENTO

L’obiettivo del corso relativamente alla parte del linguaggio di programmazion Python è quello di introdurre lo studente ai seguenti argomenti:

  • progettazione e programmazione orientata agli oggetti;
  • utilizzo efficiente delle strutture dati predefinite;
  • utilizzo di librerie per la manipolazione dei file;
  • creazione e utilizzo di eccezioni per la gestione degli errori;
  • cenno alle librerie numpy, matplotlib e pandas per l'analisi e la presentazione dei dati.

Per quanto riguarda la parte relativa alle basi di dati, l'obiettivo del corso è quello di introdurre lo studente ai seguenti argomenti:

  • concetti fondamentiali relativi alle basi di dati
  • basi di dati di tipo relazionale
  • linguaggio SQL per la creazione e l'interrrogazione di basi di dati
  • progettazione di basi di dati con diagrammi entità-relazione

Il risultato principale di apprendimento sarà la capacità di combinare quanto appreso nella parte di Python con quanto appreso nella parte di database per costruire applicazioni che, partendo da dati grezzi, li rielaborano per inseirli all'interno di un database consentendo la successiva interrogazione e presentazione dei dati.

PREREQUISITI

Il corso richiede la conoscenza di base del linguaggio di programmazione Python (tipi, espressioni, scelte condizionali, costrutti di iterazione, definizione ed utilizzo di funzioni, conoscenza delle strutture dati predefinite). Sebbene il corso inizi riprendendo rapidamente tali conoscenze, una buona padronanza delle stesse è preferibile per affrontare il corso al meglio.

Modalità didattiche

Il corso si articola in lezioni frontali e laboratori. La maggior parte delle lezioni frontali prevede un'erogazione di contenuti tramite esempi svolti dal docente in modo interattivo, mentre alcune sono basate su slide. I laboratori prevedono lo svoglimento di esercitazioni, alcune delle quali hanno valore per l'esame finale. Le lezioni potranno essere erogate in modalità online.

PROGRAMMA/CONTENUTO

Il corso si articola sui seguenti contenuti:

  • Variabili, espressioni, tipi stringa (ripasso Python base)
  • Strutture di controllo (ripasso Python base)
  • Liste: caratteristiche ed efficienza
  • Tuple e range: caratteristiche ed efficienza
  • Set: caratteristiche ed efficienza
  • Dizionari: caratteristiche ed efficienza
  • IO da console, gestione file (ripasso Python base)
  • Espressioni regolari, moduli e package
  • Modulo datetime, moduli matematici e numerici
  • Modulo collections e modulo heapq
  • Definizione di classi
  • Ereditarietà e polimorfismo
  • Iteratori e generatori
  • Errori ed eccezioni
  • Testing strutturato di applicazioni
  • Introduzione ai database
  • Modello relazionale
  • Utilizzo di SQL (Data Definition Language)
  • Progettazione di database
  • Diagramma entità-relazioni
  • Progettazione logica
  • Utilizzo di SQL (Data Manipulation Language)
  • Normalizzazione

TESTI/BIBLIOGRAFIA

Tony Gaddis - Introduzione a Python - Pearson (Informatica)

Paolo Atzeni, Stefano Ceri, Piero Fraternali - Basi di Dati - McGraw Hill

DOCENTI E COMMISSIONI

Ricevimento: Su appuntamento a richiesta degli studenti.

Commissione d'esame

ARMANDO TACCHELLA (Presidente)

DAVIDE ANGUITA

LEZIONI

Modalità didattiche

Il corso si articola in lezioni frontali e laboratori. La maggior parte delle lezioni frontali prevede un'erogazione di contenuti tramite esempi svolti dal docente in modo interattivo, mentre alcune sono basate su slide. I laboratori prevedono lo svoglimento di esercitazioni, alcune delle quali hanno valore per l'esame finale. Le lezioni potranno essere erogate in modalità online.

INIZIO LEZIONI

22 Febbraio 2021

ESAMI

Modalità d'esame

Prova pratica a calcolatore (eventualmente svolta per via telematica). Esame orale con disccussione dello scritto (eventualmente svolto per via telematica).

Modalità di accertamento

Soluzione di esercizi che prevedono il caricamento di dati contenuti su file all'interno del database, l'interrogazione del database e la presentazione dei dati ottenuti dalle interrogazioni.