This course provides an introduction to the theoretic and algorithmic foundations for modern machine learning. Topics include linear regression, linear classification, logistic regression, neural networks, deep learning, PCA, clustering, etc. Python programming assignments will be given to solidify students’ understanding of the materials covered in class. Students are expected to have a solid foundation in calculus, linear algebra, and probability, and should be familiar with at least one programming language.