Students will learn how to design linear and nonlinear models for regression, prediction and classification as well as assess their performance. At the same time, they will learn how to use deep learning architectures and learning algorithms in key real-world applications. Algorithms for data clustering will be treated as well. Lab sessions will focus on practical aspects and show how to design an appropriate machine learning solution to real-world problems. More in detail, the course will address the following macro topics. Supervised learning: linear and nonlinear models for regression and prediction -also considering recurrent models-, statistical theory of learning, feature extraction and model selection. Deep learning: architectures including autoencoders, convolutional neural networks and learning procedures. Model performance assessment: cross validation, k-fold cross validation, leave-one-out, bootstrap, BLB. Unsupervised learning: K-means clustering, fuzzy C-means, principal component analysis.