This course is designed for those who are interested in learning from data. It emphasizes the seamless integration of models and algorithms for real applications. Topics include linear methods for regression and classification, tree-based methods, kernel methods, expectation and maximization algorithm, variational auto-encoder, and generative adversarial networks. This course aims to make connections among these topics rather than treating them separately, laying a solid foundation for machine learning and its applications.