Computational methods and techniques for historical and cultural studies

A.A. 2025/2026
9
Crediti massimi
60
Ore totali
SSD
INF/01
Lingua
Inglese
Obiettivi formativi
The course deals with emerging issues in the so-called Digital and Computational Humanities and aims to introduce students to the exploitation of the potential of databases, Linked Open Data technologies and the Semantic Web by exploring solutions oriented to research, study and communication in the historical and cultural fields. In particular, the course intends to provide knowledge and skills in the discipline of computer science with particular reference to technologies for the design and management of digital archives in structured form (databases) and their use in the Web for the representation and exploration of historical data. Additional topics covered in the course concern the use of languages for the web of data with the aim of fostering the integration of documentary archives in the cultural-historical field through digital platforms based on formalisms and technologies related to Linked Open Data and Semantic Web. The course also aims to foster the development of skills related to the design of communication objects and tools essential for fruitful interaction with scholars and IT professionals.
Risultati apprendimento attesi
Knowledge:
- Data modeling and database management
- Notions of conceptual and logical design of databases
- Data web languages, Linked Open Data and Semantic Web
- Data exploration and visualization

Skills:
- Conceptual and logical design of a database
- Creating, populating, and querying databases
- Creating annotations for the data web and Linked Open Data
- Using tools for exploration and visualization of data on the web
Corso singolo

Questo insegnamento può essere seguito come corso singolo.

Programma e organizzazione didattica

Edizione unica

Responsabile
Periodo
Primo semestre

Programma
Il corso offre un'introduzione pratica agli approcci computazionali per la storia culturale, intellettuale e visiva, con particolare attenzione al compito di classificazione automatica delle immagini. È strutturato in 3 moduli principali di circa 20 ore ciascuno. L'organizzazione è pensata per fornire inizialmente le competenze di programmazione necessarie, in seguito costruire la comprensione concettuale, e infine applicare tali conoscenze ad attività pratiche e applicative. Gli studenti saranno incoraggiati a collegare i propri progetti computazionali a domande o temi provenienti da altri corsi del programma, in base ai loro background e interessi.

PARTE A: Fondamenti di Python
- Introduzione a Jupyter e primi programmi.
- Programmazione di base in Python: variabili, strutture condizionali, cicli, stringhe, liste, dizionari.
- Funzioni e operazioni sui file.
- Utilizzo di librerie per la gestione e la visualizzazione dei dati (NumPy, Matplotlib).

PARTE B: Principi di IA e Computer Vision
- Introduzione all'IA e al machine learning nella ricerca culturale.
- Dati e dataset di immagini: pixel, caratteristiche, raccolta e organizzazione delle immagini.
- Paradigmi di machine learning: supervisionato vs. non supervisionato.
- Dal perceptron alle reti neurali artificiali.
- Come apprendono le reti neurali a livello di base: forward/backward propagation, gradient descent.
- Reti neurali convoluzionali (CNN) e transfer learning.
- Lettura di accuracy e matrici di confusione; esempi in arte, storia e fotografia.
- Dimostrazioni con modelli pre-addestrati.
- Esperienza pratica con strumenti di IA pronti all'uso e user-friendly per la classificazione di oggetti (es. Teachable Machine) e il riconoscimento della scrittura manoscritta (es. Transkribus).

