This document provides an overview of machine learning. It begins by defining machine learning as improving performance on some task based on experience. Traditional programming is distinguished from machine learning by how the computer learns. Sample applications are discussed such as web search, computational biology, and robotics. Classic examples of machine learning tasks are discussed like playing checkers and recognizing handwritten words. The document then covers state of the art applications like autonomous vehicles, deep learning, and speech recognition. Different types of learning are introduced like supervised, unsupervised, and reinforcement learning. Finally, the document discusses designing a learning system by choosing the training experience, representation, learning algorithm, and evaluation method.