Dettaglio insegnamento

LABORATORIO DI PROGRAMMAZIONE E ANALISI DATI

MF0711

Insegnamento
LABORATORIO DI PROGRAMMAZIONE E ANALISI DATI
Codice
MF0711
Anno Accademico
2026/2027
Anno regolamento
2026/2027
Corso di studio
FISICA APPLICATA
Curriculum
000 - 000-GENERICO
Responsabile didattico
Docenti
CFU
6
Ore di lezione
48
Settore Scientifico Disciplinare (SSD)
INFO-01/A - Informatica
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OBB - Obbligatoria
Anno
1
Periodo
Primo Semestre
Sede
VERCELLI
Lingua insegnamento
Italiano
Contenuti
Il corso introduce la programmazione con Python, con applicazioni pratiche per eseguire analisi esplorative e statistiche dei dati. La parte di programmazione del corso è completata dall'introduzione di Arduino e del suo IDE per gestire e raccogliere dati dai sensori. Le competenze del corso saranno sviluppate attraverso sessioni pratiche al computer, orientate ad acquisire competenze in: 1. Programmazione con Python e utilizzo di Jupyter Notebooks 2. Programmazione e gestione di sensori con l'IDE di Arduino e simulazioni con TinkerCad e PyFirmata. 3. Tecniche di analisi statistica ed esplorativa dei dati (applicate a casi di studio del mondo reale), tra cui: 1. Visualizzazione dei dati (grafici a dispersione, istogrammi, ecc.) 2. Statistiche descrittive e incertezze (media, varianza, deviazione standard, ecc.) 3. Correlazioni tra osservabili e regressione lineare
Testi di riferimento
Tutti i materiali necessari sono messi a disposizione tramite DIR.
Testo di supporto (Facoltativo): Il manuale di Arduino, P. Aliverti, Ed. LSWR, 2024
Obiettivi formativi
1. Implementare autonomamente programmi funzionanti in Python su Jupyter Notebook a partire da specifiche assegnate, applicando approcci algoritmici alla risoluzione di semplici problemi, utilizzando strumenti come strutture di controllo, funzioni e strutture dati, e individuando e correggendo eventuali errori nel codice.

2. Gestire sensori tramite l'IDE di Arduino e il simulatore TinkerCad, essendo in grado di comprendere e spiegare il funzionamento dei componenti principali di un circuito e del relativo Sketch di Arduino, assemblare e testare circuiti semplici e raccogliere e analizzare dati dai sensori.

3. Analizzare dataset reali, calcolando ed interpretando statistiche descrittive, proponendo e creando visualizzazioni appropriate in Python.
Prerequisiti
Non ci sono prerequisiti
Metodi didattici
Didattica Erogativa e Interattiva in laboratorio che mescola momenti di didattica frontale e apprendimento attivo. Durante i momenti di didattica frontale, vengono esposte le nozioni fondamentali, corredate di esempi. Vengono introdotte le basi della programmazione e visualizzazione in Python, e la programmazione di Arduino. Durante i momenti di apprendimento attivo, la classe viene guidata nella creazione di algoritmi per la soluzione di problemi e nella loro implementazione in Python, nell’attuazione di tecniche di analisi dati tramite statistiche descrittive e la creazione di visualizzazioni in Python e loro interpretazione e nella simulazione di circuiti e relativa programmazione in Arduino. Sulla piattaforma DIR viene messo a disposizione il materiale, che ricalca gli argomenti trattati a lezione, esercizi aggiuntivi, ed eventuale materiale di approfondimento, risultando di aiuto anche in caso di assenza.
Altre informazioni
Le persone con disabilità o con Disturbi Specifici dell’Apprendimento (DSA) o con Bisogni Educativi Speciali (BES) possono richiedere servizi e strumenti specifici a loro dedicati rivolgendosi allo Staff Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti e consultando la pagina dedicata del sito di Ateneo: https://uniupo.it/it/servizi/servizi-studenti-disabili-e-dsa Le persone con disabilità, DSA, BES, una volta preso contatto con lo Staff di Ateneo, possono contattare la docente titolare dell'insegnamento in relazione alla declinazione delle modalità di esame, in merito agli aspetti didattici.
Modalità di verifica dell'apprendimento
La valutazione finale consiste in una prova scritta individuale svolta in laboratorio, mediante Jupyter Notebook. La prova comprende tre esercizi pratici, relativi ai principali ambiti dell'insegnamento: (1) programmazione in Python, (2) Arduino e acquisizione dati, (3) analisi e visualizzazione dei dati. Gli esercizi prevedono sia attività di implementazione, modifica e correzione di codice, sia quesiti a risposta aperta.

