This course aims to introduce students to the basic principles of machine learning algorithms. In particular, we will look into basic principles of supervised and unsupervised machine learning through exemplars of algorithms of different families: heuristic search (decision trees), probabilistic classifiers (Naïve Bayes), lazy learning (KNN), methods for numeric prediction, association rule mining (Apriori), clustering, and fundamental principles of neural network architectures. Finally, we will look at mining unstructured data on a text example. Throughout the course, model evaluation and interpretation of results will be emphasized.