Bioinformatics Algorithms (Part 1)

This course is the first in a two-part series covering some of the algorithms underlying bioinformatics. It will cover some of the algorithms underlying the following fundamental topics in bioinformatics: assembling genomes, comparing DNA and protein sequences, finding regulatory motifs, analyzing genome rearrangements, identifying proteins, and many other topics.

About The Course

The sequencing of the human genome fueled a computational revolution in biology. As a result, modern biology produces as many new algorithms as any other fundamental realm of science.  Accordingly, the newly formed links between computer science and biology affect the way we teach applied algorithms to computer scientists.

Genome sequencing is just one of hundreds of biological problems that have become inextricable from the computational methods required to solve them. In this course, we will uncover some of the algorithmic ideas that are fundamental to an understanding of modern biology.  Computational concepts like dynamic programming and graph theory will help us explore algorithms applied to a wide range of biological topics, from finding regulatory motifs to determining whether the human genome has "fragile" regions.  Throughout the process, we will apply bioinformatics algorithms to real genetic data.

Each chapter in the course textbook covers a single biological question and slowly builds the algorithmic knowledge required to address this challenge.  Along the way, coding challenges and exercises (many of which ask you to apply your skills to real genetic data) will be directly integrated into the text at the exact moment they are needed.

Frequently Asked Questions

  • Will I get a statement of accomplishment after completing this class?

Yes. Students who successfully complete the class will receive a statement of accomplishment signed by the instructor.

  • Can I receive a verified certificate for this course?

Yes. Students who would like a verified certificate can sign up for the course's Signature Track option.

Recommended Background

You should know the basics of programming in the language of your choice. We have the following suggestions for resources that will help you learn programming.
  • The language tracks on Codecademy, particularly the Python track.
  • An Introduction to Interactive Programming with Python, the acclaimed Coursera course.
  • Introductory problems on Rosalind, a resource for learning bioinformatics created by the course instructors.
There are many other online resources for learning programming, and we encourage you to seek them out yourself!