Scheda programma d'esame
PROGRAMMAZIONE E ANALISI DI DATI
SUSANNA PELAGATTI
Anno accademico2023/24
CdSINFORMATICA UMANISTICA
Codice622AA
CFU15
PeriodoAnnuale
LinguaItaliano

ModuliSettore/iTipoOreDocente/i
ANALISI DI DATIINF/01LEZIONI42
ALESSIO MALIZIA unimap
LABORATORIO DI PROGRAMMAZIONEINF/01LABORATORI63
ALESSANDRO BOCCI unimap
SUSANNA PELAGATTI unimap
Obiettivi di apprendimento
Learning outcomes
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.

Knowledge

"Programming Laboratory" module:

Knowledge of the fundamental constructs of imperative and object-oriented programming,
of the Python programming language, of the main data structures. Minimal knowledge of
some concepts related to the development of graphical user interfaces.
Knowledge of concurrent and event programming principles.

"Data Analysis" module:

The course aims to prepare students for the use of the Python language for data analysis
and visualization. At the end of the course students will have acquired the basics necessary to design
and implement data analysis techniques in Python using the main libraries oriented
towards data analysis and visualization: MatplotLib, Seaborn, Pandas, Numpy and SciPy.
The Python distribution environment is Anaconda, available for different platforms and will
be used with Jypyter Notebook as a tool for the interactive development of data analysis
and visualization projects.

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. 

Assessment criteria of knowledge

Frequent anonymous questionnaires using interactive tools (e.g. Mentimeter)
and self-assessment exercises. Observation during interactive exercises and the development
of educational projects. Brainstorm with students.

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.

Skills

"Programming Laboratory" module:

The student will acquire familiarity with sequential and concurrent programming in Python and
with some basic concepts of architecture, complexity and information representation.

"Data Analysis" module:

At the end of the course students will have acquired the basics necessary to design and
implement data analysis techniques in Python using the main libraries oriented to
data analysis and visualization: MatplotLib, Seaborn, Pandas, Numpy and 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. 

Assessment criteria of skills

Frequent anonymous questionnaires using interactive tools (e.g. Mentimeter)
and self-assessment exercises. Observation during interactive exercises and the development
of educational projects. Brainstorm with students.

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.

Behaviors

"Programming Laboratory" module:

The student will learn how to solve non-trivial problems using imperative and object-oriented languages

"Data Analysis" module:

At the end of the course, students will have acquired the basics necessary to design and implement data analysis techniques in Python using the main libraries oriented to data analysis and visualization.

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. 

 

Assessment criteria of behaviors

Frequent anonymous questionnaires using interactive tools (e.g. Mentimeter)
and self-assessment exercises. Observation during interactive exercises and the development
of educational projects. Brainstorm with students.

Prerequisiti (conoscenze iniziali)

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

Prerequisites

Basic Mathematics (Middle School Level)

Ability to use a text editor and to search for information on the internet

No programming prerequisites are required

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

Teaching methods

Lessons: will take place entirely in laboratory classrooms with alternating presentation of concepts and interactive practical exercises

Practice: interactive exercises in the laboratory classrooms

Activities to be carried out for learning:

  • follow the lessons and exercises
  • study individually
  • do the exercises at home
  • carry out educational projects in groups

Frequency: recommended

Contact with the teacher: in person, online or via email  

Language: Italian 

Programma (contenuti dell'insegnamento)

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.

Syllabus
"Programming Laboratory" module: - basics of computer architecture, imperative programming, compilation and interpretation, the Python language - randomization, functions, boolean values, control constructs, debugging, testing, information representation, basics of error analysis - recursion, strings, lists, tuples, dictionaries, files - Object oriented programming: basic concepts -- overloading -- inheritance - the TURTLE module, hints of graphical interfaces - Fundamentals of computability, algorithms and programming languages - Elements of visual and event programming - Basics of Graphical User Interfaces (GUI) "Data Analysis" module: - Installation and Introduction to Anaconda. Jupiter Notebook: Installation and introduction. - Data visualization with Python. Overview. Python libraries for data visualization. Datasets: Iris and Titanic. Matplotlib: introduction. Line Properties Plot (x,y). Lines Patterns and Colors. Axis, Labels and Legend Properties. Types of Plots and Seaborn. - Data manipulation and analysis with Python libraries. Data manipulation with Pandas library: data structures and operations to manipulate number tables and time series. Introduction to handling vector calculus and manipulating vectors and matrices for display with the Numpy library. Introduction to signal and image analysis and processing with the SciPy library.    
Bibliografia e materiale didattico

 

  • 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
Bibliography
  • Runstone Academy Pensare come un informatico (iteractive edition in Italian translated and maintained by Andrea Marino) -- link to the English edition
  • Zinoviev. Data Science con Python. Dalle stringhe al machine learning, le tecniche essenziali per lavorare sui dati. APOGEO. (in Italian)
  • VanderPlas. Python data science handbook: Essential tools for working with data. O'Reilly Media, Inc. available here
  • Slides available on Moodle after some of the lessons have taken place
Indicazioni per 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.

Non-attending students info

 The program and didactic material for non-attending students are the same as for attending students. The teachers are also available for online meeting for clarification.

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

Assessment methods
The exam consists of two tests, one for the programming module and one for
the data analysis module. The overall evaluation of the course will be obtained
with the average of the evaluations obtained in the tests relating to the two
modules weighted with the number of credits of each module. "Programming Laboratory" module: The test involves carrying out an individual teaching project or in groups of
2 students and an oral exam. It will be possible to carry out the projects as ongoing tests. The project must be completed and evaluated sufficiently by the teacher before
being able to take the oral exam. The text of the project includes the detailed
specification of the parts to be made and how the evaluation will be carried out.
After the project has been carried out, it is delivered to the teacher who evaluates it.
If the project is sufficient, the student is admitted to the oral exam and can register
for the session. The oral test consists of an interview between the candidate and the teacher,
during which the choices made in the teaching project are discussed, the candidate is
asked to solve simple written exercises in front of the teacher, and the main theoretical
problems illustrated during the course are discussed . The interview will not be successful
if the candidate repeatedly shows the inability to correctly justify the design choices, to
set up simple exercises and to relate parts of the program and notions that he must use
jointly to answer a question correctly.
"Data Analysis" module: The test consists of exercises in the classroom on the various topics of the course and a
final written in the classroom with individual multiple choice questions to be carried out
on the e-learning platform.
Note

Commissione d'esame:

Susanna Pelagatti

Alessio Malizia

RTDA INF/01 in corso di presa di servizio

 

Supplenti

Francesca Levi

Laura Semini

Fabrizio Luccio

Notes

Exam committee:

Susanna Pelagatti Alessio Malizia RTDA INF/01 being taken into service Substitutes Francesca Levi Laura Semini Fabrizio Luccio
Ultimo aggiornamento 17/07/2023 11:26