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.
The course covers fundamental notions from Artificial Intelligence, as a basis for subsequent courses. It introduces the notion of an autonomous agent, and presents basic architectures, elaborating on the role of perception, learning, and reasoning in these architectures. It discusses formal logics such as the Propositional and Predicate Calculi and other non-monotonic logics as a tool for representing cognitive (or common sense) knowledge in a symbolic form. It will also cover temporal aspects of reasoning through the presentation of simple languages for reasoning about actions and change. It then discusses learning as a process of induction from past experiences, and presents simple frameworks (such as learning in the limit) that formalize this and learning tools that can be developed according to this theory to help us acquire automatically common sense knowledge. The course will also introduce some preliminary aspects of natural language processing.