This course is designed to provide students with an overview of machine learning: a branch of artificial intelligence where algorithms and statistical techniques are used to allow computers to learn to recognize patterns in various types of data. Machine learning is used widely to do things like rank Internet searches, recognize faces in images, filter out spam in email, make recommendations in streaming services, and control self driving cars. In general, machine learning is the science of getting computers to learn without explicitly being programmed. We will study topics and implement algorithms such as supervised, unsupervised and reinforcement learning, clustering, nearest neighbors, neural networks, classification vs regression, handling data in different forms, and ethical considerations for applications of machine learning.