Skip to main content

Unit information: Scientific Computing and Optimisation in 2024/25

Please note: Programme and unit information may change as the relevant academic field develops. We may also make changes to the structure of programmes and assessments to improve the student experience.

Unit name Scientific Computing and Optimisation
Unit code SEMT30002
Credit points 20
Level of study H/6
Teaching block(s) Teaching Block 1 (weeks 1 - 12)
Unit director Dr. Hennessy
Open unit status Not open
Units you must take before you take this one (pre-requisite units)

EMAT20200 Engineering Mathematics 2 or equivalent

Computer Programming and Algorithms or equivalent

Units you must take alongside this one (co-requisite units)

None

Units you may not take alongside this one

None

School/department School of Engineering Mathematics and Technology
Faculty Faculty of Engineering

Unit Information

Why is this unit important?

Modern problems that appear in science and engineering are often too complicated to be solved using pen and paper. Instead, these problems must be solved with the aid of computers and specialised numerical algorithms. Doing so requires two steps. First, the original problem must be translated into a form that can be implemented on a computer, often using a programming language such as Python or Matlab. Second, an appropriate numerical method must be chosen to solve the problem. The choice of numerical method is often crucial to ensuring that computational results are reliable and obtainable in a reasonable amount of time. Finding the optimal method usually amounts to balancing speed and accuracy while considering the computational resources that are available. This unit will provide the background that is needed to make informed and optimal decisions when faced with a computational problem.

How does this unit fit into your programme of study

This unit will bring together your previous experience of solving mathematical problems (optimisation, differential equations) and writing computer programmes using Python or Matlab. The aim is to provide you with a suite of tools that can be used to transform real-world problems, such as those encountered in the Mathematical and Data Modelling units and final-year projects, into problems that can be efficiently solved on a computer.

Your learning on this unit

An overview of content

This unit will cover two major pillars of computational science: numerical optimisation and numerical methods for partial differential equations. These topics will be split evenly across the unit. The focus will be on practical problem solving using a combination of hand-coded numerical methods and widely used software packages such as Python and Matlab. A small amount of theory will be covered in order to explain the limitations of different numerical methods.

The part of the unit on optimisation will cover:

  • linear programming
  • mixed-integer linear programming
  • gradient-based optimisation methods
  • global optimisation.

The part of the unit on differential equations will cover finite-difference methods and their application to:

  • Boundary-value problems for ordinary differential equations
  • First-order partial differential equations (conservation laws)
  • Second-order diffusive partial differential equations
  • Laplace and Poisson equations in two space dimensions.

How will students, personally, be different as a result of the unit


After taking this unit, students will feel confident in using computers to solve real-world problems. They will have the core skills that are needed to translate mathematical problems into computational formulations. Students will gain first-hand experience of solving problems with a variety of methods. By learning the pros and cons of each method, students will be able to make informed choices when faced with computational problems in the future. Students will learn how to scrutinise the outputs of numerical methods and assess their reliability.

Learning Outcomes

By the end of the unit, students will be able to:

  1. Translate a variety of real-world problems into appropriate computational formulations.
  2. Implement solvers for these formulations using a blend of packages and self-developed code.
  3. Make appropriate choices for numerical methods, solvers, and solver parameters based on theoretical limits, the type of underlying problem and own benchmarking results
  4. Validate code through comparison against problems with known solutions.
  5. Use advanced plotting and graphical tools to insightfully interpret and present results.

How you will learn

This unit will involve a combination of asynchronous and synchronous learning. Pre-recorded videos will be the primary means of delivering content. Each week there will be a one-hour lecture session, where demonstrations of the methods covered in the videos will be shown. The lecture session will also provide an opportunity to ask questions and discuss material that was covered in the videos. There will also be a weekly two-hour lab session for working through exercises sheets with feedback from lecturers and Teaching Assistants. These exercise sheets will provide an opportunity to develop code and gain experience of solving problems using different numerical methods. Finally, there will be a one-hour drop-in session for additional support.

How you will be assessed

Tasks which help you learn and prepare you for summative tasks (formative):
Weekly exercises will be provided to help you gauge your understanding of material. Individual feedback on these exercises will be provided in weekly lab and drop-in sessions that are supported by lecturers and Teaching Assistants.


Tasks which count towards your unit mark (summative):
This unit will be assessed through a single coursework assessment that covers all ILOs. The coursework will involve a combination of theory-based questions, practical questions (e.g. find a numerical solution to this problem), and open-ended questions.


When assessment does not go to plan
Reassessments for this unit will follow the same format as the original assessment.

Resources

If this unit has a Resource List, you will normally find a link to it in the Blackboard area for the unit. Sometimes there will be a separate link for each weekly topic.

If you are unable to access a list through Blackboard, you can also find it via the Resource Lists homepage. Search for the list by the unit name or code (e.g. SEMT30002).

How much time the unit requires
Each credit equates to 10 hours of total student input. For example a 20 credit unit will take you 200 hours of study to complete. Your total learning time is made up of contact time, directed learning tasks, independent learning and assessment activity.

See the University Workload statement relating to this unit for more information.

Assessment
The Board of Examiners will consider all cases where students have failed or not completed the assessments required for credit. The Board considers each student's outcomes across all the units which contribute to each year's programme of study. For appropriate assessments, if you have self-certificated your absence, you will normally be required to complete it the next time it runs (for assessments at the end of TB1 and TB2 this is usually in the next re-assessment period).
The Board of Examiners will take into account any exceptional circumstances and operates within the Regulations and Code of Practice for Taught Programmes.

Feedback