Learn how to design algorithms, solve computational problems and implement solutions efficiently.
- 6 weeks long
- 8 to 10 hours per week
- Learn for FREE, Upgradable
- Taught by: Daniel Kane, Alexander S. Kulikov, Michael Levin, Pavel Pevzner, Neil Rhodes
- View Course Syllabus
Online Course Details:
n this course, part of the Algorithms and Data Structures Micro Masters 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).
What you’ll learn:
- Essential algorithmic techniques – greedy algorithms, divide and conquer, binary search, sorting, dynamic programming
- Best practices of implementing algorithms efficiently
- Ways of testing and debugging programs