This course will introduce the fundamental concepts and algorithms that enable computers to learn from experience, with an emphasis on their practical application to real problems. This course will introduce supervised learning (decision trees, logistic regression, support vector machines, , neural networks and deep learning), unsupervised learning (clustering, dimensionality reduction), and reinforcement learning. The algorithms will be implemented with R / Python software.