- Docente: Valeria Bo
- Crediti formativi: 6
- Lingua di insegnamento: Italiano
- Moduli: Valeria Bo (Modulo 1A) Sofia Tortolini (Modulo 1B) Stefano Castagnoli (Modulo 2)
- Modalità didattica: Lezioni in presenza (totalmente o parzialmente) (Modulo 1A); Lezioni in presenza (totalmente o parzialmente) (Modulo 1B); Lezioni in presenza (totalmente o parzialmente) (Modulo 2)
- Campus: Cesena
-
Corso:
Laurea in
Tecnologie dei sistemi informatici (cod. 6007)
Valido anche per Laurea in Tecnologie dei sistemi informatici (cod. 6007)
-
Orario delle lezioni (Modulo 1A)
dal 06/10/2026 al 03/11/2026
-
Orario delle lezioni (Modulo 1B)
dal 09/11/2026 al 15/12/2026
-
Orario delle lezioni (Modulo 2)
dal 14/09/2026 al 05/10/2026
Conoscenze e abilità da conseguire
Al termine del corso, lo studente possiede competenze avanzate e capacità pratiche legate alle basi di dati relazionali e non relazionali, nonché la capacità di realizzare applicazioni centrate sull'utilizzo di DBMS. Conosce gli ambiti applicativi in cui utilizzare le tecnologie dei Big Data e le relative problematiche; Conosce le architetture hardware e software proposte per la loro gestione; Conosce le tecniche per la memorizzazione, utilizza i linguaggi e i paradigmi di programmazione adottati in questo tipo di sistemi; Conosce le metodologie di progettazione per le diverse tipologie di applicazioni in ambito Big Data. Possiede competenze pratiche nell'utilizzo delle diverse. Conosce le principali tecniche di data mining e text mining; Conosce le metodologie di gestione e sviluppo di progetto; Sviluppa competenze pratiche nella generazione, nell'analisi e interpretazione dei risultati mediante esercitazioni pratiche svolte con tool commerciali e/o open source.
Contenuti
Il corso introduce ai fondamenti dei Big Data e dell'analisi dati. Si parte dalle basi di manipolazione ed esplorazione dei dati, includendo statistica e visualizzazione. Successivamente, si passa al machine learning classico per creare modelli predittivi su dati tabellari.
La seconda parte esplora architetture moderne come il lakehouse e tecniche avanzate. Vengono trattati dati non strutturati (testi, immagini) tramite embeddings e ricerca vettoriale, fino a costruire sistemi di ricerca semantica (RAG). Il percorso si conclude con un progetto pratico che integra le competenze acquisite.
Testi/Bibliografia
Materiale didattico messo a disposizione dal docente.
Metodi didattici
Lezioni frontali e esercitazioni in laboratorio informatico. I fondamenti teorici alla base sono esposti durante le lezioni frontali. Numerosi esercizi pratici sono svolti in aula ad anticipare gli esercizi che gli studenti dovranno successivamente svolgere nelle esercitazioni guidate in laboratorio, con la supervisione del docente.
In considerazione della tipologia di attività e dei metodi didattici adottati, la frequenza di questa attività formativa richiede la preventiva partecipazione di tutti gli studenti ai moduli 1 e 2 di formazione sulla sicurezza nei luoghi di studio, [https://corsi.unibo.it/laurea/IngegneriaScienzeInformatiche/formazione-obbligatoria-su-sicurezza-e-salute] in modalità e-learning
Modalità di verifica e valutazione dell'apprendimento
Guida all'Esame: Progetto e Prova Orale
La prova ha l'obiettivo di verificare le competenze acquisite nell'analisi dei dati in Python, coniugando scrittura del codice, rigore logico e capacità di sintesi.
L'esame è composto da due parti obbligatorie:
-
Un progetto di analisi dati (individuale)
-
Un colloquio orale comprendente la discussione del progetto e prova pratica su qualunque argomento dei moduli del corso
1. Il Progetto di Analisi Dati
Prevede la realizzazione di un'analisi dati end-to-end in Python su un dataset a scelta (es. da Kaggle, repository di open data, o dati personali).
Requisiti minimi del codice (nel Jupyter Notebook .ipynb)
L'analisi deve includere obbligatoriamente le seguenti 4 fasi:
-
Lettura dati: Caricamento del dataset (es. formato .csv, .parquet).
-
Data Cleaning: Pulizia dei dati (gestione di valori mancanti, duplicati, outlier e corretta formattazione dei tipi di dato).
-
Analisi Esplorativa (EDA): Generazione di grafici chiari e opportunamente commentati (usando librerie come Matplotlib/Seaborn/Plotly/etc.) per illustrare i trend principali
-
Modello Statistico o ML: Applicazione di almeno un modello tra quelli trattati a lezione (es. regressione, classificazione, clustering) tramite Scikit-learn o Statsmodels.
⚠️ Nota sulla Privacy: In caso di utilizzo di dati aziendali o reali, è necessario assicurarsi che non siano sensibili o protetti da accordi di non divulgazione (NDA). Il repository GitHub del progetto potrebbe essere pubblico.
Requisiti di Consegna
La consegna prevede la creazione di un repository GitHub contenente:
-
Il dataset utilizzato (o le istruzioni per effettuarne il download, qualora le dimensioni fossero eccessive, nel README – vedi paragrafo sotto).
-
Il Jupyter Notebook (.ipynb) con il codice completo e i relativi commenti esplicativi.
-
README di presentazione dove vengono spiegati i passaggi seguenti:
-
Riassunto del progetto e dei suoi obiettivi;
-
Come effettuare il download del progetto e/o del dataset;
-
Il file di configurazione dell'ambiente virtuale (requirements.txt o file uv).
Scadenze e Invio
Il link al repository GitHub deve essere inviato via email a:
valeria.bo@unibo.it [mailto:valeria.bo@unibo.it]
con almeno 7 giorni di anticipo rispetto alla data dell'appello d'esame.
Esempio: Se l'appello è fissato per martedì 23 febbraio, la consegna deve essere effettuata entro lunedì 15 febbraio alle ore 23:59.
2. La Prova Orale (30 minuti)
La prova orale si articola in due parti:
-
Discussione del progetto: Presentazione dell'analisi svolta a partire dal codice, con domande di approfondimento sulle scelte metodologiche adottate e sui risultati ottenuti.
-
Esercizi di programmazione (Open-Book): Risoluzione guidata di brevi problemi di programmazione in Python.
Niente memoria: Non è richiesta la memorizzazione della sintassi o dei comandi delle librerie. È consentita la consultazione della documentazione ufficiale o la ricerca online durante la prova.
Oggetto di valutazione: La valutazione si focalizzerà sul ragionamento logico e sulla capacità di strutturare la soluzione al problema proposto.
Criteri di Valutazione
Il progetto sarà valutato in base ai seguenti criteri:
-
Il notebook deve funzionare nella sua interezza. Sarà premura degli studenti accertarsi che ogni cella del notebook consegnato sia funzionante e NON restituisca errori. Warnings sono accettati.
-
Originalità: Scelta del tema e chiarezza nella definizione degli obiettivi dell'analisi.
-
Qualità del codice: Scrittura pulita, corretta, efficiente e commentata in Python.
-
Grafici: Visualizzazioni chiare, corrette e di facile interpretazione.
-
Conclusioni: Capacità di interpretare i risultati e formulare considerazioni pertinenti sul progetto.
Accessibilità
Gli studenti con diagnosi di DSA o che necessitano di misure di supporto per l'accessibilità, per richiedere gli adattamenti durante le prove d'esame, sono invitati ad attenersi alla seguente procedura:
-
Inviare una richiesta via email al docente responsabile dell'insegnamento: valeria.bo@unibo.it
-
La comunicazione deve essere inviata con un preavviso di almeno 10 giorni rispetto alla data dell'appello.
-
È obbligatorio inserire in copia conoscenza (CC) il "Servizio per gli studenti con disabilità" all'indirizzo disabilita@unibo.it [mailto:disabilita@unibo.it] .
-
Nel corpo dell'email è indispensabile elencare chiaramente gli adattamenti già approvati e concessi dal Servizio.
Strumenti a supporto della didattica
Lezioni: proiezione di diapositive a disposizione via Web e dimostrazioni pratiche dei concetti, algoritmi, tecniche e strumenti esposti nelle discussioni a lezione.
Le dimostrazioni pratiche utilizzano script e files in codice Python e SQL che sono preventivamente messi a disposizione nella pagina web del corso. In tal modo, gli studenti possono meglio seguire le dimostrazioni e replicarle durante la stessa lezione sui laptop, verificando personalmente lo sviluppo delle operazioni e individuando e proponendo immediatamente al docente eventuali dubbi, così da sollecitare al massimo l'interazione tra studenti e docente durante le lezioni.
Attività in laboratorio: il docente guida gli studenti nell'imparare progressivamente gli strumenti e le strategie di risoluzione dei problemi concernenti tutti gli argomenti del corso.
Orario di ricevimento
Consulta il sito web di Valeria Bo
Consulta il sito web di Sofia Tortolini
Consulta il sito web di Stefano Castagnoli