Salta al contenuto principale della pagina

SISTEMI INFORMATIVI

CODICE 97163
ANNO ACCADEMICO 2021/2022
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
  • PERIODO 2° Semestre
    MATERIALE DIDATTICO AULAWEB

    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.

    MODALITA' 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

    Commissione d'esame

    ARMANDO TACCHELLA (Presidente)

    MASSIMO NARIZZANO

    DAVIDE ANGUITA (Presidente Supplente)

    LEZIONI

    Orari delle lezioni

    L'orario di tutti gli insegnamenti è consultabile su EasyAcademy.

    ESAMI

    MODALITA' D'ESAME

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

    MODALITA' 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.

    Calendario appelli

    Data Ora Luogo Tipologia Note
    20/01/2022 09:00 GENOVA Scritto
    15/02/2022 09:00 GENOVA Scritto
    08/06/2022 09:00 GENOVA Scritto
    30/06/2022 09:00 GENOVA Scritto
    25/07/2022 09:00 GENOVA Scritto
    16/09/2022 09:00 GENOVA Scritto