Module Information

Module Identifier
PH26600
Module Title
Numerical Techniques for Physicists
Academic Year
2024/2025
Co-ordinator
Semester
Semester 1 (Taught over 2 semesters)
Pre-Requisite
Pre-Requisite
Exclusive (Any Acad Year)
Exclusive (Any Acad Year)
Exclusive (Any Acad Year)
Exclusive (Any Acad Year)
Exclusive (Any Acad Year)
Other Staff

Course Delivery

 

Assessment

Assessment Type Assessment length / details Proportion
Semester Assessment Online task,  in-class  20%
Semester Assessment Written report,  1500 words  30%
Semester Assessment Online coding test, in-class x 2  30%
Semester Assessment Technique application, in-class  20%
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) and statistics. Following the introduction, in Semester 2, this module continues to introduce methods for numerical analysis, and modelling. Application of these techniques will be achieved through practical workshops.

Content

Semester 1

• Types and variables in Python

• Data structures: Lists, dictionaries and NumPy arrays

• Control Statements and Blocks: If-statements, for- and while-loop

• Organising Python code:
- Function definition and calling
- Catching and handling exceptions
- Organising code into modules

• File handling and data formats

• Visualising data (plotting) and data manipulation

• Statistics, including:
- Gaussian, Poisson and binomial distributions
- Hypothesis Testing

Semester 2

• Numerical Analysis, including:
- Regression (Linear and Curve Fitting)
- Integration
- Root Finding
- Interpolation
- 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.

Notes

This module is at CQFW Level 5