Many of us have experience in modelling heterogeneous catalysts using mean-field-type approaches, e.g. within the context of Langmuir-Hinshelwood kinetics. However, an increasing amount of research is showing that such approaches are inadequate, at least for certain systems. The approximations and simplifications employed therein can indeed lead to quantitative or even qualitative errors in the prediction of catalytic performance metrics. This tutorial is intended for readers with background on chemical kinetics but who have just started exploring kinetic Monte Carlo (KMC), and discusses what this method can do and why it is superior to mean-field-type models.

The term "kinetic Monte Carlo" (KMC) refers to a general class of simulation methods that use random numbers to model transient processes or phenomena (i.e. those with time-varying features). When based on the foundation of first-principles laws and statistical mechanics, these methods become powerful tools able to deliver deep understanding and predictive capability. This tutorial consists of a series of video lectures discussing the fundamental concepts of statistical mechanics underpinning KMC, as well as some algorithmic aspects pertaining to the graph-theoretical KMC and *Zacros*.

Post-processing and visualising results of KMC simulations can be tedious, time-consuming or prone to errors if done without a dedicated and validated software application. *Zacros*-post is a graphical user interface that allows you to post-process and visualise the main output files generated by *Zacros*. This tutorial explains how to install *Zacros*-post and provides a description of its main features.

Setting up a kinetic Monte Carlo (KMC) simulation with *Zacros* is relatively easy, but requires some background knowledge to ensure that things are done correctly. The material made available here contains a Lecture and 4 Tutorials, and is intended as a crash-course on KMC simulation and the use of *Zacros*, assuming one is familiar with basic concepts of statistical mechanics. Hands-on activities on *Zacros* are provided as well, at the end of each Tutorial.

One of the benefits of kinetic Monte Carlo is that it coarse-grains physical space: the reacting molecules are no longer moving and interacting in the 3D space but on a lattice. Thus, diffusion, for instance, is not captured as a continuous (x,y,z)-trajectory but rather as a transition whereby a molecule hops from one site of the lattice to another. Choosing how to map a catalytic surface onto a lattice is relatively simple, but one has to make some decisions that may be important in correctly capturing the relevant physics. This tutorial provides guidance on this matter and explains how to set up the input for a periodic lattice in *Zacros*. As a working example we will consider a FCC(100) surface.