Data science is a dynamic and fast growing field at the interface of statistics and computer science. The emergence of massive datasets containing millions or even billions of observations provides the primary impetus for the field. Such datasets arise, for instance, in large-scale retailing, telecommunications, astronomy, and internet social media. This course will emphasize practical techniques for working with large-scale data. Specific topics covered will include statistical modeling and machine learning, data pipelines, programming languages, “big data” tools, and real world topics and case studies. The use of statistical and data manipulation software will be required. Course intended for non-quantitative graduate-level disciplines. This course will not count towards degree requirements for graduate programs such as statistics, computer science, or data science. Students should inquire with their respective programs to determine eligibility of course to count towards minimum degree requirements. This course does not fulfill any major requirements for undergraduate degree programs offered by Computer Science. Note: this course was formerly STAT W4242.
Fall Semester: 3 credits
Prerequisites: Students are expected to have solid programming experience in Python or with an equivalent programming language. This class is intended to be accessible for students who do not necessarily have a background in databases, operating systems or distributed systems. The goal of this class is to provide data scientists and engineers that work with big data a better understanding of the foundations of how the systems they will be using are built. It will also give them a better understanding of the real-world performance, availability and scalability challenges when using and deploying these systems at scale. In the course we will cover foundational ideas in designing these systems, while focusing on specific popular systems that students are likely to encounter at work or when doing research.
Spring Semester: 3 credits
COMS 4721 is a graduate-level introduction to machine learning. The course covers basic statistical principles of supervised machine learning, as well as some common algorithmic paradigms. Additional topics, such as representation learning and online learning, may be covered if time permits.
Prerequisites: basic knowledge in programming (e.g., at the level of COMS W1007), a basic grounding in calculus and linear algebra.
Methods for organizing data, e.g. hashing, trees, queues, lists, priority queues. Streaming algorithms for computing statistics on the data. Sorting and searching. Basic graph models and algorithms for searching, shortest paths, and matching. Dynamic programming. Linear and convex programming. Floating point arithmetic, stability of numerical algorithms, Eigenvalues, singular values, PCA, gradient descent, stochastic gradient descent, and block coordinate descent. Conjugate gradient, Newton and quasi-Newton methods. Large scale applications from signal processing, collaborative filtering, recommendations systems, etc.
This course covers the following topics: Fundamentals of probability theory and statistical inference used in data science; Probabilistic models, random variables, useful distributions, expectations, law of large numbers, central limit theorem; Statistical inference; point and confidence interval estimation, hypothesis tests, linear regression.
Prerequisite: Programming, fundamentals of data visualization, layered grammar of graphics, perception of discrete and continuous variables, introduction to Mondran, mosaic pots, parallel coordinate plots, introduction to ggobi, linked pots, brushing, dynamic graphics, model visualization, clustering and classification.
Prerequisites: Working knowledge of calculus and linear algebra (vectors and matrices) and STAT GR5203 or equivalent.
Course covers fundamentals of statistical inference and testing, and gives an introduction to statistical modeling. The first half of the course will be focused on inference and testing, covering topics such as maximum likelihood estimates, hypothesis testing, likelihood ratio test, Bayesian inference, etc. The second half of the course will provide introduction to statistical modeling via introductory lectures on linear regression models, generalized linear regression models, nonparametric regression, and statistical computing. Throughout the course, real-data examples will be used in lecture discussion and homework problems.
Fall and Spring: 3 credits
In addition to the 21 credits of core classes, M.S. in Data Science students are required to complete a minimum of nine (9) credits of electives. In addition to the DSI elective courses, MS students are encouraged to explore courses offered across the university and take advantage of the expertise in a wide range of disciplines at Columbia. Prior to registration, students receive advisement to determine if a course of interest is relevant and meets the criteria of a 4000-level or higher, technical course completed for a letter grade. You are welcome to explore the Columbia Directory of Classes for possible courses.
The following courses are examples of classes that MS students have used for elective credit. Elective courses and schedules are dependent on faculty availability and may vary each semester. Past course offerings are not guaranteed to be offered in the future.
Please note that many departments, including DSI, give registration priority to their students. Space permitting, courses are then opened up to students outside the department.
This class offers a hands-on approach to machine learning and data science. The class discusses the application of machine learning methods like SVMs, Random Forests, Gradient Boosting and neural networks on real world dataset, including data preparation, model selection and evaluation. This class complements COMS W4721 in that it relies entirely on available open source implementations in scikit-learn and tensor flow for all implementations. Apart from applying models, we will also discuss software development tools and practices relevant to productionizing machine learning models.
This course provides a practical, hands-on introduction to Deep Learning. We aim to help students understand the fundamentals of neural networks (DNNs, CNNs, and RNNs), and prepare students to successfully apply them in practice. This course will be taught using open-source software, including TensorFlow 2.0. In addition to covering the fundamental methods, we will discuss the rapidly developing space of frameworks and applications, including deep learning on the web. This course includes an emphasis on fairness and testing, and teaches best practices with these in mind.
Data scientists often have to answer questions that will lead to decisions about actions a company might take. Often, they will be able to run an experiment, and see the effect the decision might have by testing it first. Other times, they will only have observational data at their disposal. In both cases, they need to infer the causal effect of an action on some outcomes of interest. Causal inference is an essential skill for a data scientist. Without a proper understanding, potential biases as large as 1000% have been observed in practice! This course will cover the basics of the potential outcomes framework, the Pearlian framework, and a collection of methods for observational and experimental causal inference. We’ll use examples from industry applications throughout the course, especially focused on web applications.
“Data analytics pipeline” focuses on the intersection between data science, data engineering, and agile product development. In this course you’ll learn some common data generating processes, how the data is transported to be stored, how analytics and compute capabilities are built on top of that storage, and how production machine learning and modeling platforms can be built in that context. There is a strong focus on good architecture design patterns, and practical implementation considerations that focus on delivering results over building perfect systems
This course is designed as an introduction to elements that constitutes the skill set of a data scientist. The course will focus on the utility of these elements in common tasks of a data scientist, rather than their theoretical formulation and properties. The course provides a foundation of basic theory and methodology with applied examples to analyze large engineering, business, and social data for data science problems. Hands-on experiments with R or Python will be emphasized.
The world is full of noise and uncertainty. To make sense of it, we collect data and ask questions. Is there a tumor in this x-ray scan? What affects the quality of my manufacturing plant? How old is this planet I see through the telescope? Does this drug actually work? To pose and answer such questions, data scientists must iterate through a cycle: probabilistically model a system, infer hidden patterns from data, and evaluate how well our model describes reality. By the end of this course, you will learn how to use probabilistic programming to effectively iterate through this cycle. Specifically, you will master modeling real-world phenomena using probability models, using advanced algorithms to infer hidden patterns from data, and evaluating the effectiveness of your analysis. You will learn to use (and perhaps even contribute to) Edward throughout this course.
This applied Natural Language Processing course will focus on computational methods for extracting social and interactional meaning from large volumes of text and speech (both traditional media and social media). Topics will include:
Personalization is a key tool for enhancing customer experience across industries, thereby driving user loyalty and customer value. It is therefore no surprise that creating and enhancing personalization systems is also increasingly one of the core responsibilities of data science teams, and a key focus for many of the machine learning algorithms in the sector. This course will focus on common personalization algorithms and theory, including behavior-based and content-based recommendation, commonly encountered issues in scaling and cold-starts, and state of the art research. It will also look at how businesses use, and misuse, these techniques in real world applications.
The vast proliferation of data and increasing technological complexities continue to transform the way industries operate and compete. Over the last two years, 90 percent of the data in the world has been created as a result of the creation of 2.5 quintillion bytes of data on a daily basis. Commonly referred to as big data, this rapid growth and storage creates opportunities for collection, processing and analysis of structured and unstructured data. Financial services, in particular, have widely adopted big data analytics to inform better investment decisions with consistent returns. In conjunction with big data, algorithmic trading uses vast historical data with complex mathematical models to maximize portfolio returns. The continued adoption of big data will inevitably transform the landscape of financial services. However, along with its apparent benefits, significant challenges remain in regards to big data’s ability to capture the mounting volume of data. The increasing volume of market data poses a big challenge for financial institutions. Along with vast historical data, banking and capital markets need to actively manage ticker data. Likewise, investment banks and asset management firms use voluminous data to make sound investment decisions. Insurance and retirement firms can access past policy and claims information for active risk management. The course will be a mix of Theory and practice with real big data cases in finance. We will invite guest lecturers mostly for real Big Data Finance Applications. We will give MATLAB, R, or Python examples.
The course focuses on translating technical expertise into work-place solutions by teaching students to: (1) identify relevant shortfalls in traditional processes; (2) precisely match datasets and machine learning features to overcome these shortfalls; (3) narrowly define value to fit work place processes, analytical framework, and bottom line. Each class will be structured as an actual end-to-end work-place project and use concrete examples to teach students to design, build and deliver solutions that integrate these considerations. A combination of assignments, presentation, and research paper will be sued to evaluation students’ progress in bridging technical and applied solutions with evaluation criteria matching those of a work-place project.
Images are everywhere. How to deal with image data, especially with big data, is an urgent problem for data analysts. Machine learning has proven to be a powerful technology to process and analyze such big data. The course will discuss how machine learning methods are use in the field of image analysis, including biometrics (iris and face recognition), natural images (object identification/recognition), brain images (encoding and decoding), and handwritten digit recognition. Students will learn how to sue traditional machine learning methods in image data processing and analysis, and develop techniques to improve these methods. The aim of this course is to prepare students with basis knowledge and skills to explore opportunities using machine learning in the field of image analysis.
Prerequisites: CSOR W4246 Algorithms for Data Science, STAT W4105 Probability, COMS W4121 Computer Systems for Data Science, or equivalent as approved by faculty advisor. Co-requisites: to be completed alongside or after: STAT W4702 Statistical Inference and Modeling, COMS W4721 Machine Learning for Data Science, STAT W4701 Exploratory Data Analysis and Visualization, or equivalent as approved by faculty advisor.
This course provides a unique opportunity for students in the M.S. in Data Science program to apply their knowledge of the foundations, theory and methods of data science to address data science problems in industry, government and the non-profit sector. The course activities focus on a semester-length data science project sponsored by a faculty member or local organization. The project synthesizes the statistical, computational, engineering challenges and social issues involved in solving complex real-world problems.
Fall and Spring Semesters: 3 credits
Please note that DSI students have priority registration, so enrollment will be dependent on the space available after our student registration. Non-Data Science students will be able to register/join a waitlist via SSOL starting September 1st for Fall 2020. Please be sure to obtain your program advisor approval before enrolling. We encourage students to attend the first class to get the syllabus and to get a pulse for the course. The Fall 2020 Change of Program period is Tuesday, September 8 – Friday, September 18.