Scheda programma d'esame
PROGRAMMING AND DATA ANALYSIS
PAOLO MILAZZO
Academic year2020/21
CourseDIGITAL HUMANITIES
Code622AA
Credits15
PeriodSemester 1 & 2
LanguageItalian

ModulesAreaTypeHoursTeacher(s)
ANALISI DI DATIINF/01LEZIONI42
ALESSIO MALIZIA unimap
LABORATORIO DI PROGRAMMAZIONE JAVAINF/01LABORATORI63
BARBARA GUIDI unimap
PAOLO MILAZZO unimap
Obiettivi di apprendimento
Learning outcomes
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.

Knowledge

Java Programming unit:

- Knowledge of the foundamental constructs of imperative and object-oriented programming

- Knowledge of the Java programming language

- Knowledge of the main data structures

- Minimal knowledge of some concepts on graphical user interfaces

Data Analysis unit (UNDER REVIEW):

Modalità di verifica delle conoscenze

Modulo programmazione Java: progetti ed esame orale

Modulo analisi di dati: da definire

 

 

Assessment criteria of knowledge

Java Programming unit: projects and oral exam

Data Analysis unit: to be defined

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.

Skills

Java Programming unit:

- Ability to develop complex programs by using the object-oriented programming paradigm and the Java language

Data Analysis unit (UNDER REVIEW):

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

Assessment criteria of skills

Java Programming unit:

- Two projects of object oriented programming (in Java) with discussion in the context of the oral exam.

Data Analysis unit:

- To be defined

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.

Behaviors

Java Programming unit:

- the student will become familiar with the main software development tools and processes.

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.

Assessment criteria of behaviors

Java Programming unit:

- The student will have to demonstrate full awareness of the technical solutions used in the development of the final project.

Prerequisiti (conoscenze iniziali)

Conoscenza di base del funzionamento di un computer

Prerequisites

Basic computer knowledge

Indicazioni metodologiche

Lezioni frontali e sessioni di laboratorio

Teaching methods

Lectures and lab sessions

Programma (contenuti dell'insegnamento)

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.

Syllabus

Java Programming unit:

- Background notions on computer architecture and data representation

- Background notions on computational problems, algorithms and programming languages

- Foundamental imperative programming constructs (in Java): expressions, variables, primitive data types, control flow constructs, procedural programming, arrays

- Object-oriented programming (in Java): classes and objects, incapsulation and inheritance, abstract classes and interfaces, exceptions, vectors

- File I/O and object serialization

- Data structures (lists, trees) and recursion

- Java Collections Framework

- Graphical user interfaces (elements)

 

 

Bibliografia e materiale didattico

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

Bibliography

Java Programming unit: the slides of the lectures are made available on the web page of the course. Moreover, it is strongly suggested the adoption of one of the following books:

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

Data Analysis unit: to be defined

Indicazioni per non frequentanti

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

Non-attending students info

Java Programming unit: the program and the course material for the students who do not attend classes are the same as for the students attending classes

Modalità d'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

Assessment methods

Java Programming unit:

- Two projects of object oriented programming (in Java) + Oral exam (that includes a discussion on the projects)

Data Analysis unit:

- To be defined

Note

commissione di esame:

Paolo Milazzo

Barbara Guidi

da definire

Notes

Exam committee:

Paolo Milazzo

Barbara Guidi

to be defined

Updated: 02/02/2021 11:54