Skip to main content

Dynamic Programming: Applications In Machine Learning and Genomics


In the first part of the course, part of the Algorithms and Data Structures MicroMasters program®, we will see how the dynamic programming paradigm can be used to solve a variety of different questions related to pairwise and multiple string comparison in order to discover evolutionary histories.

In the second part of the course, we will see how a powerful machine learning approach, using a Hidden Markov Model, can dig deeper and find relationships between less obviously related sequences, such as areas of the rapidly mutating HIV genome.


  • Basic knowledge of at least one programming language
  • Basic knowledge of mathematics, including proof by induction and proof by contradiction

Course Format

This course is self-paced, containing assignments without due dates. You can progress through the course at your own speed.

Learn more and enroll on edX.