Building fast and highly performant data science applications requires an intimate knowledge of how data can be organized in a computer and how to efficiently perform operations such as sorting, searching, and indexing. This online data science specialization will teach you the fundamentals of data structures and algorithms with a focus on data science applications. This specialization is ideal for learners interested in programming applications that process large amounts of data and are familiar with the basics of programming in Python.

By completing this specialization, you will be able to:

  • Organize, store, and process data efficiently using sophisticated data structures and algorithms
  • Design algorithms and analyze their complexity in terms of running time and space usage
  • Create applications that are supported by highly efficient algorithms and data structures for the task at hand
  • Explain fundamental concepts for algorithmic searching and sorting


  • Algorithms for Searching, Sorting & Indexing
  • Trees & Graphs: Basics
  • Dynamic Programming, Greedy Algorithms & Intractability (forthcoming)

This specialization can be taken for academic credit as part of CU Boulder’s Master of Science in Data Science (MS-DS) degree offered on the Coursera platform. The MS-DS is an interdisciplinary degree that brings together faculty from CU Boulder’s departments of Applied Mathematics, Computer Science, Information Science, and others. With performance-based admissions and no application process, the MS-DS is ideal for individuals with a broad range of undergraduate education and/or professional experience in computer science, information science, mathematics, and statistics. Learn more about the MS-DS program.

Enroll Now