The majority of machine learning tasks are supervised learning (SL) problems - problems in which labeled datasets are used. Starting with a given dataset, for which the correct answers are known, the SL algorithm iteratively makes predictions on the training data and is corrected by the “teacher”, until it is able to make accurate predictions on data not seen before. Despite the growing popularity of deep learning, many existing tasks are solved efficiently by a wide spectrum of other algorithms and models. In the Supervised Learning course we will learn several such algorithm families and implement SL algorithms ourselves in order to grasp their mechanics. This course is preceded by two lectures of Intro to ML, which will introduce the modern ML field and learn all the required concepts which are not covered by the first three introductory courses.