PROGRAMMAZIONE E ANALISI DI DATI

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

Obiettivi di apprendimento

Conoscenze

Modulo di programmazione Java:

- Conoscenza dei costrutti fondamentali della programmazione imperativa e orientata agli oggetti.

- Conoscenza del linguaggio di programmazione Java

- Conoscenza delle principali strutture dati

- Conoscenza minimale di alcuni concetti relativi allo sviluppo di interfacce grafiche

- Conoscenza dei principi di programmazione di sistema e di rete in Java

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

Modulo programmazione Java: progetti ed esame orale

Modulo analisi di dati: da definire

 

 

Capacità

Modulo programmazione Java:

- Capacità di realizzare programmi complessi usando il paradigma della programmazione orientata agli oggetti e il linguaggio Java.

Modulo di analisi dei dati (PROVVISORIO, IN CORSO DI REVISIONE):

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

Modalità di verifica delle capacità

Modulo programmazione Java:

- Due progetti di programmazione orientata agli oggetti da svolgere (in Java). Tali progetti saranno oggetto di discussione e valutazione durante l'esame orale.

Modulo di analisi dei dati:

- Da definire

Comportamenti

Modulo programmazione Java:

- Lo studente acquisirà dimestichezza con i principali strumenti e processi di sviluppo del software.

Modulo di analisi dei dati (PROVVISORIO, IN CORSO DI REVISIONE):

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

Modalità di verifica dei comportamenti

Modulo programmazione Java:

- Lo studente dovrà dimostrare di aver acquisito piena consapevolezza delle soluzioni tecniche utilizzate per la realizzazione del progetto finale.

Prerequisiti

Conoscenza di base del funzionamento di un computer

Indicazioni metodologiche

Lezioni frontali e sessioni di laboratorio

Programma

Modulo programmazione Java:

- Nozioni di background su architettura degli elaboratori e rappresentazione dell'informazione

- Nozioni di background su problemi computazionali, algoritmi e linguaggi di programmazione

- Costrutti fondamentali della programmazione imperativa (in Java): espressioni, variabili, tipi di dato primitivi, comandi per il controllo del flusso del programma, programmazione procedurale, array

- Programmazione orientata agli oggetti (in Java): classi e oggetti, meccanismi di incapsulamento ed ereditarietà, classi parzialmente definite e interfacce, eccezioni, vettori

- Programmazione di sistema e di rete in Java

- Input/output su file e serizalizzazione di oggetti

- Strutture dati (liste, alberi) e ricorsione

- Java Collections Framework

- Interfacce grafiche (cenni)

Modulo di analisi di dati:

- Python: installazione ambiente e fondamenti. Installazione e Introduzione ad Anaconda. Jupiter Notebook: Installazione ed introduzione.

- Breve Introduzione al linguaggio Python: Tipi di Dati, Liste, Dizionari e Tuple, Operatori (booleani, artimetici, etc.), Cicli e Funzioni.

- 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

Modulo programmazione Java: Le slides del corso sono messe a disposizione degli studenti tramite la pagina web. Inoltre, è fortemente consigliato l'utilizzo di un libro di testo a scelta tra:

  • Savitch. Programmazione con Java. PEARSON, Prentice Hall.
  • Horstmann. Concetti di informatica e fondamenti di Java. APOGEO.
  • Bruni, Corradini, Gervasi. Programmazione in Java. APOGEO.

Modulo di analisi dei dati: da definire

Non frequentanti

Modulo programmazione Java: il programma e il materiale didattico per i non frequentanti è lo stesso previsto per i frequentanti.

Modalità di esame

Modulo programmazione Java:

Due prove/progetti di programmazione Java + Esame orale (che include la discussione dei progetti).

Modulo di analisi dei dati:

Da definire

Fonte: ESSETRE e Portale esami