Short Description

How to choose and use appropriate algorithms and data structures to help solve data science problems. Key concepts such as recursion and algorithmic complexity (e.g., efficiency, scalability).

Course Learning Objectives

By the end of the course, students are expected to be able to:

  1. Apply fundamental algorithms such as sorting and searching, including iterative and recursive algorithms, using lists.
  2. Select and justify the use of elementary data structures such as arrays, hash tables, trees, and simple graphs.
  3. Analyze the scalability and trade-offs of various basic algorithms and data structures, using Big-O notation.
  4. Explain why using a different (better) algorithm for a problem can result in a much, much bigger performance improvement than tweaking the algorithm already being used.
  5. Apply basic discrete optimization methods such as dynamic programming.

Reference Material

  • TBD

Instructor (2016-2017)

Note: information on this page is preliminary and subject to change.