Surrey University Stag


Module code: PHY3042

Module Overview

This module covers techniques in solving physics problems on computer in a more advanced way than lower-level courses. It combines use of scientific program libraries within Python, along with advanced algorithms for problem solving, and introduces the high-level Maple package for analytic computation, with applications to solving differential equations.

Module provider

Mathematics & Physics

Module Leader

STEVENSON Paul (Maths & Phys)

Number of Credits: 15

ECTS Credits: 7.5

Framework: FHEQ Level 6

JACs code: F343

Module cap (Maximum number of students): N/A

Overall student workload

Independent Learning Hours: 117

Lecture Hours: 11

Laboratory Hours: 22

Module Availability

Semester 1

Prerequisites / Co-requisites

PHY2063: Energy, Entropy and Numerical Physics

Module content

Indicative content includes:

• Differential equations in physics; Linear algebra approach to their solution via Python libraries; Introduction to Maple, survey of its capabilities, and application to solution of differential equations (4 weeks)

• Algorithmic techniques: Optimisation; Neural Networks and machine learning, the Fast Fourier Transform (5 weeks)

• Monte Carlo Methods (2 weeks)


Assessment pattern

Assessment type Unit of assessment Weighting

Alternative Assessment


Assessment Strategy

The assessment strategy is designed to provide students with the opportunity to demonstrate ability to apply the range of techniques used in this course to tackle problems of relevance in broad areas of physics.


Thus, the summative assessment for this module consists of:

  • two assignments which feature programming exercises, covering the whole range of course material

  • The first assignment is due on Tuesday of Week 7 at 4pm and covers solution of a differential equation within physics using (a) Linear Algebra approach and (b) Maple-assisted analytic solution.

  • The second assignment is due on Tuesday of Week 12 at 4pm and covers the remainder of the material.


Formative assessment

Weekly exit tests.



Each week's material features a short exit test which can be submitted for feedback. The first summative assignment will be returned with feedback during the teaching weeks. A discussion board provides written feedback to written questions, and the live sessions offer instant feedback.


Module aims

  • To advance skills in different areas of using computers to solve physics problems.
  • To gain experience and confidence in using library routines for solving linear algebra problems.
  • To learn advanced algorithms and techniques, such as the use of (fast) fourier transforms, the use of neural networks and machine learning, monte carlo techniques, and numerical minimization and optimization.
  • To be able to take differential equations from physics problems and discretise them to form sets of linear equations to be solved by library routines.
  • To visualise the output of these computations
  • to equip students with sufficient familiarity with Maple to solve differential equations with it.

Learning outcomes

Attributes Developed
001 Understand how to use scientific computational libraries within Python and how to apply them to physics problems KPT
002 Appreciate the utility of Monte Carlo methods and make decisions about where to apply them KCP
005 Understand and apply techniques of neural networks and machine learning to general optimization problems. KCT
003 Understand the uses and applications of the Fast Fourier Transformation Algorithm KPT
004 Employ the anaytic Maple package for the solution of differential equations and other problems in physics. KCPT

Attributes Developed

C - Cognitive/analytical

K - Subject knowledge

T - Transferable skills

P - Professional/Practical skills

Methods of Teaching / Learning

The learning and teaching strategy is designed to:

Build the skills and knowledge of students to apply advanced computational techniques to problems of physical relevance, and to be able to select appropriate tools for unseen problems

The learning and teaching methods include:

  • Weekly one-hour lecture session in which material is developed on the board with associated use of computer demonstration.  These session are recorded for review.

  • Weekly two-hour classes in the computer lab with specific short formative excercises to help understand each week’s material

  • Use of online discussion board


Indicated Lecture Hours (which may also include seminars, tutorials, workshops and other contact time) are approximate and may include in-class tests where one or more of these are an assessment on the module. In-class tests are scheduled/organised separately to taught content and will be published on to student personal timetables, where they apply to taken modules, as soon as they are finalised by central administration. This will usually be after the initial publication of the teaching timetable for the relevant semester.

Reading list
Upon accessing the reading list, please search for the module using the module code: PHY3042

Other information

Note that the principal language of tuition of this module is Python 3.  Support and materials are provided for students with a background in Fortran.

Programmes this module appears in

Programme Semester Classification Qualifying conditions
Physics with Astronomy BSc (Hons) 1 Optional A weighted aggregate mark of 40% is required to pass the module
Physics with Nuclear Astrophysics BSc (Hons) 1 Optional A weighted aggregate mark of 40% is required to pass the module

Please note that the information detailed within this record is accurate at the time of publishing and may be subject to change. This record contains information for the most up to date version of the programme / module for the 2024/5 academic year.