This course introduces Machine Learning (ML) basics, methods, and algorithms, with a significant amount of hands-on practice using modern software tools (e.g., Scikit-learn and PyTorch). After the first introductory lecture on machine learning, the course covers four key topics of ML: 1) regression techniques including linear regression, ridge and lasso regression, nearest neighbor and kernel regression; 2) classification techniques including logistic regression decision trees, boosting and bagging, SVM and Naïve Bayes; 3) clustering techniques including k-means, hierarchical clustering, DBScan, and mixture models; and 4) deep learning techniques including neural network basics, convolutional neural networks, and generative neural networks.