View syllabus
PROGRAMMING AND DATA ANALYSIS
SUSANNA PELAGATTI
Academic year2022/23
CourseDIGITAL HUMANITIES
Code622AA
Credits15
PeriodSemester 1 & 2
LanguageItalian

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

Knowledge

Python programming 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 graphic interfaces. Knowledge of concurrent programming and client server principles

Data analysis module:

The course aims to prepare students to use the Python language for data analysis and visualization.

At the end of the course, students will have acquired the necessary basics 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. 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

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

 

Assessment criteria of knowledge

A project for each module + oral exam which includes the discussion of the design choices and questions on the entire program.

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.

Skills

Python programming module:

The student will become familiar 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 necessary basics 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à

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

Assessment criteria of skills

A project for each module + oral exam which includes the discussion of the design choices and questions on the entire program.

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.

Behaviors

Python programming module:

The student will learn how to tackle non-trivial problems to be solved using imperative, object-oriented, concurrent languages and the use of recursion.

Data analysis module:

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

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

 

Assessment criteria of behaviors
  • Direct interaction with the student during the lesson hours in the laboratory
  • The student must demonstrate that he has acquired full awareness of the technical solutions used for the realization of the final project of each module
Prerequisiti (conoscenze iniziali)

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

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 tradizionale 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 during 3 hours a week and via email

Language: Italian 

Programma (contenuti dell'insegnamento)

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

Python programming module:

  • hints of computer architecture, imperative programming, compilation and interpretation, PyCharm,
  • randomization, functions, boolean values, control constructs, debugging, testing, information representation, hints of error analysis
  • recursion, strings, lists, tuples, dictionaries, files
  • object-oriented programming: basic concepts - overloading - inheritance
  • the TURTLE module, hints of graphic interfaces
  • basics of computability, algorithms and programming languages
  • concurrent programming: thread, client-server model

 Data analysis module:

  • Installation and Introduction to Anaconda. Jupiter Notebook: Installation and introduction.
  • Visualization of Data 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 numeric tables and time series.
  • Introduction to the management of vector calculus and to the manipulation of vectors and matrices for visualization with the Numpy library.
  • Introduction to the analysis and processing of signals and images 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 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.

Assessment methods

The exam consists of two tests, one for the Python module and one for the data analysis module: both involve carrying out an project (individual or in groups of 2 students) and an oral test. It will be possible to carry out 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 implemented and how the evaluation will be carried out. After completing the project, 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 exam.
  • The oral exam 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 motivate 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.

The overall assessment will be obtained with the average of the assessments obtained in the tests relating to the two modules.

Note

commissione di esame:

Susanna Pelagatti

Barbara Guidi

Alessio Malizia

Notes

Exam committee:

Susanna Pelagatti

Barbara Guidi

Alessio Malizia

Updated: 29/07/2022 11:05