Skip to main content

Prerequisites

The University’s official prerequisites are listed separately for each specialisation:

  • Financial Technology
  • Astrophysics
  • Earth and Environmental Sciences
  • Computer Vision and Robotics

    As there is a high demand for this programme with a finite number of places available, we operate a staged admissions process with application deadlines throughout the year for Computer Vision and Robotics speciality. Due to the competition for places we give preference to applicants from high ranking institutions and with grades above our minimum entry requirements.

    G5T509 MSc Scientific Computing and Data Analysis (Computer Vision & Robotics)

     

    Application Deadline

    Decision Deadline

    Round 1

    13/11/2024

    18/12/2024

    Round 2

    12/02/2025

    26/03/2025

    Round 3

    09/04/2025

    21/05/2025

    Round 4

    11/06/2025

    23/07/2025

    • Applications received after our final application deadline will be considered at our discretion if places are still available. Whilst we aim to give you a decision on your application by the listed date, due to the high volume of applications that we receive, this may not always be possible. All deadlines are 23:59 UK time (GMT)
    • Applications for each stage open immediately after the deadline for the previous stage

General Information

All streams require a UK first or upper second class honours degree (BSc) or equivalent

  • In Physics or a subject with basic physics courses OR
  • In Computer Science OR
  • In Mathematics OR
  • In Earth Sciences OR
  • In Engineering OR
  • In any natural sciences with a strong quantitative element.

We encourage applicants to select a specialization area that aligns with their background. Please note that standard business degrees do not provide the necessary mathematical foundation.

 

Additional requirements

  • Applicants must demonstrate strong programming skills in at least one compiled language, preferably C or C++, although Rust, Java, C#, Fortran, or Pascal are also acceptable. Proficiency in Python may suffice if the applicant has a strong background in their chosen specialization. Those lacking experience in C or C++ are advised to enrol in our pre-sessional course.
  • Additionally we require knowledge of undergraduate-level mathematics, covering linear algebra, calculus, integration, ordinary and partial differential equations, and probability theory.
  • Please see the University guidance here for information on required English language levels.

Rationale

There are a few things you have to be  to know before you join this course, and you will not have time to learn it on-the-fly: An essential requirement for this course is that students can program already. In Core I and Core IIB, we mainly rely on Python and C, so some knowledge in these two languages (not expert, but decent) is extremely important. Core IIA will later on use R. Unlike C and Python, we do not expect students to know R already. In addition to C and Python, students are expected to have a firm grounding in Mathematics. Finally, we will use Linux systems throughout the course. If you know only Windows or your Mac, it is time to learn some basics around command line usage.

We provide some self-assessment tests and material below. These are meant to be used for self-assessment, course preparation and a refresher. It is up to the University’s admissions team to assess your application against the official, formal criteria.

Python

Some good online resources for learning Python up to a level that you are fit for this course are

C and C++

C still is the lingua franca in scientific computing and HPC despite success stories from other languages and the previous dominance of Fortran (lots of code in Fortran is still out there). We expect that students can program in C. However, basic C knowledge is sufficient. No advanced object-oriented C++ is required, and no knowledge of any specific libraries. Students are expected to know how to write basic C applications, what semantic language constructs exist, how to compile and link applications, and so forth. We do not expect students to be able to write fast code (yet), but some expertise in debugging definitely useful.

We will be running a two week workshop covering the basics of programming in C and C++ in September. This course is mainly aimed at participants with no prior knowledge of C. It can be followed in person and will be made available asynchronously online for MiSCADA students. You can register here: https://scicomp.webspace.durham.ac.uk/teaching/professional-development/software-development-in-c-and-c-2024/.

R

Some great online resources for learning R:

We do not expect you to know R prior to the course. We however to expect students to learn R once they enter term 2.

Linux

Most of our research and teaching is based upon Linux-based systems. Durham offers introductory courses on Linux, but some basic prior knowledge is a pro. The remaining Unix skills are easily acquired on-the-fly. If you want to revise your Linux knowledge, you might want to have a look at the corresponding Core lessons from the Software Sustainability Institute’s material at https://software-carpentry.org/lessons/.

If you want to run all examples from home without a server (we give you access to servers, but we also encourage you to try to install and run stuff on your own kit – this is a useful skill for your work later), you have to maintain and install all software yourself. We cannot provide support for this.

We do however recommend that you simply install a simple Linux distribution. This is free, and almost all Linux distributions can be installed in dual boot mode, i.e. with Windows in parallel if you want to keep Windows. Both Linux and MAC come along with C/C++ compilers usually. You might have to install Python yourself.

Simple command line access to C is sufficient (see once more the Unix shell course from the Software Sustainability Institute at https://software-carpentry.org/lessons/). Same for Python. You will need no further software initially. A plain text editor and the command line interpreters/compilers are sufficient.

Mathematics

Typical content that we expect students to be familiar with is

  • elementary statistics – mean, standard deviation, variance
  • calculus, partial differentiation, integration, elementary functions
  • basic linear algebra, i.e. matrix manipulation, vector spaces
  • notion of a partial/ordinary differential equations
  • Taylor series expansion