Skip to content

Programme and description of the courses

Time Monday Tuesday Wednesday Thursday Friday
09:00-11:00 Introduction to Combinatorial and Geometric Group Theory Combinatorial Game Theory Presentation of research problems Introduction to probabilistic combinatorics Combinatorial game theory
11:00-11:15 Break Break Break Break Break
11:15-13:15 Introduction to probabilistic combinatorics Introduction to Combinatorial and Geometric Group Theory Excursion to Pythagorion Automata and Turing machines Automata and Turing machines
13:15-17:00 Lunch break – free time Lunch break – free time Lunch break – free time Lunch break – free time Lunch break - free time
17:00-19:30 Practice session - Exercises Practice session - Exercises School Dinner Practice session - Exercises Practice session - Exercises

Introduction to Combinatorial and Geometric Group Theory

Instructors: V. Metaftsis and E. Prassidis

Description: The goal of this course is to introduce the following central notions of combinatorial and geometric group theory: Caley graphs as metric spaces, group actions on graphs, group presentations, hyperbolicity and boundary, quasi-isometry and geometric invariance, automata word metrics and growth, hyperbolic geometry.

Introduction to Probabilistic Combinatorics

Instructor: Alexandros Singh

Description: In this course we will introduce basic notions of discrete probability theory and their application to combinatorics, specifically random graph theory. We will focus on building a basic toolkit of techniques including the first and second moment methods and basic facts about stochastic processes. The Erdős–Rényi model of random graphs will serve as the central source of motivation and applications of the course.

The course notes are available here. The exercises are available here, as a SageMath notebook and here, as a .pdf. You'll also need this helper module.

Combinatorial Game Theory

Instructor: Benjamin Dupont

Description: This course introduces students to combinatorial game theory and algorithmic strategies for perfect-information games. It covers the Minimax algorithm for optimal decision-making, Alpha-Beta pruning to improve efficiency, and Monte Carlo Tree Search (MCTS) for probabilistic exploration in complex games. The course combines lectures, interactive demonstrations, and hands-on coding exercises.

The course's slides and exercise sheets are available here:

  1. Slides - Part 1, Slides - Part 2
  2. Jupyter Notebook 1, Jupyter Notebook 2

Automata and Turing machines

Instructors: Revekka Kyriakoglou and Stratos Prassidis

Description: The course introduces finite automata, regular expressions, grammars, and Turing machines. The practical session focuses on constructing and simulating automata and simple Turing machines in Python using the automata-lib.

The course's slides and exercise sheets are available here:

  1. Slides
  2. Jupyter Notebook - Part 1, Jupyter Notebook - Part 2