[B-KUL-H02A3A] Constraint Solving (CoS) (2025) @ KU Leuven details
Gave 3 lectures (basic modelling, symmetry/dominance breaking, and viewpoints). Created content for two graded student projects (in collaboration with Marco Foscini), for which I developed an auto-grading framework (described in a ModRef 2026 paper) which can check, grade, provide feedback, and leaderboard submitted student project models.

Abstract

Objectives

On completion of the course, the student should be able to:

  • define the concepts of constraint solving and combinatorial optimisation
  • explain the concept of a constraint, as used in a constraint-based modeling language
  • model a constrained problem in a constraint-based modeling language, including logical and global constraints
  • compare (empirically) several models, e.g. by introducing redundancy or by detecting and breaking symmetries
  • describe and compare constraint solving technologies, including constraint programming, integer linear programming and Boolean satisfiability
  • select suitable solving technologies for a combinatorial problem, and motivate this choice
  • demonstrate awareness of recent advancements in constraint solving research
  • present and discuss topics related to the course content, orally or in writing, with a skill appropriate for the level of education

[FIT5216] Modelling Discrete Optimisation Problems (2021, 2022, 2023) @ Monash University details
In 2021, I taught labs as a teaching associate, guided by Alexander Ek. In 2022, I was admin teaching associate, dealing with the administrative side (Moodle LMS, handling grades, many other time-consuming tasks). I also developed an anti-plagiarism tool which cross-checks the similarity of submitted student assignments (with disappointing success). In 2023, I was TA again and helped set up Rehan Mendis as the new admin.

Abstract

This unit introduces the fundamentals of modelling for discrete optimisation, focusing on how to rigorously express a discrete optimisation problem in a manner that can be solved. Topics covered will include decision variables, basic constraints, modelling with sets, modelling with functions, multiple modelling viewpoints, modelling time, common modelling patterns, model translation, and debugging discrete optimisation models. We will examine complex real world problems and see how they can be translated so that they can be solved by modern discrete optimisation technology.

[FIT5220] Solving Discrete Optimisation Problems (2022) @ Monash University details
Teaching associate (teaching labs)

Abstract

This unit introduces the fundamental algorithms for solving discrete optimization problems, such as constraint programming, boolean satisfiability, mixed integer linear programming and local search.