Skip to main content Skip to navigation

MA933 - Module Resources


Admin details:

Lecturer: Susana Gomes

Teaching Assistant: Kamran Pentland

All lectures and support classes will be in room D1.07, but they will also be streamed on MS Teams if somebody is in self-isolation.

Most of the course materials will also be uploaded to the MA933 Team. If you are not on the Team and would like to be added, please email the lecturer.

Kamran will upload jupyter notebooks for your support classes. These will be on his github page.

Assessment deadlines
Sheet 1 - Monday 25 October 2021, 12 noon (UK time)
Sheet 2 - Monday 22 November 2021, 12 noon (UK time)
Sheet 3 - Friday 17 December 2021, 12 noon (UK time)

Class test - Wednesday 12 January 2022, 10:00 (UK time) in D1.07

Submit worksheets here.

Class test

For the procedure for the class test, see this page.

2019 class test available for revision

Below is the 2019 information for reference.



In 2019/20, the lecturer was Stefan Grosskinsky and the TA was Emma Southall.

Below is some of the information from 2019/20 for your reference (including previous class tests for revision, old lecture notes, and old handouts). I will follow most of Stefan's lecture notes but I aim to type my own during this term.


  • list of exam topics UPDATED 7.12.!
  • Written class test (about 3 hours) on Friday January 17 (week 2 of term 2), 10-1pm in D1.07, counts 80/100.
    No books allowed, please only come with writing material and have your student ID number ready to put on the exam booklet.
    Previous class tests (ONLY 2 HOURS) from 2014 (pdf), 2015 (pdf), 2016 (pdf), 2017 (pdf) and 2018 (pdf)
  • homework counts 20/100 marks


Problem sheets

  • sheet 1: due Friday 18.10., 12pm noon
    Random walk, PĆ³lya urn models, generator matrices

  • sheet 2: due Friday 15.11., 12pm noon
    Kingman's coalescent, Ornstein-Uhlenbeck process, Moran model, birth-death chains
  • sheet 3: due Friday 17.1., 12pm noon
    Geometric Brownian motion, Barabasi-Albert model, Erdos Renyi random graphs, contact process
    CHANGES 6.12.: Q3.5 is not for credit! Total mark for sheet changed to 50.
    18.12.: Q3(a) and (b) have been clarified in the online version, please have a look.



For class material see Emma's Github page

Moran model on sheet 2: moran_model.ipynb

Contact process on sheet 3: contact_process.ipynb, contact.c, sample output for system size 512

Python is far too slow for this kind of simulation. You can use contact.c on the SCRTP machines you have access to (for machine names see slides for week 2 on this page by Dave Quigley).
Compile the code on the command line with: gcc -lgsl -lgslcblas -O9 -ooutputname contact.c
then type in command line: nohup ./outputname &
in the same directory, the nohup in front will cause the programme to finish even if you log out (no-hangup).
Adapt the code using a text editor and recompile, should be obvious which changes to make for (a), for (b) you will have to introduce a test function to stop the code when the absorbing state is reached.
For up to 500 realizations codes only run a few minutes which is fine. If you run longer jobs, you HAVE to follow these instructions how to use 'nice', also good to find which other machines are online.

Additional stuff