Skip to main navigationSkip to main content
The University of Southampton

FEEG6002 Advanced Computational Methods I

Module Overview

The module is focussed around advanced computational methods incorporating C and compiled languages, computational modelling and software engineering techniques for science and engineering. It builds on lower level courses such as FEEG1001 and FEEG2001 and assumes that the students are familiar already with one programming language (typically Python). Through the lectures and directed reading you will be able to gain understanding of the principles and methods of advanced computational and software engineering techniques along with C programming skills and how these are applied to problem solving. The laboratory sessions will cover both C programming and numerical modelling and will give you the opportunity to apply and enhance this understanding. Support in the lab sessions will help you to prepare for programming assignments, which will provide you with feedback on your ability to apply your knowledge and skills to a variety of problems. Students should be aware that this module requires pre requisite skills in programming, ideally in python

Aims and Objectives

Learning Outcomes

Knowledge and Understanding

Having successfully completed this module, you will be able to demonstrate knowledge and understanding of:

  • Complied versus interpreted language.
  • The C-programming language.
  • Combining C-code with Python.
  • Version control and one version control tool.
  • Remote and local use of Linux computers.
  • Shell commands.
  • Symbolic methods and code generation.
Subject Specific Intellectual and Research Skills

Having successfully completed this module you will be able to:

  • Decompose a computational problem into small parts. - analyse the computational bottleneck.
  • Use strategies to effectively address computational bottlenecks with Python and C code.
  • Develop makefiles and test programs.
Transferable and Generic Skills

Having successfully completed this module you will be able to:

  • Use a computer to perform computational modelling studies.
  • Apply software engineering techniques for science and engineering.
Subject Specific Practical Skills

Having successfully completed this module you will be able to:

  • Learn the steps in the C-program development cycle.
  • Write, compile and run C-programs.
  • Check error messages generated by the compiler.
  • Connect to the Linux server.


Programming: - Introduction to operating systems, shells. - Introduction compiled and interpreted languages, with examples C, Python, Matlab. C-Programming: - Data types and number representation - Data output. - Loops and conditionals. - Special operators. - Integer division and casting. - Functions. - Arrays. - Pointers and memory allocation. - Examples. Software engineering for computational science and engineering: - Efficient program design and implementation: linking high level (Python) code with C code, - Cython, ctypes, - Tests and Test Driven Development, - Makefiles. - Version control (git). - Linux terminal and shell scripting. - Remote working with SSH. Computational Methods: - Applied Computational Methods – examples. - Symbolic methods and auto generation of code.

Learning and Teaching

Teaching and learning methods

Teaching methods include - Lectures and computer programme lab sessions. Learning activities include - Individual programming practice to enhance breadth of understanding. - Problem solving in supervised lab sessions and through assignments. - Informal help session.

Completion of assessment task14
Preparation for scheduled sessions12
Practical classes and workshops20
Wider reading or practice20
Follow-up work48
Total study time150

Resources & Reading list

Hans Fangohr: “Python for Computational Science and Engineering“.

Course Notes. 


Assessment Strategy

Feedback: Feedback throughout lab sessions.


MethodPercentage contribution
Final Assessment  100%


MethodPercentage contribution
Set Task 100%


MethodPercentage contribution
Set Task 100%

Repeat Information

Repeat type: Internal & External

Share this module Share this on Facebook Share this on Twitter Share this on Weibo
Privacy Settings