News and Blog

EPSRC CDT in Next Generation Computational Modelling

Python Programming Primer

The Python Programming Primer is the first training experience that the NGCM CDT students take part in. For our cohort starting in Autumn 2014, this course was taking place two weeks before the start of the teaching semester, to provide a common base in programming: most of the taught modules in year 1 of the programme make use of Python and build on it.

The course was delivered by the centre's director Hans Fangohr with help of student demonstrators during 5 intensive teaching days from 9:30 to 17:30: usually about 90 minutes of taught materials alternate with 90 minutes of practical exercises.

All student exercises were automatically marked and feedback provided, the contact time with the lecturer and student demonstrators can be used to interpret the automatic feedback and improve style or explore techniques going beyond the core material.

Students working on self-paced exercises

Students working on self-paced exercises during Python Programming Primer

All the training took place in the CDT's common room in which students have allocated desks for the first year of their studies to provide a home for them between their lectures and computational laboratories, and to encourage peer teaching and cohort building. In particular, the practical exercises -- some of which are challenging -- encourage peer teaching and cohort building: the whole activity has certainly delivered very effective team building.

Student ratings of the module have been very positive: on a scale of 1 (worst) to 5 (best), the teaching activity overall was rated as 4.6, the quality of the lead lecturer as 4.8, and the timeliness of feedback as 4.9.

In our extended evaluation activities, one of the participants commented: "I would most definitely recommend this course to my peers. If you haven't coded before it is a good introduction to a free open source language that is ever growing an becoming more powerful. Python doesn't just have to be used for computational modelling and large scale computational programmes, it can be used for making everyday laborious tasks quick, simple and easy to carry out."

Another student, who had prior knowledge in Python, remarked how they benefitted from the included introduction to systematic testing and distributed version control: "The new parts I learnt (I did a similar course in second year of my undergraduate course) will most definitely change the way work i.e. the py.test and the version control through mercurial will be extremely useful."

In addition to 10 NGCM CDT students, a further 8 PhD students from the University of Southampton have benefitted from that course.