# 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. |

# Content

### Part A: An introduction to Matlab for beginning programmers.

- Matlab Interface
- Matrix Operations
- Control flow
- I/O
- Plotting

### Part B: An introduction to computational complexity.

- Three paradigms of algorithm design (greedy, divide & conquer, dynamic pro- gramming)
- Time complexity of algorithms and problems
- Turing machines and Decision Problems
- Unsolvable problems
- Intractability (NP-completeness)

### Part C: Elements of linear algebra and its applications.

- Vector and matrix operations, Orthogonality, Norms, Singular Value Decomposition (SVD).
- Applications of SVD to Machine Learning and data analysis. Principal component analysis, Least squares and regularization, Kernel Methods.
- 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.

# Assessment

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.

# Resources

Reading list available via the UCL Library catalogue.