News and Blog

EPSRC CDT in Next Generation Computational Modelling

NGCM Programming primer

Programming primer by Hans Fangohr

Route to Lepe country park plotted with Strava

The NGCM programming primer is the first experience of each new cohort entering into the CDT. It‘s a 35-hour intensive Python course ran by Hans Fangohr, the director of the NGCM. Designed to get everyone ready for the first year of taught study.

The course consists of taught informal lectures and computer laboratories, and also provides an excellent opportunity to become familiar with the University and Boldrewood Innovation Campus, the home of the NGCM and location of the common room where the course is held.

In addition to providing a grounding in programming (see also this summary of the wider training context), the primer gives the new students a chance to get to know each other, as well as important members of staff like Hans, and the centre's manager Susanne. Volunteers from the preceding cohort also assist in the laboratories, and at the end of the primer week a BBQ is held in Lepe Country Park on the coast, where all cohorts and NGCM staff are invited.

The primer begins with the guided installation of the Anaconda Python distribution package onto the student’s newly acquired laptops-which are provided for the duration of the iPhd by the NGCM.

The Anaconda package comes with well-known Python modules needed to get started with scientific programming such as numpy, matplotlib, and scipy, as well as the development environments Spyder and the IPython Jupyter notebook. The students are trained on, and use both of these during the course.

Python is chosen as the introductory language to begin with in the CDT for a number of reasons; including its wealth of freely available online support and open source materials, it’s relatively simple syntax making it an ideal language for beginner programmers to learn, and of course its versatility being both functional and object oriented meaning it provides a well rounded yet powerful introduction to programming.

The NGCM takes students from a variety of scientific backgrounds and does not expect everyone to have programmed extensively before, hence the course begins with basic Python syntax and programming constructs such as FOR loops and IF statements before progressing over the week onto more advance topics such as recursion, unit testing and object oriented programming. The difficulty increases at a steady pace allowing even those with a minimal background in programming to keep up.

Meanwhile, if there are members of the cohort with more experience who are already familiar with Python, they are kept busy with some additional projects. For example, two students in the 2015 cohort used Strava ( – the athlete tracking website and the corresponding Python library API to plot the route they took to cycle to Lepe country park for the BBQ held at the end of the week , and presented their results to the rest of the students at the end of the primer.

Personally, I really enjoyed the primer week and thought it was a great introduction and welcome into the CDT and University as a whole, and would urge anyone considering applying to the NGCM who is concerned they may not have enough programming experience not to worry, the primer will get you where you need to be.

Kieran Selvon- 2015 Cohort