The broad availability of data in every aspect of life has created an unprecedented interest in methods for extracting useful information and knowledge from data, which is the realm of Data Science. Data Science is a very hot and very active subject in the curricula of both graduate and undergraduate studies in Universities and Colleges throughout the world these days. Even though it is not a genuinely new domain of study per se, just recently acquired a new potential to rejuvenate and homogenize some more traditional domains of study with roots in intelligence, cognition and learning like Data Mining, Machine Learning, Knowledge Discovery in Databases, Pattern Recognition etc. In this course we will delve into the foundations and principles that underlie the techniques for extracting useful knowledge from data and we will illustrate each of these concepts with one or more data mining techniques that embodies these principles. One of the primary goals of this module is to help the students view real life problems from a data perspective and learn to apply a data analytic way in solving these problems systematically. This data analytic thinking will enable prospective data science professionals to develop intuition as to how and where to apply creativity and domain knowledge to the analysis of relevant problems. Hands on knowledge and experience will be acquired in this course through the exposure to various programming assignments and projects.