Please read our student and staff community guidance on COVID-19
Skip to main content Skip to navigation

MA933 - Module Resources

Lecturer: Stefan Grosskinsky (email)

TA: Emma Southall (email)

No lectures next week (28.11. and 29.11.) due to strike action.

Class takes place Wednesday 27.11., 10-11 in D1.07!

See calendar for up to date timetable.

Lectures: Thu 11-1 and Fri 11-12 in D1.07

Classes: Fri 12-1 in D1.07


  • 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