Practically, machine learning means developing computer programs that automatically improve their performance through experience. Machine learning is a subject that requires interdisciplinary knowledge, including statistics, algebra, and optimization. This course, as an introductory machine learning course for undergraduate students will introduce the concepts and techniques which involve algorithms that learn by example. Topics covered in this class include the linear models for regression, Logistic regression, nonparametric methods, neural networks, support vector machines and clustering. The course is programming- intensive and a large emphasis will be placed on tying machine learning techniques to specific real-world applications through hands-on experience.