The use of computational approaches to extract information from vast amounts of data and make intelligent decision based on that information constitutes the foundation of machine learning, a field that has made a dramatic impact on our daily lives. From weather prediction to medical diagnosis, end-user recommendations to smart homes, autonomous vehicles to speech identification, machine learning is now everywhere. This course introduces concepts, issues, and algorithms in machine learning and pattern recognition, and will discuss both theoretical and practical aspects. Main topics of the course will include basic learning theory, convex and evolutionary optimization techniques, supervised, unsupervised and semi-supervised learning, ensemble systems, model selection and combination, feature selection and performance evaluation techniques. The class will feature assignments and projects that allow students to implement various traditional and emerging machine learning algorithms, and evaluate them on real-world applications.