Machine learning is a subfield of artificial intelligence that aims to give computers the ability to make predictions and find relationships in data. The methods used in machine learning blend statistical concepts with ideas from computer science, and are widely used by data scientists to analyze complex datasets, and by artificial intelligence researchers to make intelligent systems. In this class, we will cover the basic concepts in machine learning including regression, supervised learning (classification), unsupervised learning (clustering and dimensionality reduction), cross-validation methods, and model selection. We will use the R and Python programming languages to explore the usefulness of different methods and to analyze real data. The class work will consist of weekly programming problems and a midterm and final project. Prerequisites: prior experience with programming and Statistics. Prerequisite: Prior experience with programming and statistics, either through a class or from other experiences.