PROGRAMMAZIONE E ANALISI DI DATI

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

Obiettivi di apprendimento

Conoscenze

Modulo “Laboratorio di Programmazione”:

 

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 ad eventi.

 

Modulo “Analisi di 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

Frequenti questionari anonimi utilizzando strumenti interattivi (es. Mentimeter) ed esercizi di autovalutazione. Osservazione durante le esercitazioni interattive e lo svolgimento dei progetti didattici. Brainstorming con gli studenti. 

Capacità

Modulo “Laboratorio di Programmazione”:

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 “Analisi 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 orientate all’analisi e visualizzazione di dati: MatplotLib, Seaborn, Pandas, Numpy e SciPy.

Modalità di verifica delle capacità

Frequenti questionari anonimi utilizzando strumenti interattivi (es. Mentimeter) ed esercizi di autovalutazione. Osservazione durante le esercitazioni interattive e lo svolgimento dei progetti didattici. Brainstorming con gli studenti. 

Comportamenti

Modulo “Laboratorio di Programmazione”:

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

Modulo “Analisi 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 orientate all’analisi e visualizzazione di dati.

Modalità di verifica dei comportamenti

 

Frequenti questionari anonimi utilizzando strumenti interattivi (es. Mentimeter) ed esercizi di autovalutazione. Osservazione durante le esercitazioni interattive e lo svolgimento dei progetti didattici. Brainstorming con gli studenti. 

 

Prerequisiti

Matematica di base (livello medio scuola secondaria di primo grado)

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 in persona, online e per email

Lingua: italiana

Programma

Modulo “Laboratorio di Programmazione”:

- cenni di architettura di un elaboratore, programmazione imperativa, compilazione e interpretazione, il linguaggio Python

- randomizzazione, funzioni, valori booleani, costrutti di controllo, debugging, testing, rappresentazione dell'informazione, cenni di analisi degli errori

- ricorsione, stringhe, liste, tuple, dizionari, file

- Programmazione a oggetti: concetti base-- overloading -- ereditarietà 

- il modulo TURTLE, cenni di interfacce grafiche

- Cenni di computabilità, algoritmi e linguaggi di programmazione

- Cenni di programmazione visuale e ad eventi

- Cenni di Graphical User Interfaces (GUI)

 

Modulo “Analisi di Dati”:

- 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 di programmazione e una per il modulo di analisi dei dati. La valutazione complessiva del corso sarà ottenuta con la media delle valutazioni ottenute nelle prove relative ai due moduli pesata con il numero di crediti di ciascun modulo.

 

Modulo “Laboratorio di Programmazione”:

La prova prevede lo svolgimento di un progetto didattico individuale o in gruppi di 2 studenti e una prova orale. Sarà possibile svolgere i progetti come  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.

Modulo “Analisi di Dati”:

La prova consiste in esercizi in classe sui vari temi del corso e uno scritto finale in aula con domande individuali a risposta multipla da effettuarsi sulla piattaforma di e-learning. 

Fonte: ESSETRE e Portale esami