Robust and Reproducible Research

Apr 30, 2025 · 6 min read
teaching

Course Repository

Open the course repository for slides, recordings, images, and supporting material.

Introduction

The number of scientific articles published in Computer Science (and similar fields) increases steadily every year. This is mainly due to breakthroughs like Deep Learning, and, more recently, Large Language Models.

Paradoxically, researchers are struggling even more to reproduce published research. This issue affects all possible aspects of research, including methodology, data curation, approach comparison, and implementation.

In this course, we’ll introduce and discuss the concept of ‘reproducibility’ in research. In particular, we’ll overview current issues in research and existing attempts to address them. We’ll focus on data curation, experimental setup, model comparison, and programming best practices.

This course is designed for researchers at different career stages, from those beginning their research journey to experienced practitioners seeking stronger reproducibility practices. See the prerequisites below for more details.

Part 1: Reproducibility in Research

We discuss risks in contemporary research, including non-reproducible findings, unavailable resources such as data and code, and unsustainable pressure to publish quickly. Whether you are an aspiring or experienced researcher, assessing trust requires asking whether a study provides enough methodological detail, code, data or collection guidelines, hyperparameters, and data-partitioning information for independent reproduction.

Lecture recordings
  • Lecture 1 – Reproducibility in Research (Pt. I).
  • Lecture 2 - Reproducibility in Research (Pt. II).
Readings

Part 2: Data collection and Annotation

Reproducibility can target different aspects of the research pipeline. From the conceptualization of ideas to collecting resources and doing experiments. We cover several aspects of data collection since it often represents the backbone of most produced machine learning research. In particular, we cover annotation paradigms, requirements for collecting and annotating data, issues and risks when collecting data, and evaluating annotation quality.

Lecture recordings
  • Lecture 3 – Data Collection and Annotation.
Readings
  • Geva et al., 2019 - Are We Modeling the Task or the Annotator? An Investigation of Annotator Bias in Natural Language Understanding Datasets.
  • Liao et al., 2021 - Are We Learning Yet? A Meta-Review of Evaluation Failures Across Machine Learning.
  • Paullada et al., 2021 - Data and its (dis)contents: A survey of dataset development and use in machine learning research.
  • Koch et al., 2021 - Reduced, Reused and Recycled: The Life of a Dataset in Machine Learning Research.
  • Röttger et al., 2022 - Two Contrasting Data Annotation Paradigms for Subjective NLP Tasks.
  • Cabitza et al., 2023 - Toward a Perspectivist Turn in Ground Truthing for Predictive Computing.
  • Ruggeri et al., 2025 - Let Guidelines Guide You: A Prescriptive Guideline-Centered Data Annotation Methodology.

Part 3: Modeling and Experimenting

There are other aspects of a machine learning pipeline where talking about reproducibility is essential: modeling, experimenting, and evaluation. We talk about data partitioning, data leakage, random seeding, performance comparison, and metrics.

Lecture recordings
Readings

Part 4: Responsible Research

While there are several issues we might encounter concerning reproducibility, there is also effort in developing solutions to mitigate these issues. One of these solutions in accordance with reproducible research is represented by recommendations checklists.

Lecture recordings
Readings

Part 5: Programming Best Practices

Reproducible experimental work also requires sound programming practice.

Research code should support:

  • Transparency: make assumptions and processing steps explicit.
  • Correctness: ensure implementation matches claims in the paper.
  • Readability: help collaborators and reviewers understand the code.
  • Efficiency: use computational resources responsibly.
  • Maintainability: make later reuse and extension practical.
Lecture recordings
  • Lecture 6 – Programming Best Practices (Pt. I).
  • Lecture 7 – Programming Best Practices (Pt. II).
Readings

Part 6: Cinnamon, a lightweight Python library for research

Cinnamon is a lightweight library for separating configuration from application logic.

Lecture recordings
  • Lecture 8 – Cinnamon: a lightweight python library for research.
Readings

Course History

  • 2024-2025 –> “Robust and Reproducible Research” (16 hours)
  • 2022-2023 –> “Robust and Reproducible Experimental Deep Learning Setting” (10 hours)

Course Info

16 hours total: eight 2-hour hybrid lectures.

Prerequisites

Lectures are meant to be interactive.

  • Programming: Intermediate
  • Deep Learning Theory: Intermediate
  • Jupyter Notebook: Beginner
Federico Ruggeri
Authors
Postdoctoral Research Fellow
I am a Postdoctoral Research Fellow in the Department of Computer Science and Engineering (DISI) at the University of Bologna and a member of the Language Technologies Lab. I develop natural language processing systems that extract structured knowledge from text and integrate unstructured knowledge into interpretable models, with applications in argument mining and legal analytics.