This is an introduction on the principles (discrete mathematics) of computer programming and includes some hands on programming.

This module will equip you with essential mathematical skills and basic knowledge of programming concepts. You will gain an appreciation of sets, logics, functions, relations and how these can be used to model problems and represent computations. These are very popular in the computing literature and by the completing these materials, you should be able to express computational solutions and understand other people’s solutions too.

The following materials are designed to be completed within one week but please feel free to work through them at leisure.  Get in touch if you have any queries or comments, email:

Suggested Schedule
Lecture Notes Lecture Recording Excerises
Day 1   Algorithms (1)

Recording of Lecture from 2014 


Day 2

Algorithms (2)

Day 3 Logic and Proof (1) Recording(1) and Recording (2)  
Day 4

Logic and Proof (2)

Recording (3) and Recording (4) Ex2 
Day 5

Set Theory (1)



Day 6

Set Theory (2)