The first year of the NGCM doctoral programme comprised two semesters of taught material (60 CATS credits each) tailored to the needs and interests of each student, followed by an Industry Summer Project (60 credits).
Our motivation behind, and more details about, this programme are provided here.
90 of the 120 credits of taught material were compulsory, introducing fundamental concepts, tools and methodologies, while the remaining 30 credits were optional modules that were chosen by the student to complement their research interests and background and prepare them for the research component of their doctorate. These optional modules covered research questions and approaches relevant in a particular problem domain (e.g., turbulence modelling), or introduce advanced modelling methods (e.g., agent-based modelling). The optional 30 credits could also be used, fully or partially, to carry out a small research project during the first year.
Our final taught year was completed at the end of the 2018/19 academic session.
Advanced Computational Methods I
The FEEG6002 module introduces C Programming as one of its main activities. This goes together with introduction of Linux, Version control (Mercurial), Symbolic methods and automatic code generation, and integrating C and Python objects and code (Numpy, Weave, Cython). The module contains a section on software engineering, in particular automatic unit and system testing, test-driven-development and continuous integration.
Advanced Computational Methods II
FEEG6003 is currently not available as a taught module; this course introduced OpenMP and MPI programming and was delivered by the Edinburgh Parallel Computing Centre (EPCC), which is the current service provider for the UK’s supercomputer ARCHER and associated Computational Science and Engineering support and training. The OpenMP and MPI courses were delivered in two blocks during the Easter break, and open to other attendees. They were assessed by coursework. Around a third of the module was focused around student-led workshops on various computing methods and programs; past lectures have included topics such as the use of HDF5, C and Fortran language interoperability, the use of FEniCs, and quantum computing, among other things. These were open to other PhD students at the University.
Applied Statistical Modelling
STAT6117 (formerly MATH6157) introduces important general aspects of statistical modelling and some fundamental aspects of data collection for computer and simulation experiments. A broad range of commonly-used statistical models is introduced and used to demonstrate both general principles and specific examples of modelling techniques in R. A variety of exemplar applications and data sets is presented.
The MATH6141 module gives an introduction to numerical analysis, covering topics from linear algebra to the solution of PDEs with a strong emphasis on the practical numerical implementation of the algorithms. There is considerable use of live coding demonstrations and computer lab sessions.
Professional and Research Skills
FEEG6018 covered a number of complementary training-led elements, including Technical Writing Skills, Presenting Your Research, Research Data Management, Outreach and Impact Activities, Demonstrator and teacher training, and How to manage your supervisor.
Python Programming Primer
The Python programming primer provides a 1-week intensive course before the official start of term. The primer includes an introduction to Python and IPython, data types, functions, modules, basic testing and version control, and the use of plotting and numerical libraries (matplotlib, numpy, scipy). It also works as a cohort-building activity, encouraging the CDT students to solve problems as a group from the start.
Simulation and Modelling
FEEG6016 covered a range of key modern modelling techniques; namely: density functional theory, molecular dynamics, Monte Carlo methods, agent-based simulation and discrete-event simulations, and finite elements. Teaching was performed via lectures and fortnightly lab-based and problem-based mini-projects. The module was also designed solely for NGCM CDT students and is no longer on offer at the University of Southampton as of March 2020.
The summer project allows students to engage with full time research on one project with limited scope, as is appropriate for the summer months. The summer projects are put together with the student supervisors and external partners so that each project allows students to gain new insight and understanding of the constraints they may experience in a non-academic work environment. The module is assessed through a written report.
Optional modules teach advanced tools and methods and develop knowledge and understanding in specific domains, and could be used to engage with a new application domain via a small research study (15 or 30 credits worth). Students were free to consider advanced level modules taught across the University, e.g., Advanced Machine Learning (from Electronics and Computer Science), Chemical Informatics (from Chemistry), Turbulence I and II (from Engineering), etc. Not every option would be suitable for every student. Guidance from tutors and directors helped to ensure that a suite of suitable optional modules are chosen to help each student to prepare best for their particular doctoral research project.
By the beginning of the second semester, each student chose an industry-motivated summer project. This choice will be informed by a series of guest lectures and workshop activities run as part of the Professional and Research Skills module (see above and list of seminars shown on our blog).
Each summer project focussed on developing computational modelling in the context of a particular real-world application domain. All ISP’s had been scoped in collaboration with relevant NGCM partners. Some will involve site visits and close collaboration with the partner organisation.
The aim of the summer project was to develop the students’ skills for independent research, to expose them to the relevance of computational modelling to real-world problems, and to foster an understanding of constraints in non-academic environments.