Machine Learning: fundamental algorithms