1. Programmazione in Python – 15 punti
A partire da una specifica assegnata, occorre progettare e implementare un programma funzionante in Python, utilizzando le principali tecniche di programmazione affrontate durante il corso (strutture di controllo, funzioni, strutture dati, ecc.).

2. Arduino e acquisizione dati – 10 punti
Occorre completare, correggere o tradurre uno Sketch Arduino o PyFirmata e, ove richiesto, analizzare un semplice circuito e descrivere il funzionamento del codice attraverso quesiti a risposta aperta e commenti alle istruzioni.

3. Analisi e visualizzazione dei dati – 5 punti
A partire da un dataset o caso di studio reale, occorre effettuare un'analisi dei dati utilizzando principalmente Pandas e Matplotlib e le tecniche di statistica e regressione affrontate durante il corso, selezionando e realizzando visualizzazioni appropriate e interpretando i risultati ottenuti.

La valutazione tiene conto della correttezza, completezza e autonomia nello svolgimento delle prove, nonché della capacità di motivare le scelte effettuate e interpretare i risultati. Per il superamento della verifica, si deve dimostrare di conoscere e comprendere i concetti fondamentali del corso e di saperli applicare ai problemi proposti, riconoscendo e correggendo eventuali errori e descrivendo in modo comprensibile le procedure e i risultati ottenuti.

18–22 punti (livello sufficiente): dimostra la conoscenza dei concetti fondamentali e una capacità di applicarli ai problemi proposti. Gli esercizi sono sostanzialmente corretti, con eventuali errori o incompletezze, e i risultati principali sono correttamente interpretati.

23–26 punti (livello buono): dimostra una conoscenza più ampia dei contenuti e una buona capacità di applicarli autonomamente. Gli esercizi sono svolti con buona correttezza e completezza, mostrando capacità di individuare e correggere errori, motivare le scelte e interpretare i risultati.

27–30 punti (livello ottimo/eccellente): dimostra una conoscenza completa e approfondita e un'elevata autonomia nell'applicazione delle competenze acquisite. Gli esercizi sono svolti in modo corretto e completo, con capacità di effettuare e motivare scelte appropriate, correggere autonomamente eventuali errori e interpretare criticamente i risultati.

Il punteggio massimo è 30 punti. Fino a 2 punti aggiuntivi possono essere attribuiti per la lode, sulla base della qualità complessiva dello svolgimento, della programmazione e del livello di autonomia e approfondimento dimostrato.
Programma esteso
- Introduzione alla programmazione: Python e Jupyter Notebooks.
- Programmazione in Python: Variabili e tipi, Strutture di Controllo, Funzioni e interfacce, Strutture dati (Liste, Tuple, Dizionari, etc.), File e Dataframe
- Introduzione ad Arduino: IDE e TinkerCad, Struttura di uno Sketch, Digital I/O, Serial Monitor, Analog I/O, Raccolta dati da Sensori.
- Introduzione all’analisi dati: statistica descrittiva, visualizzazione dati (con pandas e matplotlib)
Risultati di apprendimento attesi
Conoscenza e comprensione:
Conoscere e comprendere i principi e le tecniche di base della programmazione in Python e dell'utilizzo di Jupyter Notebook; i principali metodi di analisi statistica ed esplorativa dei dati, incluse le statistiche descrittive, l'analisi delle relazioni tra variabili, la regressione lineare e la visualizzazione dei dati; i principi di base della gestione dei sensori e della raccolta dati mediante Arduino e PyFirmata.

Applicazione di conoscenza e comprensione:
A partire da un problema informatico di base, progettare e implementare un programma Python funzionante ed eseguirlo in Jupyter Notebook, individuando e correggendo eventuali errori nel codice. A partire da un problema di acquisizione dati da sensori, impostare il processo di raccolta dati mediante Arduino, realizzando o modificando il relativo Sketch, compilandolo ed eseguendolo, e acquisendo i dati mediante Python e PyFirmata. A partire da un caso di studio reale, condurre un'analisi esplorativa dei dati, selezionando statistiche descrittive e tecniche di analisi appropriate e progettando e realizzando visualizzazioni coerenti con le caratteristiche dei dati e gli obiettivi dell'analisi.

Abilità comunicative:
Descrivere e motivare le principali scelte effettuate nella progettazione e implementazione di programmi Python e nella realizzazione di semplici sistemi di acquisizione dati con Arduino; presentare e interpretare i risultati dell'analisi dei dati attraverso opportune rappresentazioni grafiche.

Capacità di apprendimento:
Utilizzare le competenze acquisite in Python, Arduino e nell'analisi dei dati per affrontare autonomamente semplici problemi non direttamente trattati durante il corso, individuando le tecniche e gli strumenti appropriati e consultando autonomamente la documentazione necessaria.
Ultimo aggiornamento:09-09-2026 00:14:31