This course introduces modern data science theory, which is concerned with the study of methods for extracting useful information and knowledge from data. The course will focus on the software tools used by modern data science practitioners, the mathematical and statistical models used in conjunction with those software tools. It will also cover some applications in various domains. On the tools side, the Python programming language and its important packages will be used to manipulate data sets. On the modeling side, the course will cover standard supervised and unsupervised models for data analysis and pattern discovery.