PROGRAMMAZIONE E ANALISI DI DATI

Settore: INF/01Codice: 622AACrediti: 15Semestre: 1-2
Docenti: Pelagatti Susanna, Malizia Alessio , Guidi Barbara

Obiettivi di apprendimento

Conoscenze

Modulo di programmazione Python:

Conoscenza dei costrutti fondamentali della programmazione imperativa e orientata agli oggetti, del linguaggio di programmazione Python, delle principali strutture dati. Conoscenza minimale di alcuni concetti relativi allo sviluppo di interfacce grafiche. Conoscenza dei principi di programmazione concorrente e client server

Modulo di analisi dei dati:

Il corso ha lo scopo di preparare gli studenti all'uso del linguaggio Python per l’analisi e visualizzazione di dati. 

Alla fine del corso gli studenti avranno acquisito le basi necessarie a progettare e implementare tecniche di analisi di dati in Python usando le principali librerie orientante all’analisi e visualizzazione di dati: MatplotLib, Seaborn, Pandas, Numpy e SciPy. L’ambiente di distribuzione Python e’ Anaconda, disponibile per diverse piattaforme e verra’ usato con Jypyter Notebook come strumento per lo sviluppo interattivo di progetti di analisi e visualizzazione dati.

Modalità di verifica delle conoscenze

Un progetto per ciascun modulo + esame orale che prevede la discussione delle scelte progettuali e domande su tutto il programma svolto

 

Capacità

Modulo programmazione Python:

Lo studente acquisirà dimestichezza con la programmazione sequenziale e concorrente in Python e con alcuni concetti base di architetture, complessità e rappresentazione dell'informazione.

Modulo di analisi dei dati:

Alla fine del corso gli studenti avranno acquisito le basi necessarie a progettare e implementare tecniche di analisi di dati in Python usando le principali librerie orientate all’analisi e visualizzazione di dati: MatplotLib, Seaborn, Pandas, Numpy e SciPy.

Modalità di verifica delle capacità

Un progetto  per ciascun modulo + esame orale che prevede la discussione delle scelte progettuali e domande su tutto il programma svolto

Comportamenti

Modulo programmazione Python:

Lo studente imparerà come affrontare problemi non banali da risolvere usando linguaggi imperativi, ad oggetti, concorrenti e ricorsione

Modulo di analisi dei dati :

Alla fine del corso gli studenti avranno acquisito le basi necessarie a progettare e implementare tecniche di analisi di dati in Python usando le principali librerie orientate all’analisi e visualizzazione di dati.

Modalità di verifica dei comportamenti

 

  • Interazione diretta con lo studente nelle ore di lezione in laboratorio 
  •  Lo studente dovrà dimostrare di aver acquisito piena consapevolezza delle soluzioni tecniche utilizzate per la realizzazione del progetto finale di ciascun modulo

 

Prerequisiti

Matematica di base (livello medio scuola superiore)

Capacità di utilizzare un editore di testi e di ricercare informazioni su internet

Non sono richiesti prerequisiti di programmazione

Indicazioni metodologiche

Lezioni: si svolgeranno interamente in aule di laboratorio con alternanza di presentazione di concetti ed esercitazioni pratiche interattive

Esercitazioni: interattive in aule di laboratorio

Attivita' da svolgere per l'apprendimento:

  • seguire le lezioni e le esercitazioni
  • studiare individualmente
  • svolgere gli esercizi a casa
  • svolgere i progetti didattici in gruppo 

Frequenza: consigliata

Contatti con il docente: ricevimento tradizionale e per email

Lingua: italiana

Programma

Modulo programmazione Python:

  • cenni di architettura di un elaboratore, programmazione imperativa, compilazione e interpretazione, PyCharm, 
  • randomizzazione, funzioni, valori booleani, costrutti di controllo, debugging, testing, rappresentazione dell'informazione, cenni di analisi degli errori
  • ricorsione, stringhe, liste, tuple, dizionari, file
  • debugging e testing
  • programmazione a oggetti: concetti base-- overloading -- ereditarietà 
  • il modulo TURTLE, cenni di interfacce grafiche
  • cenni di computabilità, algoritmi e linguaggi di programmazione
  • programmazione concorrente: thread, modello client server

 Modulo di analisi di dati:

  • Python: installazione ambiente e fondamenti. Installazione e Introduzione ad Anaconda. Jupiter Notebook: Installazione ed introduzione.
  • Visualizzazione di Dati con Python. Panoramica. Librerie Python per la visualizzazione di dati. Datasets: Iris e Titanic. Matplotlib: introduzione. Line Properties Plot (x,y). Lines Patterns e Colors. Axis, Labels e Legend Properties. Tipi di Plots e Seaborn.
  • Manipolazione e analisi dati con librerie di Python. Manipolazione dei dati con libreria Pandas: strutture dati e operazioni per manipolare tabelle numeriche e serie temporali. Introduzione alla gestione del calcolo vettoriale e alla manipolazione di vettori e matrici per la visualizzazione con la libreria Numpy. Introduzione all’analisi ed elaborazione di segnali e immagini con la libreria SciPy.

Bibliografia

 

  • Runstone Academy Pensare come un informatico (edizione interattiva in Italiano a cura di Andrea Marino) -- link all’ edizione inglese 
  • Zinoviev. Data Science con Python. Dalle stringhe al machine learning, le tecniche essenziali per lavorare sui dati. APOGEO.
  • VanderPlas. Python data science handbook: Essential tools for working with data. O'Reilly Media, Inc. Copia disponibile qua
  • Slide disponibili su Moodle dopo lo svolgimento di alcune delle lezioni

Non frequentanti

Il programma e il materiale didattico per i non frequentanti è lo stesso previsto per i frequentanti. I docenti sono disponibili a ricevimenti anche online per chiarimenti.

Modalità di esame

L'esame è composto da due prove, una per il modulo Python e una per il modulo di analisi dei dati: entrambe prevedono lo svolgimento di un progetto didattico individuale o in gruppi di 2 studenti e una prova orale. Sarà possibile svolgere prove in itinere.

  • Il progetto deve essere completato e valutato sufficiente dal docente prima di poter sostenere la prova orale. Il testo del progetto include la specifica dettagliata delle parti da realizzare e di come verrà effettuata la valutazione.Dopo lo svolgimento il progetto viene consegnato al docente che lo valuta. Se il progetto risulta sufficiente lo studente viene ammesso alla prova orale e puo’ iscriversi all’appello.
  • La prova orale  consiste in un colloquio tra il candidato e il docente, durante la quale vengono discusse le scelte effettuate nel progetto didattico, viene richiesto al candidato di risolvere semplici esercizi scritti davanti al docente, e vengono discusse le principali problematiche teoriche illustrate durante il corso. Il colloquio non avrà esito positivo se il candidato mostrerà ripetutamente l'incapacità di motivare correttamente le scelte progettuali, di impostare semplici esercizi e di mettere in relazione parti del programma e nozioni che deve usare in modo congiunto per rispondere in modo corretto ad una domanda.

La valutazione complessiva sarà ottenuta con la media delle valutazioni ottenute nelle prove relative ai due moduli.

Fonte: ESSETRE e Portale esami