The University of Southampton

MATH1058 Operational Research I and Mathematical Computing

Module Overview

The module has two parts. The first part provides an introduction to the topic of operational research (OR). The key role of using models in OR to obtain solutions of practical problems arising in a variety of contexts is emphasised. Some classical problems are analysed and standard techniques for solving them are investigated. The second part of the module covers computer programming and its use in solving certain types of mathematical problems. The computer programming language used is Python.

Aims and Objectives

Module Aims

For the operational research (OR) part of the module, the aim is to provide an insight into the usefulness of some OR techniques for solving various decision-making problems. This is illustrated by introducing some optimization problems, describing OR techniques for solving them, and giving practical examples of situations where these problems arise.

Learning Outcomes

Learning Outcomes

Having successfully completed this module you will be able to:

  • Be able to formulate a mathematical model for certain types of practical problem
  • Be able to demonstrate knowledge and understanding of selected OR techniques
  • Be able to appreciate the capabilities and limitations of OR techniques.
  • Be able to implement simple mathematical problems computationally
  • Be able to present and analyse the results of mathematical computations and codes using professional tools


Operational Research • Linear and integer programming: assumptions of linear programming (LP) and integer programming models; applications; geometry of LPs and the graphical solution of 2-dimensional LPs; simplex method (single- and two-phase methods). • Introduction to algorithms: definition and specification of algorithms; asymptotic estimates of their running times; sorting algorithms. • Shortest path algorithms: definitions of graphs and networks; Dijkstra's algorithm. • Project networks: drawing project networks; analysing project networks by computing the critical path; valuating the sensitivity to changes in activity durations. Computing • Python: introduction, basic usage of the software used (either Jupyter notebooks or spyder) • Variables: Definition, naming conventions and using sensible names. Integer, float, strings, printing. • Loops: Concept of iteration, using for and while loops, range function. Semantic whitespace in Python. • Control flow: Logical statements and boolean variables. if/elif/else. • Functions: Concept and procedural programming. Definition in Python: def and return keywords. Docstrings and help. Script files, import, packages. • Data structures: Lists, tuples, dictionaries and sets. Vectors and arrays through numpy. • LaTeX: Basic environments and sections. Packages such as amsmath. BibTeX and reference managers. Creating long documents. • Excel: advanced data analysis and presentation. Linking to other packages (eg Python via xlrd and xlwt).

Learning and Teaching

Teaching and learning methods

Lectures, problem classes, computer workshops, private study.

Supervised time in studio/workshop20
Preparation for scheduled sessions12
Completion of assessment task60
Total study time150

Resources & Reading list

W.L. Winston (2004). Operations Research: Applications and Algorithms. 

S.Dasgupta, C.H. Papadimirriou, U. Vazirani (2006). Algorithms. 

A.Saha (2015). Doing Math with Python. 

H.P. Langtangen (2016). A Primer on Scientific Programming with Python. 



MethodPercentage contribution
Closed book Examination  (90 minutes) 40%
Coursework 40%
Coursework 10%
Coursework 10%


MethodPercentage contribution
Closed book Examination  (90 minutes) 50%
Coursework 50%

Repeat Information

Repeat type: Internal & External

Linked modules


To study this module, you will need to also study the following module(s):

MATH1048Linear Algebra I
Share this module Facebook Google+ Twitter Weibo

We use cookies to ensure that we give you the best experience on our website. If you continue without changing your settings, we will assume that you are happy to receive cookies on the University of Southampton website.