Computational Game Theory in Julia

Course Information
  • Lecturer: Eric Pacuit (website)
  • Venue: University of Ljubljana, Solvenia


  • Dates: July 31 - August 4, 2023
  • Meeting Times: 5:00pm - 6:30pm
  • There are two objectives for this course. The first objective is to introduce the Julia programming language, with a special focus on developing programs to study game theory using the Agents.jl package and the GameTheory.jl package ( The second objective is to provide an introduction to game theory emphasizing issues of particular relevance to students at ESSLLI, such as signaling games and repeated games on networks. The course will include a number of tutorials that will give students hands-on experience writing Julia programs. No previous experience with the Julia programming language will be assumed.

    The main topics in game theory that will be discussed include:

    • Normal form games
    • Equilibrium notions: Nash equilibrium, iterates strict/weak dominance
    • Example games: Prisoner's dilemma, Battle of the sexes, Stag hunt
    • Learning in games: (stochastic) fictitious play, Markov fictitious play, reinforcement learning
    • Evolutionary game theory: evolutionary stable strategies, replicator dynamics
    • Repeated games: Iterated Prisoner's dilemma, spatial games, games on networks
    • Extensive form games: Backward induction, forward induction
    • Lewis signaling games

Day 1    Introduction to game theory using Julia
Day 2    Agent-based simulations in Julia, I
Day 3    Agent-based simulations in Julia
  • Slides

  • Note the above link to the slides is to a Jupyter notebook that we discussed in the lecture. You can download it and run it in your own Julia installation.

Day 4    Deliberation and Learning in Games I
Day 5    Deliberation and Learning in Games II and Repeated Games