PARTE C: IA applicata e sviluppo del progetto
- Lezione ospite facoltativa su un progetto di dati culturali su larga scala (da confermare).
- Mini-proposte: ogni gruppo presenta l'idea di dataset, la domanda di ricerca e le etichette.
- Costruzione di un classificatore di base con PyTorch; semplici modifiche (augmentation, fine-tuning parziale).
- Strumenti di explainability: saliency maps, interpretazione del modello.
- Lavoro di gruppo sulla preparazione del dataset, addestramento del modello ed evaluation per collegare la pratica computazionale a una domanda di ricerca culturale o storica.
Prerequisiti
Non è richiesta alcuna precedente conoscenza di informatica; è invece auspicabile una familiarità con fonti culturali e storiche (testi, immagini, manufatti), poiché esse costituiranno l'ispirazione per i progetti applicativi. È utile una alfabetizzazione matematica di base, vale a dire percentuali, medie, lettura di grafici semplici e un minimo di algebra. È auspicabile una conoscenza generale dell'intelligenza artificiale derivata da notizie o dibattiti culturali (non sono richieste competenze tecniche). Pur non essendo obbligatoria, un'esperienza pregressa di programmazione, statistica o l'uso di strumenti digitali quotidiani (ad es. Excel, fotoritocco) può essere utile. Gli studenti dovranno essere disposti a lavorare in coppia, a seguire notebook guidati in Jupyter/Colab e a imparare a interpretare metriche di valutazione. Tutti gli elementi essenziali di Python saranno insegnati a partire da zero.
Metodi didattici
Il corso combina momenti a conduzione del docente, in cui vengono introdotti i concetti chiave di intelligenza artificiale e reti neurali, con un'ampia pratica guidata in Python e compiti di classificazione. Le lezioni e le dimostrazioni forniranno il necessario inquadramento teorico, mentre notebook in Jupyter/Colab e case study consentiranno agli studenti di applicare passo dopo passo le nozioni acquisite. Con il progredire del corso, gli studenti passeranno da esercizi strutturati a lavori di progetto collaborativi, applicando i metodi computazionali a materiali culturali e storici. È fortemente incoraggiata la partecipazione attiva a discussioni, lavori di coppia e sviluppo dei progetti, poiché il corso si basa sulla continua interazione tra spiegazione e pratica. La frequenza, sebbene non obbligatoria, è vivamente raccomandata per mantenere il passo sia con la parte concettuale che con quella applicativa. Gli studenti impossibilitati a frequentare sono invitati a contattare il docente.
Materiale di riferimento
- Slide, dispense e articoli scientifici forniti dal docente.
- Brian Kokensparger, 2018, Guide to Programming for the Digital Humanities: Lessons for Introductory Python
- Allen B. Downey, Think Python: How to Think Like a Computer Scientist (Second Edition, 2015). https://open.umn.edu/opentextbooks/textbooks/43, https://greenteapress.com/wp/think-python-2e/
- J. Hunt, A Beginner's Guide to Python 3 Programming(https://minerva.unimi.it/permalink/39UMI_INST/i9q3jt/alma991017213265306031)
- Documentazione online di NumPy (https://numpy.org/) e pandas (https://pandas.pydata.org/)
- Ian Goodfellow, Yoshua Bengio, Aaron Courville, Deep Learning (serie Adaptive Computation and Machine Learning), online: https://www.deeplearningbook.org/
- David G. Stork, 2023, Pixels & Paintings: Foundations of Computer-assisted Connoisseurship
Modalità di verifica dell’apprendimento e criteri di valutazione
Per gli studenti frequentanti, la valutazione complessiva delle competenze teoriche e applicative acquisite si baserà su un esame orale finale, incentrato sui materiali didattici forniti (50%), sulla preparazione di lavori individuali o collettivi (30%) e sulla partecipazione attiva alle attività in aula (20%). Durante il corso potranno essere forniti strumenti di autovalutazione. Per gli studenti non frequentanti, le conoscenze e competenze sviluppate saranno valutate esclusivamente tramite un esame orale finale, incentrato sui materiali didattici forniti (50%), e sulla preparazione di un lavoro individuale o collettivo (50%).

L'esame orale finale consiste in una discussione, volta a verificare la comprensione dei concetti principali introdotti nel corso, la capacità di esporre con chiarezza e di collegare i diversi argomenti trattati, nonché la capacità di analizzare casi di studio con strumenti teorici adeguati e consapevolezza critica.
Moduli o unità didattiche
Part A and B
INF/01 - INFORMATICA - CFU: 6
Lezioni: 40 ore

Part C
INF/01 - INFORMATICA - CFU: 3
Lezioni: 20 ore

Docente/i
Ricevimento:
Ingresso B, 3° piano, studio 3014 (A16)