A newer version of this course is available here:
Biology Meets Programming: Bioinformatics for Beginners
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.
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 will be integrated into the text at the exact moment they are needed.