Current students

COMPGI07 - Programming & Mathematical Methods for Machine Learning

This database contains 2016-17 versions of the syllabuses. For current versions please see here.

Code COMPGI07 (Also taught as: COMPM012)
Year MSc
Prerequisites None, but student must also be enrolled in GI01
Term 1
Taught By Mark Herbster (Part A,B) (50%), Massi Pontil (Part C) (50%)
Aims The overall aim of this course is to introduce or refresh Matlab programming, computational complexity and linear algebra with an aim to its application to machine learning.
Learning Outcomes Students successfully completing the module should be able to program machine learning algorithms in matlab, analyse the complexity of algorithms, and become confident with vector/matrix computations and basic concepts of linear algebra which are important for the development of machine learning algorithms.


Part A: An introduction to Matlab for beginning programmers.

1. Matlab Interface

2. Matrix Operations

3. Control flow

4. I/O

5. Plotting


Part B: An introduction to computational complexity.

1. Three paradigms of algorithm design (greedy, divide & conquer, dynamic pro- gramming) 

2. Time complexity of algorithms and problems

3. Turing machines and Decision Problems 

4. Unsolvable problems 

5. Intractability (NP-completeness) 


Part C: Elements of linear algebra and its applications.

1. Vector and matrix operations, Orthogonality, Norms, Singular Value Decomposition (SVD).

2. Applications of SVD to Machine Learning and data analysis. Principal component analysis, Least squares and regularization, Kernel Methods.

3. Spectral graph theory

Method of Instruction:

Part A: Labs with intensive programming coursework which is oriented towards machine learning. 

Part B: Lecture presentations

Part C: Lecture presentations with associated class problems. 


The course has the following assessment components:

  • Coursework (100%) 

To pass this course, students must:

  • Obtain an overall pass mark of 50% for all sections combined

For full details see the course web page.


Introduction to the Theory of Computation 3rd Edition by Michael Sipser 

Linear Algebra and Its Applications, 4th Edition by Gilbert Strang