Algorithmic Toolbox

About this Course

The course covers basic algorithmic techniques and ideas for computational problems arising frequently in practical applications: sorting and searching, divide and conquer, greedy algorithms, dynamic programming. We will learn a lot of theory: how to sort data and how it helps for searching; how to break a large problem into pieces and solve them recursively; when it makes sense to proceed greedily; how dynamic programming is used in genomic studies. You will practice solving computational problems, designing new algorithms, and implementing solutions efficiently (so that they run in less than a second).

WHAT YOU WILL LEARN


  • Essential algorithmic techniques
  • Design efficient algorithms
  • Practice solving algorithmic interview problems
  • Implement efficient and reliable solutions

SKILLS YOU WILL GAIN


  • Dynamic Programming
  • Debugging
  • Software Testing
  • Algorithms
  • Computer Programming