In
this course, part of the Algorithms and Data Structures MicroMasters
program, you will learn basic algorithmic techniques and ideas for
computational problems, which arise in practical applications such as
sorting and searching, divide and conquer, greedy algorithms and dynamic
programming.
This course will cover theories, including:
- 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).