Machine learning concerns the construction of systems that can learn from data. We need learning every time we cannot directly write a computer program to solve a given task; e.g. programs that learn to recognize human faces, to digitalize an acoustic speech signal and/or written carachters, and to drive autonomous robots. This course covers the theory and practical algorithms for machine learning focusing on classification, clustering, dimensionality reduction and reinforcement learning.