This course will provide an introduction to machine learning. The field of machine learning studies how to design systems that learn from experience. We will cover fundamental concepts and algorithms used in machine learning, as well as give an introduction to basic probability and statistics. Sample topics include regression, classification, Bayesian networks, Gibbs sampling, particle filtering, maximum likelihood estimation, neural networks, deep learning, clustering, bias/variance trade-offs, cross-validation, and practical advice. Programming assignments will be done using Python; prior knowledge of Python is not required.