Skip to main content

Unit information: Principles of Numerical Analysis and Research Software Development in 2022/23

Please note: It is possible that the information shown for future academic years may change due to developments in the relevant academic field. Optional unit availability varies depending on both staffing, student choice and timetabling constraints.

Unit name Principles of Numerical Analysis and Research Software Development
Unit code AENGM0071
Credit points 10
Level of study M/7
Teaching block(s) Teaching Block 1 (weeks 1 - 12)
Unit director Dr. Macquart
Open unit status Not open
Units you must take before you take this one (pre-requisite units)

Prior knowledge of linear algebra and partial differential equations.

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


Units you may not take alongside this one
School/department Department of Aerospace Engineering
Faculty Faculty of Engineering

Unit Information

The unit will introduce students to programming concepts and how best to apply them to the successful analysis of composites with a research focus. It assumes no prior experience of computer programming as this unit is aimed at students from a variety of backgrounds. Programming skills will be developed through completing a wide range of exercises covering commonly encountered numerical analysis techniques. The project culminates with the application of several analysis techniques to understand the behaviour of algorithms and structures, with the students required to report on the advantages/limitations of these approaches. Throughout the course the students will be exposed to “best practice” regarding software development and the use of parallel computing. Validation and critical evaluation of their own code is built into the assessment format to highlight its importance.

The unit will comprise of self-paced learning working through a series of well-documented examples. These will be supported by seminar type sessions where key aspects of the numerical techniques are discussed. Students will be directed towards online tutorials and documentation in order to support the development of self-study skills.


1) Upon completion students will have a good understanding of the fundamentals of programming demonstrated through practical examples.

This will be achieved through understanding of and implementation of several coding tasks covering the following points:

  • How to think like a computer? (Designing Algorithm)
  • Fundamental coding syntax.
  • Knowledge of data types/structures.
  • Application of loops, functions, conditional statements.
  • Controlling data input and output.
  • Program structure – modularization.
  • Validation of code, e.g. unit testing and experimental correctness.

2) Upon completion students will have reviewed the basis of good engineering report writing, with application using LaTeX and Overleaf, i.e. how to build the report from a blank page, including content, structure, formatting of tables, and figures, amongst others.

3) Upon completion students will be able to apply a vast range of numerical analysis methods in order to reformulate and solve analytical problems, numerically. Said methods includes:

  • Computational linear algebra (e.g. least squares)
  • Root finding.
  • Numerical quadrature / integration.
  • Finite difference / numerical derivative
  • Finite elements

4) The student will be able to analyse simple composite structures using several different numerical techniques. Provide justification for the numerical techniques used to highlight the limitations/advantages of each approaches. In doing so students will need to appraise the underlying mathematics. They will gain knowledge of how to present critical analysis in a collaborative manner. To aid in completing these broader goals the students will consider the following topics:

  • Classical laminate analysis
  • Abaqus
  • Initial Value Problems.
  • Differential Quadrature Method.
  • Principles of Optimisation.
  • Comparison of analysis techniques – balancing competing requirements

Your learning on this unit

Upon successful completion of this unit students will be able to

  1. Give examples of / and apply coding fundamentals.
  2. Develop, review, and test codes.
  3. Solve analytical problems using numerical methods.
  4. Model and analyse simple structures and composite laminates.
  5. To synthesize numerical analysis results and demonstrate technical report writing ability.

How you will learn

This unit will comprise of 8-10 hours lectures.

How you will be assessed

The coursework format will be an individual report, accompanied by code and validation files (ILOs 1 – 5).


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. AENGM0071).

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 Faculty workload statement relating to this unit for more information.

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. If you have self-certificated your absence from an assessment, you will normally be required to complete it the next time it runs (this is usually in the next assessment period).
The Board of Examiners will take into account any extenuating circumstances and operates within the Regulations and Code of Practice for Taught Programmes.