MA407      Half Unit
Algorithms and Computation

This information is for the 2017/18 session.

Teacher responsible

Dr Konrad Swanepoel


This course is available on the MSc in Applicable Mathematics, MSc in Data Science, MSc in Operations Research & Analytics, MSc in Statistics, MSc in Statistics (Financial Statistics), MSc in Statistics (Financial Statistics) (Research) and MSc in Statistics (Research). This course is available with permission as an outside option to students on other programmes where regulations permit.

The course is compulsory for students on the MSc Applicable Mathematics who are not taking MA421 Advanced Algorithms; it is optional for students on the MSc Applicable Mathematics who take the advanced course. 


Good general knowledge of mathematics, including familiarity with abstract concepts. A willingness to cope with technical details of computer usage, and with a rapid introduction to programming.

Course content

Introduction to programming in Java.  Introduction to the theory of algorithms: running time and correctness of an algorithm.  Recursion.  Data structures:  arrays, linked lists, stacks, queues, binary search trees.  Sorting algorithms.  Greedy algorithms.  Dynamic programming. Inheritance and Generics in Java.


20 hours of lectures, 20 hours of seminars, 9 hours of workshops and 10 hours of help sessions in the MT. 2 hours of lectures in the ST.

Workshops will be held before the start of MT.

Formative coursework

Weekly exercises are set and marked. Many of these will require implementation of programming exercises in Java.

Indicative reading

T H Cormen, C E Leiserson, R L Rivest and C Stein, Introduction to Algorithms; R Sedgewick, K Wayne, Introduction to programming in Java; D Flanagan, Java in a Nutshell.


Exam (75%, duration: 2 hours and 30 minutes) in the main exam period.
Coursework (25%) in the MT.

Key facts

Department: Mathematics

Total students 2016/17: 28

Average class size 2016/17: 28

Controlled access 2016/17: No

Value: Half Unit

Guidelines for interpreting course guide information

Personal development skills

  • Self-management
  • Problem solving
  • Application of information skills
  • Communication
  • Application of numeracy skills
  • Specialist skills