COMPM012- Programming & Mathematical Methods for Machine Learning

This database contains the 2017-18 versions of syllabuses. Syllabuses from the 2016-17 session are available here.

Note: Whilst every effort is made to keep the syllabus and assessment records correct, the precise details must be checked with the lecturer(s).

Code COMPM012 (Also taught as: COMPGI07)
Year 4
Prerequisites None, but student must also be enrolled in M055
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.


Reading list available via the UCL Library catalogue.