Computational Methods and Techniques for Historical and Cultural Studies

A.Y. 2025/2026
9
Max ECTS
60
Overall hours
SSD
INF/01
Language
English
Learning objectives
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.
Expected learning outcomes
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
Single course

This course can be attended as a single course.

Course syllabus and organization

Single session

Responsible
Lesson period
First semester
Course syllabus
This course conveys a practical introduction to computational approaches for cultural, intellectual, and visual history, centered on an automated image classification task. The course is organized into 3 main modules of roughly 20 hours each. The structure is designed to first provide the necessary programming skills, then build conceptual understanding, and finally apply this knowledge to practical, hands-on applications. Students will be encouraged to connect their computational projects to questions or themes from other courses in the programme, according to their own backgrounds and interests.

PART A: Python Foundations
- Introduction to Jupyter and first programs.
- Core Python programming: variables, conditionals, loops, strings, lists, dictionaries.
- Functions and file operations.
- Using libraries for data handling and visualization (NumPy, Matplotlib).

PART B: Principles of AI and Computer Vision
- Introduction to AI and machine learning in cultural research.
- Image data and datasets: pixels, features, collecting and organizing images.
- Machine learning paradigms: supervised vs. unsupervised.
- From perceptron to artificial neural networks.
- How neural networks learn at a basic level: forward/backward propagation, gradient descent.
- Convolutional Neural Networks (CNNs) and transfer learning.
- Reading accuracy and confusion matrices; case examples in art, history, photography.
- Transfer learning
- Practical experience with user-friendly off-the-shelf AI tools for object classification (e.g., Teachable Machine) and handwritten text recognition (e.g., Transkribus)

PART C: Applied AI and Project Development
- Optional guest lecture on a large-scale cultural data project (TBC).
- Mini proposals: each group presents dataset idea, research question, and labels.
- Building a baseline classifier with PyTorch; simple modifications (augmentation, partial fine-tuning).
- Explainability tools: saliency maps, model interpretation.
- Group work on dataset preparation, model training, evaluation to connect computational practice with a cultural or historical research question.
Prerequisites for admission
No prior background in computer science is required; familiarity with cultural and historical sources (texts, images, artifacts) is expected, since these will inspire the applied projects. Basic mathematical literacy, ie., percentages, averages, reading simple charts, a touch of algebra, is helpful. A general awareness of AI from news or cultural debates is desirable (no technical knowledge assumed). While not mandatory, prior programming, statistics, or everyday digital tools (e.g., Excel, image editing) are welcome. Students should be willing to work in pairs, run guided Jupyter/Colab notebooks, and learn to interpret evaluation metrics. All essential Python will be taught from scratch.
Teaching methods
The course combines instructor-led sessions, where key concepts of artificial intelligence and neural networks are introduced, with guided practice in Python and classification tasks. Lectures and demonstrations will provide the necessary theoretical grounding, while Jupyter/Colab notebooks and case studies will allow students to apply these ideas step by step. As the course progresses, students move from structured exercises to collaborative project work, applying computational methods to cultural and historical materials. Active participation in discussions, pair work, and project development is strongly encouraged, since the course relies on continuous interaction between explanation and practice. Attendance, although not mandatory, is highly recommended to keep pace with both the conceptual and applied components. Students unable to attend are advised to contact the lecturer.
Teaching Resources
- Slides, handouts, scholarly articles provided by the instructor.
- Brian Kokensparger, 2018, Guide to Programming for the Digital Humanities: Lessons for Introductory Python
- Think Python: How to Think Like a Computer Scientist by Allen B. Downey (Second Edition, 2015), covering the key topics discussed in lectures. https://open.umn.edu/opentextbooks/textbooks/43, https://greenteapress.com/wp/think-python-2e/
- A Beginner's Guide to Python 3 Programming by J. Hunt (https://minerva.unimi.it/permalink/39UMI_INST/i9q3jt/alma991017213265306031)
- NumPy (https://numpy.org/) and pandas (https://pandas.pydata.org/) have excellent documentation online.
- Ian Goodfellow, Yoshua Bengio, Aaron Courville, Deep Learning (Adaptive Computation and Machine Learning series), online: https://www.deeplearningbook.org/
- David G. Stork, 2023, Pixels & Paintings: Foundations of Computer-assisted Connoisseurship
Assessment methods and Criteria
For attending students, the overall assessment of the theoretical and applied skills acquired will be based on a final oral examination focusing on learning materials provided (50%), on the preparation of individual or collective work (30%), and on the active participation during classes (20%). Self-assessment tools may be provided to attending students during the course. For non-attending students, the knowledge and competences developed will be assessed by a final oral examination focusing on learning materials provided (50%), and the preparation of individual or collective work (50%).

The final oral exam consists of an oral discussion, designed to assess the students' understanding of the main concepts introduced during the course, their ability to explain with clarity and to link the different topics and issues addressed, their capacity to analyse case studies with appropriate theoretical tools and critical awareness.
Modules or teaching units
Part A and B
INF/01 - INFORMATICS - University credits: 6
Lessons: 40 hours

Part C
INF/01 - INFORMATICS - University credits: 3
Lessons: 20 hours

Professor(s)