Module Information

Module Identifier
Module Title
Numerical Techniques for Physicists
Academic Year
Semester 2 (Taught over 2 semesters)
Mutually Exclusive
Mutually Exclusive
Mutually Exclusive
Mutually Exclusive
External Examiners
  • Professor Pete Vukusic (Professor - Exeter University)
Other Staff

Course Delivery

Delivery Type Delivery length / details
Practical 11 x 3 Hour Practicals


Assessment Type Assessment length / details Proportion
Semester Assessment Online coding test, in-class x 2  30%
Semester Assessment Online task,  in-class  20%
Semester Assessment Technique application, in-class  20%
Semester Assessment Written report,  1500 words  30%
Supplementary Assessment As determined by the Departmental Examination Board  100%

Learning Outcomes

On successful completion of this module students should be able to:

1. Construct small programs and visualisations in Python, with an awareness of good practice in developing code.
2. Recognise when binomial, Poisson, uniform, or Gaussian distribution describes data, and calculate their mean, standard deviation, and other expectation values.
3. Develop computer programs for various techniques for scientific computing and analysis.
4. Inspect a range of numerical methods.
5. Examine and numerically solve problems described by Ordinary Differential Equations.

Brief description

There are numerous mathematical problems that are either impractical or impossible to solve analytically and must instead be solved by computers using numerical techniques. Mathematical techniques are essential to Physics and, therefore, so are such numerical techniques. In Semester 1 this module introduces Python in the broader context of the Scientific Python Stack (Scientific Libraries/Extensions to the core Python language). Following the introduction, in Semester 2, this module continues to introduce methods for numerical analysis, modelling and statistics. Application of these techniques will be achieved through practical workshops.


Semester 1
Python and the Scientific Python Stack:
• Types, variables, if-statements, for- and while- loops
• Data structures: Lists, dictionaries and NumPy arrays
• Organising Python code:
- Function definition and calling
- Generating documentation (e.g. pydoc)
- Catching and handling exceptions
- Organising code into modules
- Executing main (and __main__)
• Objects and classes:
- Defining classes
- Instantiating an object
- Inheritance
• File handling and CSV format
• Visualising data (plotting) and data manipulation

Semester 2
Techniques for Physics:
• Statistics, including:
- Gaussian, Poisson and binomial distributions
- Hypothesis Testing
• Numerical Analysis, including:
- Regression (Linear and Curve Fitting)
- Root Finding
- Fourier analysis
• ODE Solving, including:
- Euler’s and Runge-Kutta Methods
- Application to chaotic systems

Module Skills

Skills Type Skills details
Application of Number The application of number is required throughout the module.
Communication Written Report, Documenting Code.
Improving own Learning and Performance From feedback (automatic, through computer, and in-practical feedback from demonstrators and staff).
Information Technology Application of IT skills are central throughout the module.
Personal Development and Career planning No, though skills taught are in high demand from employers.
Problem solving Problem solving skills are required and developed throughout the module.
Research skills Using a computer. Searching the language and library documentation.
Subject Specific Skills Programming, debugging, statistical, data analysis and modelling skills.


This module is at CQFW Level 5