Machine learning is a branch of artificial intelligence concerned with the development and application of adaptive algorithms that use example data or previous experience to solve a given problem. This course covers the theory and practice of machine learning, including conceptual, computational, mathematical and statistical frameworks. Topics include: classification, regression, optimisation, neural networks, deep learning, unsupervised learning, semi-supervised learning, clustering, dimensionality reduction and generative models. The implementation of machine learning techniques, experimentation and practical application are a central theme of the course.