Game Theory: Introduction to the course

This course will cover the following aspects of Game Theory:

  • Normal form games and Nash equilibrium
  • Evolutionary Game Theory
  • Some contemporary research

All course materials are available online at You can also find all the source files that create that website at

The course notes are written using Jupyter notebooks, you will see mathematics but also Python code used to illustrate and confirm certain results.

For example here is some code verifying the simple identity:

$$ (a + b) ^ 2 = a^2 + 2ab + b ^2. $$
In [1]:
import sympy as sym  # A library used for symbolic computations
sym.init_printing()  # Use LaTeX to clean up the output
a, b = sym.symbols('a, b')
((a + b) ** 2).expand()
$$a^{2} + 2 a b + b^{2}$$

In class we will not follow the course notes: these are there for you to read on your own time. Instead we will use activities and other examples to illustrate the concepts. I have my own notes for those (which are also available to you):


There are two piece of assessment in this course:

  • Individual coursework (25%)
  • Exam (75%)

The individual coursework includes a programming component.